在Flash CS4中使用数组的问题

时间:2012-11-19 16:00:10

标签: compiler-errors flash-cs4

我正在努力学习阵列是如何工作的,而且我遇到了一个问题,我正在解决问题。任何帮助将不胜感激。

我一直收到以下三个错误:

1176:使用静态类型flash.events:MouseEvent和可能不相关的类型int进行比较。

1067:使用静态类型flash.events:MouseEvent将值隐式强制转换为不相关的类型数。

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+".";

}

1 个答案:

答案 0 :(得分:0)

好吧,您的问题是您首先将变量 e 定义为int,但您的函数P1LowestScore还具有MouseEvent类型的参数变量 e 。此变量会影响函数中的int e实例变量。因此,您将MouseEvent与P1Numbers数组的长度进行比较,该数组是一个int。

我看到的另一个问题是你的for循环。您正在使用布尔表达式(e == 1)而不是赋值表达式(e = 1)。

我不确定如何在您的代码中调用P1LowestScore,但我想这是通过鼠标侦听器进行的?

无论如何,只需将变量改为其他名称(基本上是任何东西),你的错误就会消失。实际上,您也可以在for循环声明中声明变量,因为您不在循环外使用它。就这样:

for(i:int = 1; i<P1Numbers.length; i++){
    //your code
}