我有一个使用以下代码的.swf文件:
private function onClick(e:MouseEvent):void {
var popUpClass:Class = getDefinitionByName(e.currentTarget.popUp) as Class;
popUpContent = new popUpClass();
}
然而,当我将swf加载到另一个“容器”swf中时,我得到一个参考错误#1065。我一直在阅读有关堆栈溢出的几篇帖子(例如,this one和this one),但我仍然对于该怎么做感到困惑。
例如,我是否更改了“加载的swf”中的代码以引用它自己的应用程序域(而不是容器swf的域?),如果是这样,我该怎么做呢?
或者我是否加载swf文件并将其自己的应用程序域分配给容器的代码? (不是加载的swf的代码?)
另外,我的“e.currentTarget.popUp”只有一个简短的名字“PopUpWhateverName”,我应该给它一个完整的包名,如“com.MyLoadedSwf.Assets.PopUpWhateverName”吗?
答案 0 :(得分:1)
是,完整的包名:getDefinitionByName(“com.MyLoadedSwf.Assets.PopUpWhateverName”)
但您也可以尝试:
var popUpClass:Class = e.currentTarget.popUp.constructor;
popUpContent = new popUpClass();