Flash视频播放器擦洗器拖过进度条填充

时间:2009-01-27 23:17:59

标签: actionscript-3 progress-bar

我正在尝试对自定义视频播放器的擦除器进行故障排除,并且我遇到了一个问题,如果flv没有完全加载,则擦除器会被拖过进度条填充。

玩家在这里: http://mindfilemultimedia.com/stage/portfolio.html

如果您播放视频,您会看到当flv仍在下载时,当您将滑块移过黄色进度条进入线条的白色部分时,视频播放器将冻结。这样做是因为用户告诉它寻找尚未完全下载的视频的一部分。我想要它做的是确定flv是否仍在下载并限制用户只能将擦洗器向上拖动直到黄色进度条的宽度。现在我已经设置了代码来检索bytesLoaded和bytesTotal,我想要做的就是说(在actionscript 3中):

if (videoPlayer.bytesLoaded < videoPlayer.bytesTotal) {
    var newBounds:Rectangle = new Rectangle(0, 0, (videoPlayer.bytesLoaded/videoPlayer.bytesTotal) * MovieClip(root).SeekBar.SeekProgressBar.width, 0);
    MovieClip(root).SeekBar.SeekBarHandle.startDrag(false, newBounds);
}

我绝不是一个动作人物,所以这是我尝试做我需要的事情。我有一种感觉它不能正常工作,因为我正在为进度条和擦除器句柄错误地访问类,但我只是采用默认类,因为seekbar是一个flash组件。好吧,我可能完全错了。这里的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你把这段代码放在哪里?它需要放在某个地方,定期更新。根据您使用的视频播放器类型,您可以查看它发送的事件,并使用事件监听器定期检查已缓冲的内容。你也可以使用输入帧事件,虽然你需要确保在缓冲区完成后你停止监听,因为它会在每一帧上增加额外的开销。

作为旁注,SeekBar和SeekBarHandle应该分别是seekBar和seekBarHandle,因为它是在actionscript中以小写字母开始实例名称的标准做法。