使用StartDrag和stopDrag创建测验

时间:2011-12-31 18:28:03

标签: actionscript-3 actionscript

其实我有一个quiz.fla。在文件中,其中两个填写空白问题,其他则为
多个问题。

square1_mc必须只运行一次而不是两次。 İf用户选择正确,不再运行它。 但是,如果mybadscoretext为1则不增加2,3,4。 :S 我怎么能做到这一切?

stop();

var myScore:Number = 0;
var myBadScore:Number=0;

square1_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag);
stage.addEventListener(MouseEvent.MOUSE_UP, drop);



function drag(e:MouseEvent):void
{
 e.target.startDrag();
}

function drop(e:MouseEvent):void
{

 square1_mc.stopDrag();
 if (square1_mc.hitTestObject(square2_mc)== true)
 {

square1_mc.x=129;
square1_mc.y=133;
 this.graphics.clear();
this.graphics.lineStyle(2, 000000);
this.graphics.moveTo(square1_mc.x, square1_mc.y);
this.graphics.lineTo(square2_mc.x, square2_mc.y);
this.graphics.endFill();


myScore += 1;
score_txt.text=String(myScore);
square1_mc.removeEventListener(MouseEvent.MOUSE_DOWN, drag);



 }

 else 
 { 

square1_mc.x=129;
square1_mc.y=133;
myBadScore += 1;
mybadscore_txt.text=String(myBadScore);


 }

}

1 个答案:

答案 0 :(得分:0)

添加变量以跟踪是否添加了坏分数:

var badMarked:Boolean = false;

function drag(e:MouseEvent):void
{
    e.target.startDrag();
    badMarked = false;
}

[...]

function drop(e:MouseEvent):void
{
    if (square1_mc.hitTestObject(square2_mc)== true)
    {
    [...]
    }
    else if ( !badMarked  )
    { 
        square1_mc.x=129;
        square1_mc.y=133;
        myBadScore += 1;
        mybadscore_txt.text=String(myBadScore);
        badMarked = true;
    }
}