我正在加載一個.swf文件,並試圖根據其中的嵌入式xml文檔找到一個類。我已經無休止地看到了這個問題,並且每個人都說「你的類不公開」,「你的類名干擾了你的文檔類」或者「你沒有使用相同的ApplicationDomain」,其中沒有一個是真的。這裏是我的代碼:ReferenceError:Error#1065:變量TestMain未定義
在CoCMain.as,具有CoCMod.fla:
private function pluginLoadingComplete(e:Event):void {
var testXML:XML = new XML(new e.target.content.description);
trace(e.target.applicationDomain.hasDefinition("blah.blaah.testPlugin.TestMain"));//returns false
trace(ApplicationDomain.currentDomain.hasDefinition("blah.blaah.testPlugin.TestMain"));//returns false
trace(testXML.main[0]);//returns blah.blaah.testPlugin.TestMain
var pluginClass:Class = e.target.applicationDomain.getDefinition(testXML.main[0]) as Class;//error here
}
而且在TestMain.as,具有TestMod.fla(這是SWF我裝):
package blah.blaah.testPlugin {
public class TestMain {
public function TestMain():void {
super();
}
public function onEnable():void {
trace("blah");
}
}
}
而在TestMod.fla的幀1:
import blah.blaah.testPlugin.TestMain;
[Embed(source = 'main.xml', mimeType = "application/octet-stream")]
const description:Class;
的xml文件:
<mod>
<name>Test Mod</name>
<description>Please ignore</description>
<author>Bleachisback</author>
<version>1.0</version>
<main>blah.blaah.testPlugin.TestMain</main>
</mod>
我得到的錯誤:
ReferenceError: Error #1065: Variable TestMain is not defined.
at flash.system::ApplicationDomain/getDefinition()
at me.bleachisback.cocMod::CoCMain/pluginLoadingComplete()
非常感謝!我終於明白了這一點,是的,它確實有點失敗了......我最終只是在主時間線上創建了一個類變量,而主類變爲了主類。 – user2885503