-1

hitTestObject と enter_frame を使用して、ユーザーが「回答ボックスを別のボックスにドラッグする」「テスト」ページを作成しようとしています。回答が正しい場合は、「間違っていない場合は正しい」という単語が表示されますが、4 つ持っています。質問 (q1) と 4 つの回答 (a1) があり、最初の回答が入力された後は、正方形を正解の外に移動しない限り、何もしません。

以前の応答を無視して動作させるにはどうすればよいですか? ドラッグ/ドロップ コマンドも使用しています。

-

finalTest.addEventListener(Event.ENTER_FRAME, detectCollision);

function detectCollision (evt: Event) : void {
    if(a1.hitTestObject(q1)) {
        finalTest.checkText.text = "Correct answer";
    }
    else if(a1.hitTestObject(q2)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a1.hitTestObject(q3)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a1.hitTestObject(q4)) {
        finalTest.checkText.text = "wrong";
    }

    else if(a2.hitTestObject(q2)) {
        finalTest.checkText.text = "Correct answer";
    }
    else if(a2.hitTestObject(q1)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a2.hitTestObject(q3)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a2.hitTestObject(q4)) {
        finalTest.checkText.text = "wrong";
    }

    else if(a3.hitTestObject(q3)) {
        finalTest.checkText.text = "Correct answer";
    }
    else if(a3.hitTestObject(q1)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a3.hitTestObject(q2)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a3.hitTestObject(q4)) {
        finalTest.checkText.text = "wrong";
    }

    else if(a4.hitTestObject(q4)) {
        finalTest.checkText.text = "Correct answer";
    }
    else if(a4.hitTestObject(q1)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a4.hitTestObject(q2)) {
        finalTest.checkText.text = "wrong";
    }
    else if(a4.hitTestObject(q3)) {
        finalTest.checkText.text = "wrong";
    }
    else {
        finalTest.checkText.text = " ";
    }
}
4

1 に答える 1

0

たぶんこれが役立つはずです:

var questionArray:Array = new Array(q1,q2,q3,q4);
var answerArray:Array = new Array(a1,a2,a3,a4);

var checkId:int = 0;

for(var i:int = 0; i<answerArray.length; i++) {
     answerArray[i].ids = i;
     answerArray[i].addEventListener(MouseEvent.MOUSE_DOWN, onDragHandler);
     answerArray[i].addEventListener(MouseEvent.MOUSE_UP, onReleaseHandler);
}

function onDragHandler(e:MouseEvent) {
     e.currentTarget.startDrag();
     checkId = e.currentTarget.ids;
}

function onReleaseHandler(e:MouseEvent) {
    e.currentTarget.stopDrag();
    if(e.currentTarget.hitTestObject(questionArray[checkId])) {
        finalTest.checkText.text = "Correct Answer";
    } else {
        finalTest.checkText.text = "Wrong";
    }
}

質問と回答を配列にします。そして、私は使用しませんでしたENTER_FRAME..

于 2012-12-19T05:05:01.727 に答える