我正在努力学习阵列是如何工作的,而且我遇到了一个问题,我正在解决问题。任何帮助将不胜感激。
我一直收到以下三个错误:
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+".";
}
答案 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
}