Um dies zu erreichen, müssen Sie eine Funktion kontinuierlich zwischen MouseEvent.MOUSE_DOWN
und Event.MOUSE_UP
ausführen, da MouseEvent.MOUSE_DOWN nur einmal pro Druckvorgang ausgeführt wird.
Hier ist ein einfaches Skript genau das zu tun:
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
}
Als Nebenwirkung Sie können die Touch-Ereignisse verwenden, da es mehr Flexibilität mit Multi-Touch-Steuerung gibt. Wenn Sie jedoch immer nur einen Gegenstand zu einem bestimmten Zeitpunkt drücken lassen, ist das kein Problem.
, das zu tun, nur Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT
in der Dokumentenklasse hinzufügen, dann Mouseevent Zuhörer mit dem entsprechenden Berührungsereignis ersetzen:
MouseEvent.MOUSE_DOWN
wird: TouchEvent.TOUCH_BEGIN
MouseEvent.MOUSE_UP
wird: TouchEvent.TOUCH_END
Ist dies Ihre Antwort ist ich hat meinen nicht gepostet. Aber Sie haben gerade Ihre Antwort bearbeitet. – Moorthy
Danke .. ein Lebensretter –