Hi here is a update!

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; 
layout="vertical">

 

<mx:Script>
 <![CDATA[
        import mx.events.VideoEvent;
        import mx.events.FlexEvent;
        import mx.events.SliderEvent;
 
 /** Cato Paus Skrede
  UmbrellaCorp DA
http://www.umbrellacorp.no
 **/
 
         
         [Bindable]
         private var movie:String;
         
         private var _timer:Timer;
 
         private function setSource():void{
          //movie = "http://stage.orchestra.it/x.flv";; // some dud 
dancing 16 min sample.
                movie = "http://stage.orchestra.it/golfers.flv";;
                _timer = new Timer(25,0);
                _timer.addEventListener(TimerEvent.TIMER, onTimer);
                _timer.start();
                
          // the url of the FLV ver. 1.1 do contains the metaData for 
totalTime FLV ver 1.0 do's NOT.
          /* if you type the url into VideoDisplay.source and use 
autoplay it starts to play in design mode
             that's realy annoying.*/
          videoDisplay.volume = 0.01;   
         }
         
         
         private function onTimer(event:TimerEvent):void
         {
                scrubBar.value = videoDisplay.playheadTime;
         }
        
        
        private function sliderThumbEvent(event:SliderEvent):void
        {       
                trace(event.currentTarget.value);               
                if(event.type == SliderEvent.THUMB_PRESS)
                {
                        _timer.removeEventListener(TimerEvent.TIMER, 
onTimer);                       
                }
                else
                {       
                        videoDisplay.playheadTime = scrubBar.value;
                        
                        videoDisplay.addEventListener
(VideoEvent.PLAYHEAD_UPDATE, onVal);
                }
        }
        
        private function onVal(event:VideoEvent):void
        {
                videoDisplay.removeEventListener
(VideoEvent.PLAYHEAD_UPDATE, onVal);
                _timer.addEventListener(TimerEvent.TIMER, onTimer);
                
        }
        
        public function updateVolume(event:Event):void
        {
                videoDisplay.volume = (volumeSlider.value) * .01;
        }

        private function formatPositionToolTip(value:int):String
        {
                //  do only handle minuts.
                        var result:String = (value % 60).toString();
                        if (result.length == 1)
                        {
                                result = Math.floor(value / 
60).toString() + ":0" + result;
                        }
                        else
                        {
                                result = Math.floor(value / 
60).toString() + ":" + result;
                        }
                return result;
        }
        
        private function formatVolumeToolTip(value:int):String
        {
                
                        var result:String = (value % 100).toString();
                        if (result.length == 1)
                        {
                                result = Math.floor(value).toString() 
+ " % volume";
                        }
                        else
                        {
                                result = Math.floor(value).toString() 
+ " % volume";
                        }
                return result;
        }
 



 ]]>
</mx:Script>
 

 
          
           <mx:Panel layout="absolute" width="400" height="400"
                headerHeight="0" cornerRadius="2" borderStyle="solid" 
borderThickness="0"
                borderThicknessBottom="0" borderThicknessLeft="0" 
borderThicknessRight="0"
                borderThicknessTop="0" backgroundColor="#000000">
  
  <mx:VideoDisplay id="videoDisplay"  source="{movie}" width="380" 
height="310" left="10" top="10"/>

  <mx:ProgressBar id="loadProgress" label="" mode="event" 
barColor="#00ff00"
   minimum="0" maximum="100" y="336" height="20"
   source="{videoDisplay}" trackHeight="10" trackColors="[#FF0000, 
#e6eeee]" left="10" right="10"/>

  <mx:HSlider id="scrubBar" height="5"   
                        
        dataTipFormatFunction="formatPositionToolTip"
                                thumbPress="sliderThumbEvent(event)" 
thumbRelease="sliderThumbEvent(event)"
                                minimum="0" 
maximum="{videoDisplay.totalTime}" liveDragging="false" 
snapInterval="0.1" left="4" right="4" bottom="62"/> 

  <mx:Button label="Play" click="videoDisplay.play();" 
cornerRadius="0" bottom="10" x="10"/>
        <mx:Button label="Pause" click="videoDisplay.pause();" 
cornerRadius="0" bottom="10" left="69"/>
        <mx:Button label="Stop" click="videoDisplay.stop();" 
cornerRadius="0" left="138" bottom="10"/>
        
        <mx:HSlider id="volumeSlider" 
dataTipFormatFunction="formatVolumeToolTip" showDataTip="true" 
snapInterval="1" value="0.5" maximum="100" 
                                        thumbDrag="updateVolume
