如何从外部加载的子项中调用父动画片段中的函数?

时间:2012-06-28 02:27:45

标签: flash actionscript-2

我有一个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);

1 个答案:

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

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