我在ActionScript 3上还很陌生,并且试图创建一个简化分数的程序。我相当确定,在'gcd'函数中执行循环方面存在错误,但是没有弹出错误(对于语法或其他方式),并且逻辑似乎很有意义。但是,当我输入分子和分母时,似乎什么也没发生。请指教。谢谢!
这是到目前为止我要做的事情:
//add the click listener to a new function
btnDetermine.addEventListener(MouseEvent.CLICK, clickHandler);
var no1:Number = Number(txtinno1.text);
var no2:Number = Number(txtinno2.text);
var i:Number;
var trueFalse:Boolean;
function clickHandler(e:MouseEvent):void {
//call the gcd function
gcd(no1, no2);
}
function gcd(no1:Number, no2:Number):void {
for (i = 2; (i < no1) && (i < no2) && (trueFalse == false); i++) {
if (no1 % i == 0 && no2 % i == 0) {
trueFalse = true;
no1 = no1/i;
no2 = no2/i;
lblGCD.text = no1 + "/" + no2;
}
else if (no1 == i || no2 == i) {
lblGCD.text = no1 + "/" + no2;
}
else {
lblGCD.text = "Invalid!";
}
}
}
答案 0 :(得分:0)
btnDetermine.addEventListener(MouseEvent.CLICK, clickHandler);
var no1:Number;
var no2:Number;
function clickHandler(e:MouseEvent):void {
//this way it updates everytime you click
no1 = Number(txtinno1.text);
no2 = Number(txtinno2.text);
//call the gcd function
gcd(no1, no2);
}
定义变量时,只要文本字段更新,它就不会自动更新。您将需要自己更新变量。在您的情况下,您将它们设置为在初始化时单击功能之外,此时文本字段为空,因此您的电话号码为 null 。因为当用户单击 btnDetermine 时,您的gcd函数将需要它,因此单击后可以读取文本字段值,并在同一函数中对其进行定义。因此,在需要时更新变量。