Slider personalizado para TimeLine
This movie requires Flash Player 8
clase
package mx.com.developer{
import flash.display.MovieClip;
import flash.geom.Rectangle;
import flash.events.MouseEvent;
import flash.events.Event;
public class SliderTimeLine extends MovieClip {
private var MIN_WIDTH_SLIDER:Number=150;
private var MAX_WIDTH_STAGE:Number=495;
private var titulo:String;
public function SliderTimeLine(_titulo:String) {
titulo=_titulo;
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function addedToStage(e:Event):void {
txt_itemTitle.text=titulo;
mc_itemCorner.addEventListener(MouseEvent.MOUSE_DOWN,dragInit);
mc_itemCorner.addEventListener(MouseEvent.MOUSE_UP,dragStop);
mc_itemCorner.addEventListener(MouseEvent.MOUSE_OUT,dragStop);
mc_itemCorner.buttonMode=true;
mc_itemAreaHit.addEventListener(MouseEvent.MOUSE_DOWN,dragInit);
mc_itemAreaHit.addEventListener(MouseEvent.MOUSE_UP,dragStop);
mc_itemAreaHit.addEventListener(MouseEvent.MOUSE_OUT,dragStop);
mc_itemAreaHit.buttonMode=true;
}
private function dragInit(e:MouseEvent):void {
switch (e.currentTarget.name) {
case "mc_itemCorner" :
e.target.startDrag(false,new Rectangle((MIN_WIDTH_SLIDER-(e.target.width)),0,(MAX_WIDTH_STAGE-MIN_WIDTH_SLIDER)-e.target.parent.x,0));
e.target.addEventListener(Event.ENTER_FRAME,followCorner);
break;
case "mc_itemAreaHit" :
e.target.parent.startDrag(false,new Rectangle(0,e.target.parent.y,MAX_WIDTH_STAGE-(e.target.parent.width),0));
break;
}
}
private function dragStop(e:MouseEvent):void {
switch (e.currentTarget.name) {
case "mc_itemCorner" :
e.target.stopDrag();
e.target.removeEventListener(Event.ENTER_FRAME, followCorner);
e.target.parent.mc_itemBack.width=e.target.x+e.target.width;
e.target.parent.mc_itemAreaHit.width=e.target.x;
break;
case "mc_itemAreaHit" :
e.target.stopDrag();
break;
}
}
private function followCorner(e:Event):void {
switch (e.currentTarget.name) {
case "mc_itemCorner" :
e.target.parent.mc_itemBack.width=e.target.x+e.target.width-1;
e.target.parent.mc_itemAreaHit.width=e.target.x;
break;
}
}
}
}
Uso:
import mx.com.developer.SliderTimeLine;
var ItemSlider:SliderTimeLine=new SliderTimeLine("Texto de la barra");
addChild(ItemSlider);