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

Posted

技术标签:

【中文标题】如何向后和向前循环 Flash 电影的一部分(“乒乓”循环)【英文标题】:How to loop part of a Flash movie backward and forward ("ping-pong" loop) 【发布时间】: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 文件的图像序列版本 【参考方案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();”的帧上。在单独的图层上执行操作。我错过了什么吗?

以上是关于如何向后和向前循环 Flash 电影的一部分(“乒乓”循环)的主要内容,如果未能解决你的问题,请参考以下文章

在 Pandas 中具有向后和向前看状态的 Fillna

ag-grid:水平向后和向前滚动后,在自定义单元格渲染器中发现服务未定义

向后搜索视觉模式选择

在 python 列表中向后或向前循环以查找匹配项

第2课,python while循环的使用

快速排序