as3 模块化 flashdll

来源:百度知道 编辑:UC知道 时间:2024/06/16 03:47:08
若何调用被加载swf的 元件与类
如何让吧加载的swf添加到场景

1.
主模块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 te