0

我有一个使用以下代码的 .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”吗?

4

1 回答 1

1

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

但您也可以尝试:

var popUpClass:Class = e.currentTarget.popUp.constructor;
popUpContent = new popUpClass();
于 2012-07-17T19:50:22.380 回答