Erros de entrada e saída

Fornece manipuladores de eventos e mensagens de erro para erros de entrada e saída.

Em um dispositivo móvel, a rede pode ser menos confiável que em um computador desktop conectado com alta velocidade à Internet. O acesso a conteúdos externos em dispositivos móveis tem duas limitações: disponibilidade e velocidade. Portanto, certifique-se de que os ativos sejam leves e adicione manipuladores para cada evento IO_ERROR para fornecer feedback ao usuário.

Por exemplo, imagine que um usuário está navegando por seu site com um dispositivo móvel e subitamente perde a conexão de rede entre duas estações de metrô. Um ativo dinâmico estava sendo carregado quando a conexão foi perdida. No computador desktop, você pode usar um ouvinte de eventos vazio para evitar a exibição de um erro no tempo de execução, porque esse cenário quase nunca ocorreria. Entretanto, em um dispositivo móvel, você precisa lidar com a situação com mais do que um simples ouvinte vazio.

O código a seguir não responde a um erro de entrada e saída. Não o use como mostrado:

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; 
}

Uma melhor prática é lidar com a falha e fornecer uma mensagem de erro ao usuário. O código a seguir, lida adequadamente com o erro:

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 
}

Como melhor prática, lembre-se de oferecer uma maneira de o usuário carregar o conteúdo novamente. Esse comportamento pode ser implementado no manipulador onIOError() .