我有一個加載器swf充當主swf,負責加載和渲染外部swf。as3從子swf調用文檔類中的函數
在加載器swf的文檔類中,我有一個名爲test的函數。
public function test() {
ExternalInterface.call("console.log", "Test");
}
我想從使用名爲StateManager的外部類加載的子swf中調用此函數。在加載器swf的文檔類中正在創建StateManager類的新實例,如下所示。
import com.xxxx.state.StateManager;
public class Loader extends MovieClip {
private static var _instance:Loader;
public static function get instance() { return _instance; }
public var stateManager = new StateManager();
// Other code has been ommited obviously.
}
然後在StateManager中調用一個函數,該函數呈現新的swf。
public function setActiveState(url) {
var request = new URLRequest(url);
var loader = new Loader();
loader.load(request);
addChild(loader);
}
在子SWF的文檔類,我試圖用許多不同的方法,所有這些都毫無結果發生,並沒有被生產錯誤調用加載器SWF的測試功能(我已經證實,子SWF正在渲染)。我已經嘗試使用下面的代碼。
public class ChildSWF extends MovieClip {
public function ChildSWF() {
MovieClip(parent.parent).Loader.instance.test();
}
}
除了
public class ChildSWF extends MovieClip {
public function ChildSWF() {
MovieClip(parent.parent.parent).Loader.instance.test();
}
}
和許多其他代碼片段研究這個問題的時候,我都看見了。如果有人可以幫助,那將不勝感激。
如果您指出了您的孩子swf的安全上下文將會很有幫助。它們是否從父SWF的相同文件夾加載? – BadFeelingAboutThis