确定正在播放MovieClip

| 我有movieClip(位于as3中),我想知道现在正在播放此movieClip吗 我怎样才能做到这一点?     
已邀请:
尽管很疯狂,但没有内置的方法可以做到这一点(尽管应该如此)。两个选项都有一个标记,您可以在调用播放/停止时交换该标记。
var mc_playing:Boolean = false;

mc_playing = true;
mc.play();



mc_playing = false;
mc.stop();
或者,您可以扩展MovieClip类以创建自己的播放属性。
class SuperMovieClip extends MovieClip {
    private var _playing:Boolean = false;

    public function SuperMovieClip() {

    }

    override public function play():void {
        _playing = true;
        super.play();
    }

    override public function stop():void {
        _playing = false;
        super.stop();
    }

    public get function playing():Boolean {
        return _playing;
    }

}
然后只需将您的mc链接而不是MovieClip链接到SuperMovieClip     
如果您不想覆盖Core类,则可以创建一个Controller类来在时间更新时处理这些检查。控制器持有要检查的剪辑,并在更新中存储currentFrame。使用这种方法,您可以使用一个控制器来控制许多片段,而您仅询问控制器是否正在播放片段。以后可以轻松地向控制器添加功能,而无需更改要检查的类。
_controller = new TimelineClipController(); 
_controller.add(_animationClip1);
_controller.add(_animationClip2);

// on update (ENTER_FRAME, CUSTOM EVENT or TIMER)
_controller.update();

// check if playing
trace(_controller.isClipPlaying(_animationClip1));
另一种方法是添加脚本运行时。我个人不喜欢这个,但在某些情况下可能会很不错。假设您添加了一个
//add script to star timeline on frame 2
_animationClip1.addFrameScript(1, frameFunction); // (zero based)
    

要回复问题请先登录注册