使用GetDefinitionByName时引用错误#1065(应用程序域)

时间:2012-07-17 19:12:30

标签: actionscript-3 dns

我有一个使用以下代码的.swf文件:

private function onClick(e:MouseEvent):void {
var popUpClass:Class = getDefinitionByName(e.currentTarget.popUp) as Class;
popUpContent = new popUpClass();
}

然而,当我将swf加载到另一个“容器”swf中时,我得到一个参考错误#1065。我一直在阅读有关堆栈溢出的几篇帖子(例如,this onethis one),但我仍然对于该怎么做感到困惑。

例如,我是否更改了“加载的swf”中的代码以引用它自己的应用程序域(而不是容器swf的域?),如果是这样,我该怎么做呢?

或者我是否加载swf文件并将其自己的应用程序域分配给容器的代码? (不是加载的swf的代码?)

另外,我的“e.currentTarget.popUp”只有一个简短的名字“PopUpWhateverName”,我应该给它一个完整的包名,如“com.MyLoadedSwf.Assets.PopUpWhateverName”吗?

1 个答案:

答案 0 :(得分:1)

是,完整的包名:getDefinitionByName(“com.MyLoadedSwf.Assets.PopUpWhateverName”)

但您也可以尝试:

var popUpClass:Class = e.currentTarget.popUp.constructor;
popUpContent = new popUpClass();