我想在我的动作脚本中添加以下脚本,以便在外部视频完成后重定向到第一帧,
但我不确定如何自定义适合我的脚本脚本的代码。
这是我想用我的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;
任何人都可以帮助我吗?
答案 0 :(得分:1)
由于您使用的是AS2,并且complete
事件触发与AS2中的FLVPlayback组件不一致,并且您已经使用setInterval
进行了轮询,只需将视频duration
与playheadTime
进行比较您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文件之后它才可用,但由于您使用间隔进行轮询,因此当您需要它时它就会存在。
应该得到你想要的......