///////////////////////////////////////////////////////////////////////////////// // 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; import flash.text.StyleSheet; public class ServiceCSSLoad extends EventDispatcher implements IService { ///////////////////////////////////////////////////////////////////////////// // Private Members ///////////////////////////////////////////////////////////////////////////// private var v_url: String; private var v_object: Object; private var v_attribute: String; ///////////////////////////////////////////////////////////////////////////// // Constructor ///////////////////////////////////////////////////////////////////////////// public function ServiceCSSLoad (p_url: String, p_object: Object, p_attribute: String) { v_url = p_url; v_object = p_object; v_attribute = p_attribute; } ///////////////////////////////////////////////////////////////////////////// // 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) { trace("ServiceCSSLoad: " + p_error.message) dispatchEvent(new Event(Event.COMPLETE)); }; } ///////////////////////////////////////////////////////////////////////////// // Event Handlers ///////////////////////////////////////////////////////////////////////////// private function eh_url_loaded(p_event: Event): void { var l_css: StyleSheet = new StyleSheet(); l_css.parseCSS(URLLoader(p_event.target).data); v_object[v_attribute] = l_css; dispatchEvent(new Event(Event.COMPLETE)); } private function eh_io_error(p_error: IOErrorEvent): void { trace("ServiceCSSLoad: " + p_error.toString()) dispatchEvent(new Event(Event.COMPLETE)); } ///////////////////////////////////////////////////////////////////////////// // End of Class ///////////////////////////////////////////////////////////////////////////// } }