Как я могу обрабатывать IOErrors из HTML Enabled Text Fieds в AS3
Если я загружаю изображения с помощью тега в динамическом текстовом поле и возникает ошибка IOError,то к чему я должен присоединить прослушиватель событий? текстовое поле? Я попробовал это...
var textField:TextField = new TextField();
textField.htmlText = "here is some text <img src='image.jpg'> and then some more";
textField.addEventListener(IOErrorEvent.IOError, function (e:Event):void { trace("error caught") });
Безрезультатно...
Предложения?
3 ответа:
Вы должны установить
id
вimg
, а затем использовать его в getImageReference на вашемTextField
, чтобы получитьLoader
, где вы можете добавить все событие , которое вы хотите:import flash.display.Loader; import flash.events.IOErrorEvent; import flash.text.TextField; //... var tfd:TextField = new TextField(); tfd.htmlText = "here is some text <img id='myImg' src='image.jpg' /> and then some more"; var ldr:Loader = tfd.getImageReference("myImg") as Loader; if (ldr != null) { ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); } //... private function onIOError(e:IOErrorEvent):void{ //... }
Другой пример Здесь Если хотите
У меня есть решение для вас:
tField.addEventListener( Event.ADDED, addedObjectToFieldHandler, true ); function addedObjectToFieldHandler( event:Event ):void { if ( event.target is Loader ) { ( event.target as Loader ).contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, function( e:IOErrorEvent ):void{} ); } }
, что предотвратит flashplayer от ошибок и сбоев при разрыве ссылки на изображение