@javakf 请教一个AS3的问题

小姚 发布于 2013/02/24 10:18
阅读 258
收藏 0
我想请问,我通过Loader加载swf文件成功后,获得其中的原件定义,保存在一个数组中,
public class SWFLoader
{
protected var loader:Loader = new Loader();
//存储被导入的.swf文件中包含的元件定义
private var objectArray:Array =new Array();

public function SWFLoader()
{
}
//加载方法
public function loadSWF(url:String):void {
var context : LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain);
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(new URLRequest(url), context);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoad);
}

//把需要用到原件加载进数组
public function finishLoad(e:Event):void{
var wall:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("com.object.Wall") as Class;  

objectArray["wall"] = wall;

//var w:Wall = new wall;   //Global.gameScene.addObject(w);这个测试过,可以成功

}

//返回元件数组
public function get getObjectArray():Array{
    var wall:Wall = new this.objectArray["wall"];    //问题出现在这里, TypeError: Error #1007: 尝试实例化的函数不是构造函数。
    Global.gameScene.addObject(this.objectArray["wall"]);
    return objectArray;
}

}

这是为什么呢?

加载中
0
javakf
javakf

既然已经有错误提示了,为什么不试着自己去找一下答案呢

0
vvtf
vvtf

你为啥要new一下。。。。

var wall:Wall = this.objectArray["wall"] as Wall;

小姚
小姚
var wall:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("com.object.Wall") as Class; 它上面存储在数组中的是实例了吗?
返回顶部
顶部