AS3运行时加载外部库,调用swf中的库
使用Flash Builder创建ActionScript项目,最苦恼的事情莫过于没有素材了。如果能通过运行时加载的方式提供素材,那么开发起项目来就事半功倍了!下面介绍的,正是这种运行时加载素材的方式。 【例1】 浅显的研究了一下,发现用这个类竟可以调用加载进来的SWF库文件,嘿嘿,以后做大型的网络开发,这个功能可就能派上大用场了.现将代码公视如下: var loader : Loader = new Loader(); function getClass(className:String):Class 【例2】 舞台第一帧书写 : this.playButtonNormalState = "fl.video.skin.PlayButtonNormal"; 然后新建一个fla,在第一帧写入: var request:URLRequest = new URLRequest("SkinOverAllNoCaption.swf"); var loader:Loader = new Loader(); var skinTemplate;//注意这里不能定义类型,否则出错[访问未定义的属性] loader.contentLoaderInfo.addEventListener (Event.COMPLETE,loadComplete); loader.load (request); function loadComplete (event:Event):void { skinTemplate = Sprite(loader.content); trace (skinTemplate ); addChild (skinTemplate ); trace (skinTemplate.pauseButtonOverState); trace (skinTemplate.playpause_mc); //与加载swf交互 skinTemplate.playpause_mc.addEventListener (MouseEvent.CLICK,clickHandler); } function clickHandler (e) { //获得加载的swf中的库的定义 var runtimeClassRef:Class = getClass(skinTemplate.playButtonNormalState); //或者使用这句 // var runtimeClassRef:Class = getClass("fl.video.skin.PlayButtonNormal"); trace (runtimeClassRef is Class); var greeter:MovieClip = new runtimeClassRef(); addChild (greeter); } function getClass (className:String):Class { return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |