Girdi çıktı hataları

G/Ç hataları için olay işleyicileri ve hata mesajları sağlayın.

Bir mobil cihazda, ağ yüksek hızlı İnternete bağlı bir masaüstü bilgisayarına kıyasla daha az güvenilir olabilir. Mobil cihazlarda harici içeriğe erişmenin iki sınırlaması vardır: kullanılabilirlik ve hız. Bundan dolayı, varlıkların hafif olmasını sağlayın ve kullanıcıya geri bildirim sağlamak için her IO_ERROR olayı için işleyiciler ekleyin.

Örneğin, bir kullanıcının mobil aygıtında web sitenizi taradığını ve iki metro istasyonu arasında aniden ağ bağlantısının kesildiğini hayal edin. Bağlantı koptuğunda dinamik bir varlık yükleniyordu. Masaüstünde, bir çalışma zamanı hatasının ortaya çıkmasını önlemek için böyle bir şey neredeyse hiçbir zaman gerçekleşmeyeceğinden boş bir olay dinleyicisi kullanabilirsiniz. Ancak, mobil cihazda durumu basit bir boş dinleyiciden daha fazlası ile işlemeniz gerekir.

Aşağıdaki kod bir IO hatasına yanıt vermez. Onu burada gösterildiği gibi kullanmayın:

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

Böyle bir hatayı işlemek ve kullanıcı için hata mesajı sağlamak daha iyi bir alışkanlıktır. Aşağıdaki örnek bunu düzgün bir şekilde işler:

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 
}

Kullanıcını içeriği yeniden yüklemesi için bir yol sunmak iyi bir uygulamadır. Bu davranış onIOError() işleyicisinde uygulanabilir.