Para lograr esto, deberá ejecutar una función continuamente entre MouseEvent.MOUSE_DOWN
y Event.MOUSE_UP
ya que MouseEvent.MOUSE_DOWN solo se enviará una vez por pulsación.
Aquí es un simple script para hacer precisamente eso:
myButton.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
function mouseDown(e:Event):void {
stage.addEventListener(MouseEvent.MOUSE_UP,mouseUp); //listen for mouse up on the stage, in case the finger/mouse moved off of the button accidentally when they release.
addEventListener(Event.ENTER_FRAME,tick); //while the mouse is down, run the tick function once every frame as per the project frame rate
}
function mouseUp(e:Event):void {
removeEventListener(Event.ENTER_FRAME,tick); //stop running the tick function every frame now that the mouse is up
stage.removeEventListener(MouseEvent.MOUSE_UP,mouseUp); //remove the listener for mouse up
}
function tick(e:Event):void {
//do your movement
}
Como acotación al margen, es posible que desee utilizar los eventos de toque, ya que da más flexibilidad con el control multi-touch. Sin embargo, si solo permite que se presione un elemento en un momento dado, no es un problema.
Para ello, sólo tiene que añadir Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT
en su clase de documento, vuelva a colocar sus oyentes MouseEvent con el evento táctil apropiado:
MouseEvent.MOUSE_DOWN
se convierte en: TouchEvent.TOUCH_BEGIN
MouseEvent.MOUSE_UP
se convierte en: TouchEvent.TOUCH_END
Si este fue su respuesta me no ha publicado el mío Pero ya has editado tu respuesta. – Moorthy
Gracias .. un salvavidas –