我不明白为什么只有一个参数被传递过来。它看起来对我的方式我正在通过2,但闪光灯并没有这样看。为什么?我正在尝试构建一个简单的计算器,您将第一个数字(num1)放在文本字段中,第二个数字(num2)放在另一个文本字段中,单击加/减/乘/除按钮并将答案显示在第三个文本字段。我来这里
ArgumentError:错误#1063:CalculatorLab / addme()上的参数计数不匹配。预计2,得到1。
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class CalculatorLab extends MovieClip {
public function CalculatorLab() {
// constructor code
var num1:Number = 0;
var num2:Number = 0;
addbtn.addEventListener(MouseEvent.CLICK, addme);
subtractbtn.addEventListener(MouseEvent.CLICK, subtractme);
multiplybtn.addEventListener(MouseEvent.CLICK, multiplyme);
dividebtn.addEventListener(MouseEvent.CLICK, divideme);
}
function addme(num1, num2):void {
num1txt.text = String(num1);
num2txt.text = String(num2);
var answer:Number = num1 + num2;
trace(answer);
answertxt.text = String(answer);
}
function subtractme(num1, num2):void {
num1txt.text = String(num1);
num2txt.text = String(num2);
var answer:Number = num1 - num2;
trace(answer);
answertxt.text = String(answer);
}
function multiplyme(num1, num2):void {
num1txt.text = String(num1);
num2txt.text = String(num2);
var answer:Number = num1 * num2;
trace(answer);
answertxt.text = String(answer);
}
function divideme(num1, num2):void {
num1txt.text = String(num1);
num2txt.text = String(num2);
var answer:Number = num1 / num2;
trace(answer);
answertxt.text = String(answer);
}
}
}
答案 0 :(得分:1)
事件侦听器传递一个参数,即事件对象(在您的情况下为MouseEvent)。
所以你的代码应该看起来有点不同
function addme(event:MouseEvent):void {
var num1:Number = Number(num1txt.text);
var num2:Number = Number(num2txt.text);
var answer:Number = num1 + num2;
trace(answer);
answertxt.text = String(answer);
}
您需要做的就是以相同的方式更改其他3个事件处理程序。您还可以从构造函数代码中删除局部变量num1和num2,因为它们不会在任何地方使用。