У меня было то же сообщение об ошибке. В моем случае это было связано с тем, что Loader
собирал мусор.
Это код, с которым у меня возникли проблемы:
private function loadImageFromUrl( imageUrl:String ):AbstractOperation
{
var result:AbstractOperation = new AbstractOperation();
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, function ( e:Event ):void
{
result.dispatchCompleteEvent( loader.content );
} );
loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, function ( event:IOErrorEvent ):void
{
result.dispatchErrorEvent( event );
} );
loader.load( new URLRequest( imageUrl ) );
return result;
}
И это хороший код:
private var m_loaderReferences:Dictionary = new Dictionary();
private function loadImageFromUrl( imageUrl:String ):AbstractOperation
{
var result:AbstractOperation = new AbstractOperation();
var loader:Loader = new Loader();
m_loaderReferences[imageUrl] = loader; // Need to keep a reference to the loader to avoid Garbage Collection
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, function ( e:Event ):void
{
result.dispatchCompleteEvent( loader.content );
delete m_loaderReferences[imageUrl];
} );
loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, function ( event:IOErrorEvent ):void
{
result.dispatchErrorEvent( event );
delete m_loaderReferences[imageUrl];
} );
loader.load( new URLRequest( imageUrl ) );
return result;
}
Я ссылаюсь на загрузчик из словаря, чтобы избежать GC. После завершения загрузки я удаляю загрузчик из Словаря.