///////////////////////////////////////////////////////////////////////////////// // Copyright © 2008 W. Kowarschick // // Permission is granted to copy, distribute and/or modify this document // under the terms of the WK License, Version 1.0 (WKL 1.0) or any later version // published by Wolfgang Kowarschick. ///////////////////////////////////////////////////////////////////////////////// package service { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.net.URLLoader; import flash.net.URLRequest; public class ServiceXMLLoad extends EventDispatcher implements IService { ///////////////////////////////////////////////////////////////////////////// // Private Members ///////////////////////////////////////////////////////////////////////////// private var v_url: String; private var v_object: Object; private var v_attribute: String; private var v_string_result: Boolean; ///////////////////////////////////////////////////////////////////////////// // Constructor ///////////////////////////////////////////////////////////////////////////// public function ServiceXMLLoad (p_url: String, p_object: Object, p_attribute: String, p_string_result: Boolean = false ) { v_url = p_url; v_object = p_object; v_attribute = p_attribute; v_string_result = p_string_result; } ///////////////////////////////////////////////////////////////////////////// // Public Methods ///////////////////////////////////////////////////////////////////////////// public function execute(): void { try { var l_request: URLRequest = new URLRequest(v_url); var l_loader: URLLoader = new URLLoader(); l_loader.addEventListener(Event.COMPLETE, eh_url_loaded); l_loader.addEventListener(IOErrorEvent.IO_ERROR, eh_io_error); l_loader.load(l_request); } catch (p_error: Error) { if (v_string_result) v_object[v_attribute] = "Error: " + p_error.message; else v_object[v_attribute] = ; dispatchEvent(new Event(Event.COMPLETE)); }; } ///////////////////////////////////////////////////////////////////////////// // Event Handlers ///////////////////////////////////////////////////////////////////////////// private function eh_url_loaded(p_event: Event): void { if (v_string_result) v_object[v_attribute] = String(URLLoader(p_event.target).data); else v_object[v_attribute] = XML(URLLoader(p_event.target).data); dispatchEvent(new Event(Event.COMPLETE)); } private function eh_io_error(p_error: IOErrorEvent): void { if (v_string_result) v_object[v_attribute] = "Error: " + p_error.toString(); else v_object[v_attribute] = ; dispatchEvent(new Event(Event.COMPLETE)); } ///////////////////////////////////////////////////////////////////////////// // End of Class ///////////////////////////////////////////////////////////////////////////// } }