2012-09-12 6 views
5

Flash CS6でiOSゲームを開発しています。 Event.MOUSE_DOWNハンドラに入れた基本的な動作テストがあります。AS3ボタンを押しながらコードを継続的に実行iOS/Android用

私が期待しているのは、ボタンを指で押さえたときに、プレーヤーが画面に触れなくなるまで動き続けることです。

何が起こっても、プレーヤーを動かし続けるためには、指を押したままでプレイヤーが動き続けるのではなく、常にタップしなければなりません。

私は何をしたいのですか?

答えて

6

これを達成するには、MouseEvent.MOUSE_DOWNEvent.MOUSE_UPの間で連続的に関数を実行する必要があります.MouseEvent.MOUSE_DOWNは1回のプレスで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 
} 

、あなたはそれがマルチタッチコントロールでより多くの柔軟性を与えるように、タッチイベントを使用することをお勧めします。一度に1つのアイテムが押されることを許可するつもりなら、それは問題ではありません。

MouseEvent.MOUSE_DOWNは次のようになります:TouchEvent.TOUCH_BEGIN
MouseEvent.MOUSE_UPは次のようになります。TouchEvent.TOUCH_END

+0

これは私あなたの答えだった場合だけで、適切なタッチイベントであなたのMouseEventリスナーを置き換える、ドキュメントクラスにMultitouch.inputMode = MultitouchInputMode.TOUCH_POINTを追加し、それを行うTO

私の後には投稿しませんでした。しかし、今あなたの答えを編集しました。 – Moorthy

+0

ありがとう..人生の救世主 –