Я новичок в сгибании и недавно попал в ловушку.
это код, который я использую.
/**
* 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 () приводится к переменной CSBackgroundItem colourItem. Выдается следующая ошибка
TypeError: Error #1034: Type Coercion failed: cannot convert com.mystuff::CSBackgroundItem@650e8dd1 to com.mystuff.CSBackgroundItem.
Если я использую ключевое слово 'as'
, я получаю результаты приведения в значение colourItem
, равное нулю. Использование отладчика показывает, что список не пуст и действительно заполнен CSBackgroundItem
объектами.
Теперь это дурацкий бит ... этот код работает, когда модуль загружается в первый раз ... последующие загрузки (после его выгрузки) выдают исключение.
Может кто-нибудь пролить свет на то, почему это может произойти?