这几天在被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中不暂停也蛮好的,本来就是用来做背景的,呵呵~~

3 Comments

  1. trace以下你duplicate出来的MC,看看它是否存在先。

  2. 的确是存在的:
    _level0.greenBG //外层MC
    _level0.greenBG.circleMC //初始MC
    _level0.greenBG.circleMC1 //复制产生的MC

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.