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