1

引数が 1 つしか渡されない理由がわかりません。私には2を渡しているように見えますが、フラッシュはそのようには見えません。なんで?最初の数値 (num1) をテキスト フィールドに入力し、2 番目の数値 (num2) を別のテキスト フィールドに入力し、加算/減算/乗算/除算ボタンをクリックして、答えを3 番目のテキスト フィールド。ここで私は得ています

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


    }

}
4

1 に答える 1

1

イベント リスナーには、イベント オブジェクト (この場合は MouseEvent) である 1 つの引数が渡されます。

したがって、コードは少し異なるように見えるはずです

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 はどこでも使用されていないため、コンストラクター コードから削除することもできます。

于 2013-07-12T20:24:10.297 に答える