Compiler errors 在Flash CS4中使用阵列时出现的问题

Compiler errors 在Flash CS4中使用阵列时出现的问题,compiler-errors,flash-cs4,Compiler Errors,Flash Cs4,我正在努力学习数组是如何工作的,我遇到了一个我正在解决的问题。任何帮助都将不胜感激 我一直收到以下三个错误: 1176:具有静态类型flash的值之间的比较。事件:MouseEvent和可能不相关的类型int var P1Numbers:Array = new Array(); var e:int=0; function P1LowestScore(e:MouseEvent){ var P1Lowest:Number=P1Numbers[0]; for(e==1; e<P1Number

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

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

1176:具有静态类型flash的值之间的比较。事件: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+".";
1067:使用静态类型flash隐式强制值。事件:MouseEvent到不相关的类型号

1176:具有静态类型flash的值之间的比较。事件: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+".";
var P1Numbers:Array=newarray();
变量e:int=0;
功能p1最低分数(e:MouseEvent){
变量p1最低:编号=p1编号[0];
对于(e==1;eP1Lowest){
p1最低=p1数字[e];
}否则{
lblplayer1.text=“错误!”;
}
}
lblPlayer1Lowest.text=“您的最低分数为“+P1Lowest+”;

}

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

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

我不确定如果在代码中调用P1LowestScore,它是如何实现的,但我猜它是通过鼠标侦听器实现的

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

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