需要动作脚本建议!

时间:2010-11-18 22:02:28

标签: flash actionscript actionscript-2

我想在我的动作脚本中添加以下脚本,以便在外部视频完成后重定向到第一帧,

但我不确定如何自定义适合我的脚本脚本的代码。

这是我想用我的AS添加的代码:

ns.onStatus = function(info:Object)
{
if(info.code == 'NetStream.Play.Stop')
{
gotoAndPlay(2);
}
}

以下是我正用于播放外部视频文件的原始代码。我需要自定义上面应该可用于下面的代码。

function checkTime(flv)
{
    var _loc2 = flv.playheadTime;
    var _loc3 = Math.floor(_loc2 / 60);
    var _loc1 = Math.floor(_loc2 % 60);
    if (_loc1 < 10)
    {

        _loc1 = "0" + _loc1;
    } // end if

    current_time.text = _loc3 + ":" + _loc1;
} // End of the function
flv.pauseButton = pause_btn;
flv.playButton = play_btn;
flv.FLVPlayback.align = center;
var time_interval = setInterval(checkTime, 500, flv);

ffwd_btn.onRelease = function ()
{
    flv.seek(flv.playheadTime + 2);
};
rewind_btn.onRelease = function ()
{
    flv.seek(flv.playheadTime - 5);
};
mute_btn.onRelease = function ()
{
    if (videoSound.getVolume() == 0)
    {
        videoSound.start();
        videoSound.setVolume(volLevel);
    }
    else
    {
        volLevel = _root.videoSound.getVolume();
        videoSound.setVolume(0);
        videoSound.stop();
    } // end else if
};
var videoSound = new Sound(this);
videoSound.setVolume(100);
flv.contentPath = flvurl;
fl.video.FLVPlayback.align = center;

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

由于您使用的是AS2,并且complete事件触发与AS2中的FLVPlayback组件不一致,并且您已经使用setInterval进行了轮询,只需将视频durationplayheadTime进行比较您checkTime()函数{1}}就像这样:

function checkTime()
{
    // you other stuff here....

    if( flv.metadata && flv.metadata.duration > 0)
    {
        var prog:Number = Math.round((flv.playheadTime/flv.metadata.duration)*100);

        if( prog == 100 )
        {
            //clean up your interval
            clearInterval(time_interval);

            // do 'end of video' stuff
            gotoAndPlay(2);
        }
    }
}

请注意duration嵌套在metadata实例的FLVPlayback属性中。只有在加载足够的flv文件之后它才可用,但由于您使用间隔进行轮询,因此当您需要它时它就会存在。

应该得到你想要的......