我正在实施基于Flex 3的FLV视频播放器,我想添加类似于YouTube播放器的功能。
我希望进度条既显示视频显示进度,又显示视频加载状态。我该如何实现这种行为?
在彼此的顶部使用2个进度条?我也在使用Flex mx:VideoDisplay组件,我需要更改它吗?
答案 0 :(得分:1)
是的,您应该在放置laodingbar的背景中放置两个彼此顶部的条形图,并在Front中放置当前位置条。
但最后这是一项比它看起来更具功能性的工作...... 我将创建一个实现所有条形/滑块功能的新类。
laoder只监听更新(val)以将其新值设置为百分比。 playbar将需要点击和mousedown / mousemove上的一些功能来寻求和再次设置更新功能,包括在玩家后期用户交互中触发搜索的事件。
然后将加载栏更新绑定到播放器的progress事件 所有活动都可以在这里找到
//setting up loadingbar
player.addEventListener(ProgressEvent.PROGRESS,slider_update);
//function to update the slider
private function slider_update(E:ProgressEvent):void{
var percentage:float = 0;
if(E.bytesTotal != 0){
E.bytesLoaded/E.bytesTotal
}
slider.update(percentage)
}
目前的playbar几乎一样
//listens to statechanges of the player to handle updates for cur-pos
player.addEventListener(VideoEvent.PLAYHEAD_UPDATE, checkStatechange);
private function checkStatechange(E:VideoEvent):void{
if(player.totalTime!=0){
timeSlider.update(E.playheadTime/E.totalTime);
};
继续绑定点击以立即设置搜索 - 对于mouseDown和移动以使视频滚动成为可能... 实际上对于mousedown的搜索,mousemove应该在舞台上监听,所以mouseUp否则用户必须留在加载栏上,而在寻求这种情况时,大多数情况下几乎无法处理;) -玩得开心 }