AS3 kullanarak dinamik sayfa çağırmak

Actionscript 3 dilinde actionscript 1 ve 2 de alışık olduğumuz bir çok fonskiyonun adı ve kullanış biçimi değiştirilmiş ve çok daha kullanışlı hale gelmiştir. Yeni gelen sınıflardan biride flash.net kütüphanesinin altında bulunan URLLoader sınıfıdır. As2 de loadVariables fonksiyonunu kullanarak dinamik sayfalardan verileri yüklüyorduk. Artık bu fonksiyonun yerini URLLoader sınıfı almıştır. Yazmış olduğum NetLoader sınıfı URLLoader sınıfından türemektedir ve verileri yüklerken kod tekrarını azaltmaktadır.

//NetLoader.as sınıfı
package myProject {
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.events.*;
 
 
	public class NetLoader extends URLLoader {	
 
		public static var ON_LOADER_SUCCESS:String = "on_loader_success";
		public static var ON_LOADER_ERROR:String = "on_loader_error";
 
		private var successEvent:Event;		
		private var errorEvent:Event;
 
		public function NetLoader() {
			addEventListener(Event.COMPLETE, completeHandler);
			addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
		}
 
		public override function load(request:URLRequest):void {			
			super.load(request);
		}
 
		public override function close():void {
			removeEventListener(Event.COMPLETE, completeHandler);
			removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            removeEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
		}
 
		private function completeHandler(event:Event):void { 
			successEvent = new Event(ON_LOADER_SUCCESS, true);			
			dispatchEvent(successEvent);
		}
 
		private function securityErrorHandler(event:SecurityErrorEvent):void {
            errorEvent = new Event(ON_LOADER_ERROR, true);	
			dispatchEvent(errorEvent);
        }
 
        private function httpStatusHandler(event:HTTPStatusEvent):void {
			if(event.status == 404) {
				errorEvent = new Event(ON_LOADER_ERROR, true);			
				dispatchEvent(errorEvent);
			}            
        }
 
        private function ioErrorHandler(event:IOErrorEvent):void {
            errorEvent = new Event(ON_LOADER_ERROR, true);			
			dispatchEvent(errorEvent);
        }
	}
}
 
//Bu sınıfı şu şekilde kullanabilirsiniz
var myLoader:NetLoader = new NetLoader();
myLoader.addEventListener(NetLoader.ON_LOADER_SUCCESS, dataLoaded);
myLoader.addEventListener(NetLoader.ON_LOADER_ERROR, dataLoadedError);
 
private function dataLoaded(evtObj:Event):void { 
trace("Yükleme başarıyla tamamlandı");
}
 
private function dataLoadedError(evtObj:Event):void { 	
trace("Yükleme sırasında hata oluştu");					
}
 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir