【问题标题】:How to loop part of a Flash movie backward and forward ("ping-pong" loop)如何向后和向前循环 Flash 电影的一部分(“乒乓”循环)
【发布时间】:2013-07-29 13:51:23
【问题描述】:

我有一个 Flash 电影,其中包含两个嵌入的 FLV 视频。我想做的是当页面加载时,电影通过两个视频剪辑播放......然后当它到达第二个视频的结尾时,它会切换并反向播放,直到第二个剪辑的开头,然后播放到再次结束 - 基本上是时间线后半部分的“乒乓”循环。

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

这是我目前正在使用的,但它不起作用(我使用 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();
        }
    };
}

【问题讨论】:

  • 您还需要注意flv and playing backwards。如果它反向运行时断断续续并且声音不是问题,您可能需要创建一个 BitmapData 对象数组,在开始时将 flv 的内容缓存到该数组上(使用 draw()),然后擦洗 BitmapData 对象。非代码版本将使用您的 flv 文件的图像序列版本

标签: flash video actionscript flv


【解决方案1】:

下面是您需要的代码,一个重要的注意事项是:将代码放在 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();
    }
}

【讨论】:

  • 另一种方式是这样的:var direction:Number = 1; onEnterFrame = function():Void { if(_currentframe == _totalframes || _currentframe == 171) direction *= -1;//flip the direction gotoAndStop(_currentframe + direction); }
  • 我还没有得到这个工作。我切换到 AS2,因为它包含 _root,但电影所做的只是像往常一样循环剪辑。我看到“切换到后退”触发,但没有看到“切换到前进”。我将 FLV 嵌入到 170 帧长的影片剪辑中,其上方单独层中的代码也是 170 帧长,在主时间轴中,影片剪辑位于带有“stop();”的帧上。在单独的图层上执行操作。我错过了什么吗?
猜你喜欢
  • 2019-08-10
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 2022-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多