2013-07-12 85 views
1

我不明白为什么只有一个参数正在通过。它看起来对我来说,我正在通过2,但闪光灯并没有看到这种方式。为什么?我正在尝试构建一个简单的计算器,在其中将第一个数字(num1)放入文本字​​段中,将第二个数字(num2)放入另一个文本字段中,单击加/减/乘/除按钮,然后让答案出现在第三个文本字段。这里我得到AS3参数不匹配

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


    } 

} 

回答

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,因为它们不在任何地方使用。

+0

这给了我4行语法错误,19,20,21和22行,其中说\t 1084:语法错误:期待在冒号之前,我没有给过任何语法错误,只有输出参数错误,说期待2个参数并得到1后,我把一个数字在第一个框中,在第二个框中的数字,并单击+按钮 –

+0

真棒,谢谢:) –

+0

@JoshuaW:你有没有设法修复语法错误? – Ma3x