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