2016-07-23 6 views
1

私は中央のムービークリップを持っているadobe airでゲームを開発しています。ユーザがこのムービークリップに触れてステージを移動すると、ムービークリップはタッチ位置に応じて「x」を変更する必要があります。ユーザーがMCを押して移動している間に10〜15秒後に、
ユーザーが触れている間にムービークリップを移動するAS3

MC.addEventListener(TouchEvent.TOUCH_MOVE, touchDownMC); 
function touchDownMC(e:TouchEvent):void { 
    MC.x = e.stageX; 
} 

をMCが正常に動いているが、問題がある:私はそれを行うためのものかを正確にやっている次のコードを、使用していますMCは現在のタッチイベントの応答を停止し、ユーザはそれを再びタッチして戻ってくる必要があります。それはTouchEventを失っているようだ。どのように私はMCが常に私はそれに私の指を持っている限り移動するように、それを聞いて、移動し続けることができますか?

答えて

3

Found The Solution!

MC.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); 
function onTouchBegin(event:TouchEvent) { 
    if(touchMoveID != 0) { 
    //  myTextField.text = "already moving. ignoring new touch";  
    trace("It Did Not"); 
    return; 
    } 
    touchMoveID = event.touchPointID; 

// myTextField.text = "touch begin" + event.touchPointID; 
    stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); 
    stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); 
} 
function onTouchMove(event:TouchEvent) { 
    if(event.touchPointID != touchMoveID) { 
    // myTextField.text = "ignoring unrelated touch"; 
     return; 
    } 
    MC.x = event.stageX; 
    MC.y = event.stageY; 
// myTextField.text = "touch move" + event.touchPointID; 
} 
function onTouchEnd(event:TouchEvent) { 
    if(event.touchPointID != touchMoveID) { 
    //  myTextField.text = "ignoring unrelated touch end"; 
     return; 
    } 
    touchMoveID = 0; 
    stage.removeEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); 
    stage.removeEventListener(TouchEvent.TOUCH_END, onTouchEnd); 
    // myTextField.text = "touch end" + event.touchPointID; 
} 
:そうするための最善の方法は、SO AS3/AIR check if TouchPhase.ENDED is over object

これは私が私の場合には、それを実装する方法である私が見つけ、このコードを使用することです

関連する問題