var skin_mc:SkinManager = SkinManager.getInstance(); skin_mc.loadSkin("skin/01.swf"); skin_mc.addEventListener("skincomplete",completeHandler); function completeHandler(e:Event) { var class_name:String = "Bg"; var _class:Class = skin_mc.getClass(class_name); var new_sprite:Sprite = new _class(); addChild(new_sprite); }
public class SkinManager extends EventDispatcher { public static const SKINCOMPLETE:String="skincomplete"; private static var instance:SkinManager=new SkinManager(); public var loader:Loader;
public function SkinManager() { if (instance != null) { throw new Error("不能直接创建对象"); } loader=new Loader(); } public static function getInstance():SkinManager { return instance; } public function loadSkin(path:String):void {
loader.load(new URLRequest(path)); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); } private function completeHandler(e:Event) { //移除侦听器 loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,completeHandler); dispatchEvent(new Event(SkinManager.SKINCOMPLETE));//发布事件 } public function getClass(className:String):Class { try { return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; } catch (e:Error) { throw new Error(className + " definition not found in " + e.toString()); } return null; } } }
private var hour:Number; private var minute:Number; private var second:Number; private var _hours:Sprite; private var _minutes:Sprite; private var _seconds:Sprite;
public function Clock(h:Sprite,m:Sprite,s:Sprite) { //将传递进来的三个对象参数,赋给该时钟类的三个属性 this._hours = h; this._minutes = m; this._seconds = s;
init(); } private function init() { this.addEventListener(Event.ENTER_FRAME,enterFrameHandler); }