movieClip不会停止循环播放

时间:2012-06-14 14:32:05

标签: actionscript-3 flash adobe flash-builder

我有一个获取movieClip的类,然后使用addChild添加它以显示。问题是我根本无法玩或停止它。基本上我无法与movieClip互动。

以下是代码:

public function Avatar(movieClip:DisplayObject) //class constructor
{   ...
    avatarSprite = MovieClip(movieClip)
    addChild(avatarSprite);
    avatarSprite.gotoAndStop(1); //this is not working
    trace(avatarSprite.currentFrame) //always returns 1
    trace(avatarSprite.isPlaying) // returns false
    ...
    }

当我运行代码时,movieClip在循环中播放并且不会像我期望的那样停止。我不确定是什么问题。如你所见,我没有做太复杂的事情。知道我在这里缺少什么吗?

提前致谢

编辑:正如miguelSantirso指出的那样。问题在于movieClip中的嵌套动画,而不是实际的代码本身。有谁知道如何阻止嵌套动画播放?

3 个答案:

答案 0 :(得分:2)

此函数将停止所有嵌套的movieClip(如果将false传递给useStop参数,则播放它们)

function recursiveStop(parentClip:DisplayObjectContainer, useStop:Boolean = true, gotoFrame:Object = null):void {
    var tmpClip:MovieClip = parentClip as MovieClip;
    if (tmpClip) {
        if (useStop) {
            (gotoFrame != null) ? tmpClip.gotoAndStop(gotoFrame) : tmpClip.stop();
        }else {
            (gotoFrame != null) ? tmpClip.gotoAndPlay(gotoFrame) : tmpClip.play();
        }
    }

    var i:int = parentClip.numChildren;
    while(i--){
        if(parentClip.getChildAt(i) is DisplayObjectContainer){
            recursiveStop(parentClip.getChildAt(i) as DisplayObjectContainer, useStop, gotoFrame);
        }
    }
}

答案 1 :(得分:1)

检查动画片段中是否存在嵌套动画。暂停MovieClip不会停止内部动画。

答案 2 :(得分:-1)

不要将其投射到动画片段,而是尝试将其作为动画片段处理。

avatarSprite = movieClip as MovieClip;

(考虑到传入的movieclip实际上是一个影片剪辑......)