Как мне обрабатывать ошибки ввода-вывода из текстовых файлов с поддержкой HTML в AS3 - PullRequest
2 голосов
/ 22 февраля 2010

Если я загружаю изображения с помощью тега imageв динамическое текстовое поле и выдается 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 ]

4 голосов
/ 22 февраля 2010

Вы должны установить 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{
 //...
}

Другой пример здесь , если хотите

2 голосов
/ 17 ноября 2010

У меня есть решение для тебя:

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 выдавать ошибки и аварийно завершать работу при разрыве ссылки на изображение

0 голосов
/ 22 февраля 2010

вы должны использовать блок try catch:

try
{
  var textField:TextField = new TextField();
  textField.htmlText = "here is some text <img src='image.jpg'> and then some more";
}
catch( error:IOError )
{
    //handle IOError
}
...