Hola:

Tengo un problema con un slider que adaptè, es un slider que controla la timeline de un movie clip. Funciona bien con el mouse, pero cuando intento probarlo en pantalla tactil, deja de funcionar.

Soy nueva en esto del AS3, asi que desde ya gracias por la ayuda



Thumb es el nombre de la parte deslizable del slider.
Track es la barra del slider
leftLimit y rightLimit son los extremos del track

Código :

import flash.events.MouseEvent;

var xOffset:Number;
var thumbRange:Number = track.width - thumb.width;
var leftLimit:Number = track.x - thumbRange;
var rightLimit:Number = track.x;

//new variable: scrollPercent!
var scrollPercent:Number = 0;
myText.text = "0";

thumb.buttonMode = true;
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumb_onMouseDown);
function thumb_onMouseDown(event:MouseEvent):void {
   xOffset = mouseX - thumb.x;
   stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_onMouseMove);
   stage.addEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
}

function stage_onMouseMove(event:MouseEvent):void {
   thumb.x = mouseX - xOffset;
   
   //restrict the movement of the thumb:
   if(thumb.x < leftLimit) {
      thumb.x = leftLimit;
   }
   if(thumb.x > rightLimit) {
      thumb.x = rightLimit;
   }
   
   
   //calculate scrollPercent and make it do stuff:
   trace(track.x);
   trace(thumb.x);
         
   scrollPercent = ((thumb.x - track.x) / thumbRange)+1;
   myText.text = String(scrollPercent);
   Object(this).testMC.gotoAndStop(int(scrollPercent*30));
   
   event.updateAfterEvent();
}

function stage_onMouseUp(event:MouseEvent):void {
   stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_onMouseMove);
   stage.removeEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
}