ActionScript条件语句故障求助:输入正确答案仍触发Else逻辑
ActionScript 文本框输入判断逻辑故障排查方案
核对文本框实例名与取值
先确认输入文本框的实例名(比如你给文本框设的名字是answerTxt),取值时必须用实例名.text,写错名字会导致拿到空值,直接触发else逻辑。示例代码:var userInput:String = answerTxt.text.trim(); // 先去掉首尾空格,避免输入空格干扰判断 var rightAnswer:String = "你的正确答案";修正条件判断的语法错误
检查if语句里的比较符号,别把相等判断==写成赋值符号=,这是最常见的低级错误。示例:// 错误写法(会直接把正确答案赋值给userInput,逻辑完全混乱) // if (userInput = rightAnswer) { ... } // 正确写法: if (userInput == rightAnswer) { gotoAndStop("said"); } else { gotoAndStop("said"); }注:其实按你的需求,不管对错都跳同一帧,完全可以直接写
gotoAndStop("said");不用if-else,但既然要排查原逻辑失效问题,还是得把判断写对。统一输入与答案的格式
用户输入可能有大小写差异、多余空格,建议统一处理后再比较:userInput = userInput.toLowerCase().trim(); rightAnswer = rightAnswer.toLowerCase().trim(); if (userInput == rightAnswer) { gotoAndStop("said"); } else { gotoAndStop("said"); }确认脚本执行时机
别把判断代码直接放在帧脚本里——帧脚本会在进入该帧时立刻执行,这时用户还没输入内容,自然会触发else逻辑。应该把代码绑定在按钮点击事件上,等用户输入完点击按钮再判断:// 假设按钮实例名是checkBtn checkBtn.addEventListener(MouseEvent.CLICK, checkAnswer); function checkAnswer(e:MouseEvent):void { var userInput:String = answerTxt.text.trim().toLowerCase(); var rightAnswer:String = "你的正确答案".toLowerCase(); if (userInput == rightAnswer) { gotoAndStop("said"); } else { gotoAndStop("said"); } }
内容的提问来源于stack exchange,提问作者Daniel A
相关产品推荐
相关产品推荐

