0

配列がどのように機能するかを学ぼうとしていますが、問題を解決している問題に遭遇しました。どんな助けでも大歓迎です。

次の 3 つのエラーが表示され続けます。

1176:静的なタイプの値 flash.events:MouseEvent とおそらく無関係なタイプの int の比較。

1067:静的型 flash.events:MouseEvent の値を関連のない型 Number に暗黙的に強制します。

1176:静的なタイプの値 flash.events:MouseEvent とおそらく無関係なタイプの int の比較。

var P1Numbers:Array = new Array();
var e:int=0;

function P1LowestScore(e:MouseEvent){
var P1Lowest:Number=P1Numbers[0];

for(e==1; e<P1Numbers.length; e++){
    if(P1Numbers[e]>P1Lowest){
        P1Lowest=P1Numbers[e];
    }else{
        lblPlayer1Lowest.text="ERROR!";
    }
}
lblPlayer1Lowest.text="Your lowest score is "+P1Lowest+".";

}

4

1 に答える 1

0

さて、あなたの問題は、最初に変数eを int として定義することですが、関数 P1LowestScore にはMouseEvent 型のパラメーター変数eもあります。この変数は、関数内の int e インスタンス変数を隠します。したがって、MouseEvent を int である P1Numbers 配列の長さと比較しています。

私が目にするもう 1 つの問題は、for ループにあります。代入式 (e=1) の代わりにブール式 (e==1) を使用しています。

あなたのコードで P1LowestScore がどのように呼び出されるかはわかりませんが、マウス リスナー経由だと思いますか?

とにかく、 int e 変数を別の名前 (基本的には何でも) に変更するだけで、エラーは消えます。実際には、変数を for ループ宣言内で宣言した方が、ループの外では変数を使用しないからです。そのような:

for(i:int = 1; i<P1Numbers.length; i++){
    //your code
}
于 2012-11-19T17:19:43.727 に答える