flex拖动进度条播放视频
请教各位flex高手一个问题,我做了一个flex播放器,用HSlider控制视频播放。在视频没有加载完成的情况下,也就是进度条拖到哪,就从哪开始播放。下面是我写的代码,在IE7,IE9,谷歌游览器上都可以实现拖动功能。在IE8上面实现不了,拖动进度条到没有加载到的地方进度条就回到起点位置了。各位高手帮忙看看,这个问题怎么解决。先谢谢了。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top" backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.events.VideoEvent;
private function formatTime(item:Date):String {
return dateFormatter.format(item);
}
private function videoDisplay_playheadUpdate():void {
/* If playhead time is 0, set to 100ms so the DateFormatter doesnt return an empty string. */
var pT:Number = videoDisplay.playheadTime || 0.1;
var tT:Number = videoDisplay.totalTime;
/* Convert playheadTime and totalTime from seconds to milliseconds and create new Date objects. */
var pTimeMS:Date = new Date(pT * 1000);
var tTimeMS:Date = new Date(tT * 1000);
timeLabel.text = formatTime(pTimeMS) + " / " + formatTime(tTimeMS);
}
private function slider_thumbPress():void
{
videoDisplay.removeEventListener( VideoEvent.PLAYHEAD_UPDATE, onPlayingVideoUpdate );
videoDisplay.pause();
}
private function slider_thumbRelease():void
{
videoDisplay.addEventListener( VideoEvent.PLAYHEAD_UPDATE, onPlayingVideoUpdate );
videoDisplay.playheadTime = slider.value;
videoDisplay.play();
}
private function videoDisplay_ready():void
{
videoDisplay.addEventListener( VideoEvent.PLAYHEAD_UPDATE, onPlayingVideoUpdate );
videoDisplay.visible = true;
controlBar.visible = true;
}
private function onPlayingVideoUpdate() :void
{
slider.value = videoDisplay.playheadTime;
}
]]>
</mx:Script>
<!-- Only show minutes and seconds. -->
<mx:DateFormatter id="dateFormatter" formatString="NN:SS" />
<mx:Zoom id="zoom" />
<mx:Panel title="{videoDisplay.source.split('/').pop()} ({videoDisplay.state})">
<mx:VideoDisplay width="520" height="450" id="videoDisplay" visible="false" showEffect="{zoom}"
playheadUpdate="videoDisplay_playheadUpdate()"
ready="videoDisplay_ready()"
rewind="videoDisplay.play()"
source="http://web.qqvideo.tc.qq.com/3/5KjbHbPKnDF.flv" />
<mx:ControlBar id="controlBar" visible="false">
<mx:HSlider id="slider" width="100%"
allowTrackClick="false"
invertThumbDirection="true"
liveDragging="false"
maximum="{videoDisplay.totalTime}"
minimum="0"
thumbPress="slider_thumbPress()"
thumbRelease="slider_thumbRelease()"
tickInterval="1"
value="{videoDisplay.playheadTime}" />
<mx:Label id="timeLabel" textAlign="right" />
</mx:ControlBar>
</mx:Panel>
</mx:Application>