Предоставьте обработчики событий и сообщения об ошибках ввода-вывода.
В мобильных устройствах соединение с сетью менее устойчиво, чем в настольных компьютерах с высокоскоростным подключением к Интернету. На доступ к внешнему содержимому в мобильных устройствах накладываются два ограничения: доступность и скорость. Поэтому убедитесь, что активы имеют небольшой размер, и добавьте обработчики для каждого события 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()
.