2012-07-17 50 views
0

當我有一個使用下面的代碼.swf文件:引用錯誤#1065(應用程序域)使用GetDefinitionByName

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文件並將它自己的應用程序域分配給容器的代碼? (不是代碼爲加載瑞士法郎?)

此外,我的「e.currentTarget.popUp」只是一個簡短的名字「PopUpWhateverName」我應該給它一個完整的包名稱,如「com.MyLoadedSwf.Assets.PopUpWhateverName 「?

回答

1

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

,但你也可以試試:

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