0

AS3 を使用してドラッグ アンド ドロップ ゲームを作成しています。これは、ドラッグアンドドロップを行うために使用したコードです。ゲームは、ユーザーが 3 つのオプションから特定の回答を正しい位置にドラッグする必要がある場合に、ユーザーにヒントを提供します。このコーディングにより、ユーザーは 3 つのオプションすべてを選択できるようになります。私がやりたいことは、ユーザーが複数のオプションを選択できないようにすることです。誰かがこれで私を助けることができますか?

var myArray:Array = [apple, grapes, gava];
var matchImage:Array = [imgApple, imgGrapes, imgGuava];
var posArray:Array = [ {x:55.3, y:55.6}, {x:100.45, y:100.6}, {x:300.5, y:250.7} ];
var currentClip:MovieClip;
var Xpos:Number;
var Ypos:Number;

for(var i:int = 0; i < wordArray.length; i++) {
    myArray[i].buttonMode = true;
    myArray[i].addEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);
}

function item_onMouseDown(event:MouseEvent):void {
    currentClip = MovieClip(event.currentTarget);
    Xpos = currentClip.x;
    Ypos = currentClip.y;
    addChild(currentClip); 
    currentClip.startDrag();
    stage.addEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
}

function stage_onMouseUp(event:MouseEvent):void {
    stage.removeEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
    currentClip.stopDrag();
    var index:int = myArray.indexOf(thisClip);
    var equalClip:MovieClip = MovieClip(matchImage[index]);
    if(matchImage.hitTestPoint(thisClip.x, thisClip.y, true)) {
        currentClip.x = posArray[index].x;
        currentClip.y = posArray[index].y;
        currentClip.removeEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);
        currentClip.buttonMode = false;
    } 
    else
    {    
    currentClip.x = startXposition;
        currentClip.y = startYposition;
    }
}
4

1 に答える 1

1

いずれかのクリップで MouseEvent.MOUSE_DOWN を検出したら、他のクリップのリスナーを削除する必要があります。これにより、それらがドラッグされなくなります。

ドラッグが完了したら、それらを追加して、ユーザーが再びドラッグを開始できるようにすることができます。

于 2012-06-01T15:42:46.240 に答える