这几天在被Flash玩(还没到玩Flash的境界),在flash中写了个自定义右键菜单,其中有个暂停功能,本来以为来个简单的stop()就够了,结果发现不是那么回事,所有MC仍在继续播放……看来只有一个一个地停止所有MC了,但是这个工作显然不能人工搞定,程序吧。由于MC里面嵌套有MC,只有用递归才是比较好的办法。先找出目标MC中的所有MC,然后一个一个地stop。这样想清楚了,其实代码也很简单:
function stopAllClips(target:MovieClip) {
for (var mc in target) {
var objMC = target[mc];
if (objMC instanceof MovieClip) {
objMC.stop();
stopAllClips(objMC);
}
}
target.stop();
}
同样,播放所有MC的function和这个也是一样的。不过,还是有一点点问题,貌似duplicate出来的MC不能停止,不知道有没有什么办法?不过我的那个Flash中不暂停也蛮好的,本来就是用来做背景的,呵呵~~
trace以下你duplicate出来的MC,看看它是否存在先。
的确是存在的:
_level0.greenBG //外层MC
_level0.greenBG.circleMC //初始MC
_level0.greenBG.circleMC1 //复制产生的MC
不过我复制的MC都有onEnterFrame事件,是不是与这个有关?