AS3:带有拖放对象的触摸事件问题

问题描述

我是AS3的新手,我正在制作带有触摸事件的拖放游戏。我在拖放对象时遇到问题。我的对象是影片剪辑,所以有answer1_mc,answer2_mc和answer3_mc。当我进行测试运行时,如果第二次单击它们,则会弹出错误消息(请参见下面的图片)。

当我多次点击它们时,我需要这些影片剪辑没有错误。 请帮助我:((

//DRAG AND DROP OBJECTS

var answer1PosX: Number = answer1_mc.x;
var answer1PosY: Number = answer1_mc.y;
var answer2PosX: Number = answer2_mc.x;
var answer2PosY: Number = answer2_mc.y;
var answer3PosX: Number = answer3_mc.x;
var answer3PosY: Number = answer3_mc.y;

answer1_mc.buttonMode = true;
answer2_mc.buttonMode = true;
answer3_mc.buttonMode = true;

answer1_mc.gotoAndStop(1);
answer2_mc.gotoAndStop(1);
answer3_mc.gotoAndStop(1);

check_btn.visible = false;
var dragbounds: Rectangle = new Rectangle(0,stage.stageWidth,stage.stageHeight);


answer1_mc.addEventListener(TouchEvent.TOUCH_BEGIN,touchgo1);
function touchgo1(event: TouchEvent): void {
    event.target.startTouchDrag(event.touchPointID,false,dragbounds);
    answer1_mc.gotoAndStop(2);
    answer2_mc.x = answer2PosX;
    answer2_mc.y = answer2PosY;
    answer3_mc.x = answer3PosX;
    answer3_mc.y = answer3PosY;
}

answer1_mc.addEventListener(TouchEvent.TOUCH_END,touchno1);
function touchno1(event: TouchEvent): void {
    event.target.stopTouchDrag(event.touchPointID);
    answer1_mc.gotoAndStop(1);
    if (answer1_mc.answer1_txt.text == sum) {
        correct_answer = true;
    } else {
        correct_answer = false;
    }
    if (answer1_mc.hitTestObject(answerbox_mc)) {
        answer1_mc.x = answerbox_mc.x;
        answer1_mc.y = answerbox_mc.y;
        check_btn.visible = true;
        answer2_mc.x = answer2PosX;
        answer2_mc.y = answer2PosY;
        answer3_mc.x = answer3PosX;
        answer3_mc.y = answer3PosY;
    } else {
        answer1_mc.x = answer1PosX;
        answer1_mc.y = answer1PosY;
        check_btn.visible = false;
    }
}


answer2_mc.addEventListener(TouchEvent.TOUCH_BEGIN,touchgo2);
function touchgo2(event: TouchEvent): void {
    event.target.startTouchDrag(event.touchPointID,dragbounds);
    answer2_mc.gotoAndStop(2);
    answer1_mc.x = answer1PosX;
    answer1_mc.y = answer1PosY;
    answer3_mc.x = answer3PosX;
    answer3_mc.y = answer3PosY;
}

answer2_mc.addEventListener(TouchEvent.TOUCH_END,touchno2);
function touchno2(event: TouchEvent): void {
    event.target.stopTouchDrag(event.touchPointID);
    answer2_mc.gotoAndStop(1);
    if (answer2_mc.answer2_txt.text == sum) {
        correct_answer = true;
    } else {
        correct_answer = false;
    }
    if (answer2_mc.hitTestObject(answerbox_mc)) {
        answer2_mc.x = answerbox_mc.x;
        answer2_mc.y = answerbox_mc.y;
        check_btn.visible = true;
        answer1_mc.x = answer1PosX;
        answer1_mc.y = answer1PosY;
        answer3_mc.x = answer3PosX;
        answer3_mc.y = answer3PosY;
    } else {
        answer2_mc.x = answer2PosX;
        answer2_mc.y = answer2PosY;
        check_btn.visible = false;
    }
}

answer3_mc.addEventListener(TouchEvent.TOUCH_BEGIN,touchgo3);
function touchgo3(event: TouchEvent): void {
    event.target.startTouchDrag(event.touchPointID,dragbounds);
    answer3_mc.gotoAndStop(2);
    answer2_mc.x = answer2PosX;
    answer2_mc.y = answer2PosY;
    answer1_mc.x = answer1PosX;
    answer1_mc.y = answer1PosY;
}

answer3_mc.addEventListener(TouchEvent.TOUCH_END,touchno3);
function touchno3(event: TouchEvent): void {
    event.target.stopTouchDrag(event.touchPointID);
    answer3_mc.gotoAndStop(1);
    if (answer3_mc.answer3_txt.text == sum) {
        correct_answer = true;
    } else {
        correct_answer = false;
    }
    if (answer3_mc.hitTestObject(answerbox_mc)) {
        answer3_mc.x = answerbox_mc.x;
        answer3_mc.y = answerbox_mc.y;
        check_btn.visible = true;
        answer2_mc.x = answer2PosX;
        answer2_mc.y = answer2PosY;
        answer1_mc.x = answer1PosX;
        answer1_mc.y = answer1PosY;
    } else {
        answer3_mc.x = answer3PosX;
        answer3_mc.y = answer3PosY;
        check_btn.visible = false;
    }
}

`

This is the error popping up when a choice is tapped for the second time

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)