嗨我对adobe flash很新,并且一直在为我的计算类做一个项目,我正在制作一个游戏,显示2个随机生成的数字,用户必须输入值,如果答案是正确的话,获得10分。然而,如果答案是正确的话,我很难让输入文本框能给我10分,因为现在我只获得积分,如果2个生成的数字的总和为0.真的很感激帮助,很多谢谢。我将把代码放在下面
public class Main extends MovieClip {
var Num1:int ;
var Num2:int ;
var Answer:int ;
var Score:int=0;
var UserInput;
public function Main()
{
// constructor code
gotoAndStop(1);
Start.addEventListener(MouseEvent.CLICK, StartFunct);
}
function StartFunct(e:Event)
{
gotoAndStop(2);
button.addEventListener(MouseEvent.CLICK,clickhandler);
button.addEventListener(MouseEvent.CLICK,clickhandler2);
button.addEventListener(MouseEvent.CLICK,checkFunction);
}
function checkFunction(event:MouseEvent):void
{
Answer= Num1*Num2;
if(UserInput == Answer){
Score=Score+10
}
else Score=Score
}
function clickhandler(event:MouseEvent):void
{
Num1 = Math.floor(Math.random()*10);
Num2 = Math.floor(Math.random()*10);
num1Box.text = String(Num1);
num2Box.text = String(Num2);
UserInput = "";
}
function clickhandler2(event:MouseEvent):void
{
Score = Score;
ScoreBox.text = String(Score);
答案 0 :(得分:2)
在我看来,这是一个订购问题。您有三个单独的点击事件同时触发。执行此操作的理想方法是创建单击处理函数,并将您的其他三个函数按照您想要的顺序封装到其中。
而不是function StartFunct(e:Event)
{
gotoAndStop(2);
button.addEventListener(MouseEvent.CLICK,clickhandler);
button.addEventListener(MouseEvent.CLICK,clickhandler2);
button.addEventListener(MouseEvent.CLICK,checkFunction);
}
尝试更喜欢这样做
function StartFunct(e:Event)
{
gotoAndStop(2);
button.addEventListener(MouseEvent.CLICK,clickHandler);
}
function clickHandler(evnt:Event){
function1(); //generate the numbers
function2(); evaluate the numbers and adjust the score
function3(); //adjust score text box
}
` 请注意,执行此操作将要求您删除操作功能的参数。您也可以尝试重新排序声明初始onClick eventListeners
的方式