as3 主场景使用外部加载类库

By:不详 Date:2009-08-12

主模块main.swf,被调用模块lib.swf,
lib.fla的文档类Lib.as中,假设已定义的模块有Module0.as,Module1.as
package com{
   import com.Module1;
   import com.Module2;   //import 模块
  public class Lib extends MovieClip{
   private var module1:Module1;
   private var modlue2:Module2;  //要定义一个该类型的变量
}
}
在main文档类中
function init():void{
loader = new Loader;
loader.contentLoaderInfo.addEventListener("complete",getRefer);
loader.load(new URLRequest("lib.swf"));
}
function getRefer(e:Event):void{
var module0:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("com.Module") as Class;
//其他类似 可以得到Lib中已经被声明过的类:Lib,Module0,Module1...
//getDefinition()中的参数要包括被加载类的包名
//new module0();
}
这是as3的反射,你可以在网上根据关键词查询更多的例子;

至于要加载Lib.swf中的元件是同样的道理,元件的linkage必须export for ActionScript 定义一个Class类名例如 Test_mc
加载它如同上面加载类
function getRefer(){
...
var test_mc:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("Test_mc") as Class;
//这里getDefinition()中的参数不需要要包括包名
addChild(new test_mc);
}

参与讨论去: 艾睿(Airia) 交朋友去:友吧推荐文章去:网站贴吧
企业招聘

北京中视力天文化传媒有限公司

公司简介:北京中视力天文化传媒有限公司,是CCTV.com央视国际网络有限公司投资的互联网研发团队。我们是天使的使者。。。

招聘FlashAS程序员详情点击

Copyright 2007-2008 51AS.com Extended in kingcms 鲁ICP备06001158号