Actionscript 3报错1176:Function与int类型比较 分数显示代码修复求助
ActionScript 3 错误1176修复方案
错误原因
你遇到的1176错误由以下几个问题共同触发:
- 调用
toString时没有加括号,AS3会将toString识别为Function类型本身,而非执行后得到的字符串值,和int类型比较时就会报类型不匹配错误 - 局部变量名
finalscore和函数名finalscore重名,引发类型识别异常 - 语法错误:
multiplechoicefinalscore..text多写了一个英文句号
修复后完整代码
finalscorebutton.addEventListener(MouseEvent.CLICK, finalscore); function finalscore(event:MouseEvent):void { // 直接用已有的总分值赋值,同时转成字符串显示 multiplechoicefinalscore.text = sumofscores.toString(); // 转成数值类型用于区间比较,避免字符串比较的逻辑错误 var scoreNum:Number = Number(sumofscores); if(scoreNum < 60){ description.text = "UNDER AVERAGE."; } else if(scoreNum >= 60 && scoreNum <=79){ description.text = "AVERAGE."; } else{ description.text = "ABOVE AVERAGE."; } }
主要修改点说明
- 把局部变量名修改为
scoreNum,避免和函数名重名冲突 - 所有
toString调用都补充了括号,确保正常执行得到字符串结果 - 删掉了
multiplechoicefinalscore后面多余的句号 - 直接用已有的
sumofscores转成数值做比较,不需要重复从文本组件取值,逻辑更简洁也避免类型转换错误 - 统一用数值类型做区间比较,避免字符串比较时出现的逻辑异常(比如字符串"90"会小于"800"这类问题)
内容的提问来源于stack exchange,提问作者Sarah
相关产品推荐
相关产品推荐

