我有一个由许多SWF文件组成的Flash AS2应用程序。我需要在容器SWF中创建一个OnClick事件,该事件将适用于每个被调用的SWF。我试图避免向每个SWF添加代码(超过100)。
目前,我可以访问第一个SWF的容器中的点击,但是当第二个SWF被调用时,它似乎会覆盖容器。
this._lockroot = true;
this.onMouseUp = function(){
//if not on login
getURL("javascript:clickTest();");
};
//load swf
loadMovie("test.swf","_level2");
即使容器内的SWF调用另一个SWF,如何触发容器中的点击?
这看起来很简单但却是一场噩梦。它甚至可能吗?
答案 0 :(得分:1)
编辑(re:评论,onClipEvent shenanigans无效)
尝试这样的事情怎么样:
this.createEmptyMovieClip("holder", this.getNextHighestDepth());
loadMovie("test.swf","holder");
而不是:
//load swf
loadMovie("test.swf","_level2");
或者,如果应用程序的结构需要_level2,可以这样:
_level2.createEmptyMovieClip("holder", _level2.getNextHighestDepth());
_level2.holder.loadMovie("test.swf");
我刚用2级嵌套加载尝试了这个,并且它将点击处理程序保持在顶层(同时使用loadMovie w / o持有者没有)。我不确定我做出的假设是否与嵌套SWF的结构相匹配,但这是我最好的猜测。
答案 1 :(得分:0)
你可以将movieClip命名为例如顶层clickHaver
(不惜一切代价) - 如果第二部电影(以及每部电影)加载下一部电影:
- container
- loads movie.swf
- loads movie2.swf
那么你唯一关心的是在加载第一部电影后将clickHaver
置于最前面,因为每一部电影本身都会加载另一个.swf
文件。