Я новичок в гибке, недавно попал в кастинг.Проблема с литьем Flex 3.2
это код, который я запускаю.
/**
* return background definition depending on time
*/
private function findBackgroundItem(relativeTime : Number) : CSBackgroundItem
{
if(this.backgroundItems == null) return null;
var result :CSBackgroundItem = null;
var relative:Date = new Date(relativeTime);
for(var i : Number = 0; i < this.backgroundItems.length; i++)
{
// backgroundItems is an Ilist of CSBackgroundItem.
var colourItem : CSBackgroundItem = CSBackgroundItem(this.backgroundItems.getItemAt(i));
// other stuff here
}
return result;
}
Проблема возникает, когда результат IList.getItemsAt() приводится к переменной colourItem CSBackgroundItem. Следующая ошибка возникает
TypeError: Error #1034: Type Coercion failed: cannot convert com.mystuff::[email protected] to com.mystuff.CSBackgroundItem.
Если я использую 'as'
ключевое слово, я получаю результаты броска в colourItem
быть нулевым. Использование отладчика показывает, что список не пуст и действительно заполнен объектами CSBackgroundItem
.
Теперь это дурацкий бит .. этот код работает, первый раз, когда модуль находится в нагрузках .. последующие нагрузки (после выгрузки) вызывают исключение.
Может ли кто-нибудь пролить свет на то, почему это может случиться?
Использование объекта ObjectUtil.copy() имеет тот же результат, что и ключевое слово «как», объект «colourItem» остается нулевым, а не исключением. – Scrimmers