私はFlashCS6でiOSゲームを開発しています。Event.MOUSE_DOWN
ハンドラーに入れる基本的な動きのテストがあります。
私が期待/望んでいるのは、ボタンを指で押したままにすると、画面に触れるのをやめるまでプレーヤーが動き続けるということです。
ただし、プレーヤーを動かし続けるには、ボタンを指で押し続けるだけでプレーヤーを動かし続けるのではなく、常にタップし続ける必要があります。
私が望むことを達成するためにどのコードを使用する必要がありますか?
私はFlashCS6でiOSゲームを開発しています。Event.MOUSE_DOWN
ハンドラーに入れる基本的な動きのテストがあります。
私が期待/望んでいるのは、ボタンを指で押したままにすると、画面に触れるのをやめるまでプレーヤーが動き続けるということです。
ただし、プレーヤーを動かし続けるには、ボタンを指で押し続けるだけでプレーヤーを動かし続けるのではなく、常にタップし続ける必要があります。
私が望むことを達成するためにどのコードを使用する必要がありますか?
MouseEvent.MOUSE_DOWN
これを実現するには、その間で関数を継続的に実行する必要がありますEvent.MOUSE_UP
。MouseEvent.MOUSE_DOWNは、プレスごとに1回だけディスパッチされます。
これを行うための簡単なスクリプトを次に示します。
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
}
余談ですが、TOUCHイベントを使用すると、マルチタッチコントロールの柔軟性が高まります。一度に1つのアイテムしか押せないようにする場合でも、問題はありません。
これを行うには、ドキュメントクラスを追加Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT
してから、MouseEventリスナーを適切なタッチイベントに置き換えます。
MouseEvent.MOUSE_DOWN
になります:TouchEvent.TOUCH_BEGIN
MouseEvent.MOUSE_UP
になります:TouchEvent.TOUCH_END