Ошибки ввода-вывода

Предоставьте обработчики событий и сообщения об ошибках ввода-вывода.

В мобильных устройствах соединение с сетью менее устойчиво, чем в настольных компьютерах с высокоскоростным подключением к Интернету. На доступ к внешнему содержимому в мобильных устройствах накладываются два ограничения: доступность и скорость. Поэтому убедитесь, что активы имеют небольшой размер, и добавьте обработчики для каждого события IO_ERROR для обратной связи с пользователем.

Например, если пользователь просматривает веб-сайт через мобильное устройство и соединение с сетью внезапно прерывается между двумя станциями метро. Динамический актив был загружен при потере соединения. В настольной системе для предотвращения показа ошибки времени выполнения можно использовать пустой прослушиватель событий, поскольку такой сценарий маловероятен. Однако в мобильном устройстве такую ситуацию необходимо обработать не только с помощью простого пустого прослушивателя.

Следующий код не реагирует на ошибку ввода-вывода. Не используйте его в том виде, в каком он приводится.

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onComplete ); 
addChild( loader ); 
loader.load( new URLRequest ("asset.swf" ) ); 
  
function onComplete( e:Event ):void 
{ 
    var loader:Loader = e.currentTarget.loader; 
    loader.x = ( stage.stageWidth - e.currentTarget.width ) >> 1; 
    loader.y = ( stage.stageHeight - e.currentTarget.height ) >> 1; 
}

Лучше обработать такую ошибку и вывести для пользователя сообщение об ошибке. Следующий код позволяет правильно обработать ошибку.

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener ( Event.COMPLETE, onComplete ); 
loader.contentLoaderInfo.addEventListener ( IOErrorEvent.IO_ERROR, onIOError ); 
addChild ( loader ); 
loader.load ( new URLRequest ("asset.swf" ) ); 
 
function onComplete ( e:Event ):void 
{ 
      var loader:Loader = e.currentTarget.loader; 
      loader.x = ( stage.stageWidth - e.currentTarget.width ) >> 1; 
      loader.y = ( stage.stageHeight - e.currentTarget.height ) >> 1; 
} 
 
function onIOError ( e:IOErrorEvent ):void 
{ 
      // Show a message explaining the situation and try to reload the asset. 
      // If it fails again, ask the user to retry when the connection will be restored 
}

Лучшим приемом является вывести для пользователя предложение повторной загрузки содержимого. Это поведение можно реализовать в обработчике onIOError() .