2011-12-31 60 views
0

其实我有一个quiz.fla。在该文件中,其中两个填充空白问题,其他两个是
多个问题。使用StartDrag和stopDrag创建测验

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); 


} 

} 

回答

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; 
    } 
} 
+0

如何设置以前的成绩,如果用户想改变答案? – OPETH 2012-01-02 15:50:47

+0

然后在“正确答案”部分放一个递减:'if(badMarked){myBadScore - = 1; } – iND 2012-01-02 16:49:13

+0

感谢您的回复,iND。但我有一个quiz.fla。在文件中,两个问题填补了空白和其他多个问题。 quiz.fla正确运行。我想添加startdarg这个问题,总共有三个问题。我可以如何设置它? – OPETH 2012-01-02 19:27:42