0

我有一个 swf 文件,它是我的“shell”程序,其中包含许多功能。这个 shell 程序加载子电影。在子电影的根时间轴中,我有以下代码:

function putresponse(q,r) {
    trace (r);
    _root.debug(r);
}
_root.debug("foo");

调试是一个将一些文本写入屏幕的函数。当我在本地运行它时,将调用 putresponse 函数并进行跟踪。当我远程运行它(在 shell 内)时,第一次调试会在加载时立即发生(如您所料),但稍后当调用 putresponse 时,不会执行 debug(r)。外部剪辑与外壳的 url 相同,所以我认为这不是安全问题。另外,正如我所说, debug("foo") 工作正常。这个真的让我很困惑。任何人都可以解释为什么我不能从 _root 调用调试时从函数调用而不是在第一级时间轴上调用?

编辑:对 putresponse 的调用来自本地(在子 MC 内)MC 深处的两层。实际调用是:

_parent._parent.putrepsonse(q,r);
4

1 回答 1

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();
}

检查:http ://www.kirupa.com/forum/showthread.php?290484-How-to-execute-a-function-in-an-externally-loaded-swf

于 2012-06-28T03:18:28.417 回答