如何前后循环部分Flash电影(“乒乓”循环)

时间:2013-07-29 16:51:02

标签: flash video actionscript flv

我有一部带有两个嵌入式FLV视频的Flash电影。我想要做的是当页面加载时,电影播放两个视频片段...然后当它到达第二个片段的末尾时,它会切换并反向播放直到第二个片段的开头,然后播放到结束了 - 基本上是时间线后半部分的“乒乓”循环。

我看了几个不同的解决方案,但它们都是用于按钮,看起来太复杂了。我希望我想做的事情非常简单,并且只需要几行代码。

这是我目前正在使用的,但它不起作用(自从我使用AS以来已经很长时间了,所以我确定我错过了一些明显的东西)。帧171是第二个剪辑开始的地方,帧230是电影结束的地方。

function mcPlay(_root, 171) {
    if (f == 230) {
        f = _root._totalframes;
    }
    _root.onEnterFrame = function() {
        var cf:Number = this._currentframe;
        if (cf == f) {
            delete this.onEnterFrame;
        } else if (cf<f) {
            this.nextFrame();
        } else {
            this.prevFrame();
        }
    };
}

1 个答案:

答案 0 :(得分:0)

以下是您需要的代码,这是一个重要的注意事项:将代码放在1帧动画片段中而不是主视频时间轴上:

var direction:String = "forward";

_root.onEnterFrame = function()
{
    if (direction == "forward")
    {
        if (_root._currentframe == _root._totalframes)
        {
            trace("switch to back")
            _root.stop()
            direction = "back";
        }
    }
    else if (direction == "back")
    {
        if (_root._currentframe == 171)
        {
            trace("switch to forward")
            direction = "forward";
            _root.play();
        }
        else
            _root.prevFrame();
    }
}