我有一个swf文件,这是我的' shell'包含许多功能的程序。这个shell程序加载儿童电影。在儿童电影的根时间轴中,我有以下代码:
function putresponse(q,r) {
trace (r);
_root.debug(r);
}
_root.debug("foo");
Debug是一个将一些文本写入屏幕的函数。当我在本地运行时,调用putresponse函数并发生跟踪。当我远程运行它(在shell中)时,第一次调试会在加载时立即发生(正如您所期望的那样),但是稍后当调用putresponse时,不会执行debug(r)。外部剪辑与shell处于同一个URL,因此我不认为这是一个安全问题。另外,正如我所说,调试(" foo")工作正常。这个让我感到困惑。任何人都可以解释为什么在从函数调用而不是在第一级时间轴上从_root调用调试时?
编辑:对putresponse的调用将在本地(在子MC中)MCs中形成两层深层。实际的电话是:
_parent._parent.putrepsonse(q,r);
答案 0 :(得分:1)
这是使用Loader
类的外部加载的SWF吗?可能想尝试:
req = new URLRequest("test.swf"); // test.swf has function foo()
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, sayFoo);
ldr.load(req);
someclip.addChild(ldr);
function sayFoo(event:Event):void {
externalSwf = event.target.content;
externalSwf.foo();
}