(event);" 
                                        liveDragging="true" 
height="20" left="236" bottom="20" width="154"/>
        
        <mx:Label styleName="playheadTimeLabel"
         text="{formatPositionToolTip(videoDisplay.playheadTime)} - 
{formatPositionToolTip(videoDisplay.totalTime)}"
         color="#ffffff" left="5" top="0"/>
 
 </mx:Panel>


        
        


  <mx:Button click="setSource()" label="Get FLV"/>

</mx:Application>





--- In [email protected], "p0ndu5" <[EMAIL PROTECTED]> wrote:
>
> Trying to make a simple flex based video players, and noticed that 
> the HSlider component doesn't seem "stick" when you drag it.  Try 
this
> code and notice how the slider drops back to the videoPlayhead 
before
> finally settling back to where you dragged it to.  
> 
> Since this behaviour clearly sucks, does anyone know how to make the
> slider non clickable, and not just the track which can be disabled
> with allowTrackClick="false".  
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="vertical" creationComplete="setSource()">
> 
> 
> 
> <mx:Script>
> <![CDATA[
> 
> /** Cato Paus Skrede
>   UmbrellaCorp DA **/
> 
> [Bindable]
> private var movie:String;
> 
> private function setSource():void{
>   //movie = "http://stage.orchestra.it/x.flv";;; // some dud dancing 
16
> min sample.
>   movie = "http://stage.orchestra.it/golfers.flv";;;
> 
>   // the url of the FLV ver. 1.1 do contains the metaData for
> totalTime FLV ver 1.0 do's NOT.
>   /* if you type the url into VideoDisplay.source and use autoplay 
it 
> starts to play in design mode
>      that's realy annoying.*/
> 
> }
> 
> private function formatPositionToolTip(value:int):String{
>   
>   //  do only handle minuts.
>   
>   var result:String = (value % 60).toString();
>         if (result.length == 1){
>             result = Math.floor(value / 60).toString() + ":0" + 
> result;
>         } else {
>             result = Math.floor(value / 60).toString() + ":" + 
result;
>         }
>         return result;
> }
> 
> ]]>
> </mx:Script>
> 
> <mx:Panel layout="absolute" width="400" height="400"
>   headerHeight="0" cornerRadius="2" borderStyle="solid" 
> borderThickness="0"
>   borderThicknessBottom="0" borderThicknessLeft="0" 
> borderThicknessRight="0"
>   borderThicknessTop="0" backgroundColor="#000000">
>   
>   <mx:VideoDisplay id="videoDisplay" autoPlay="false"  
> source="{movie}" width="380" height="310" left="10" top="10"/>
> 
>   <mx:ProgressBar id="loadProgress" label="" mode="event" 
> barColor="#00ff00"
>    minimum="0" maximum="100" y="336" height="20"
>    source="{videoDisplay}" trackHeight="10" trackColors="[#AAff10, 
> #e6eeee]" left="10" right="10"/>
> 
>   <mx:HSlider id="position" height="5"   
>    dataTipFormatFunction="formatPositionToolTip"
>    thumbPress="videoDisplay.pause()" slideDuration="0"
>    thumbRelease="videoDisplay.play()"
>    change="videoDisplay.playheadTime = position.value"
>    value="{videoDisplay.playheadTime}"
>    minimum="0" maximum="{videoDisplay.totalTime}" left="4" 
right="4" 
>    bottom="62"  
>       /> 
> 
>   <mx:Button label="Play" click="videoDisplay.play();" 
> cornerRadius="0" bottom="10" x="10"/>
>         <mx:Button label="Pause" click="videoDisplay.pause();" 
> cornerRadius="0" bottom="10" left="69"/>
>         <mx:Button label="Stop" click="videoDisplay.stop();" 
> cornerRadius="0" left="138" bottom="10"/>
>         
>         <mx:HSlider id="volume" snapInterval="0.01" value="0.5" 
> maximum="1.0" 
>    change="videoDisplay.volume = volume.value;"  
>    liveDragging="true" height="20" left="236" bottom="20" 
> width="154"/>
>         
>         <mx:Label styleName="playheadTimeLabel"
>          text="{formatPositionToolTip(videoDisplay.playheadTime)} - 
> {formatPositionToolTip(videoDisplay.totalTime)}"
>          color="#ffffff" left="5" top="0"/>
> 
> </mx:Panel>
> </mx:Application>
>


Reply via email to