拖放到另一个对象上的拖放问题

时间:2011-10-25 13:47:31

标签: flash actionscript-3

我有一个drog和drag exercice。

dict[box_a]=obj1_mc;
dict[box_b]=obj2_mc;
dict[box_c]=obj3_mc;

对象我可以拖动它们并且盒子不能

function test_match(target,obj){

     // if answer is good 
    if (dict[target]==obj) {
        hits=hits+1;


        textField.text=" Correct !!!";
        obj.alpha=0.5;
        // remove drag event 
        obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
        obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
        // quiz completed, all good 
        if (hits==max) {
            textField.text="Congrats all good  !!";
        }


        // if answer is bad 
    } else {
        //if not good, still remove drag event 
        obj.alpha=0.5
        obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
        obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
        textField.text="Incorrect";


    }
    //display the score so far 
    score_txt.text="your score is "+hits+" out of "+max;
}

这是我的代码。我的问题是,如果我拿一个对象并把它放在另一个对象(obj3_mc上的obj1_mc)上,它会像我把它放到 错误的盒子。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要检查dopped-on对象是否是有效对象之一,如果不是 - 忽略结果。您应该发布更多代码,因为这仅涵盖您的一小部分功能(实际测试)。

编辑:

好的,所以如果你编辑你的mouseUp-handler来包含一个检查,看它是否被放在任何一个盒子上;

if (target!=null && dict[target] ) {
 test_match(target, obj);
} else {

这应该有用(未经测试)。