【发布时间】:2017-01-28 12:01:40
【问题描述】:
我有一个问题,无论我放什么文本甚至空白,我仍然在第 170 帧中,如您所见,我在那里放了 171 帧,如果我输入“因此”它会在 171 中,看起来它工作正常只是即使我输入了错误的文本,它也会转到第 170 帧,但我找不到问题,我也不知道我是否应该做一个 else 语句,所以如果这个词不在列表中,它将转到其他帧,谢谢队友
var i:int = 0;
var names:Array = new Array("therefore","disciples","nations","baptizing","father","son","holy spirit");
var frames:Array = new Array("171","170","170","170","170","170","170","170");
button_140.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_4);
function fl_MouseClickHandler_4(event:MouseEvent):void
{
var searchtext:String = searchtext.text.toLowerCase();
findInArray(searchtext);
gotoAndStop(frames[i]);
}
function findInArray(str:String):int
{
for(i=0; i < names.length; i++)
{
if(names[i] == str)
{
return i;
}
}
return 0;
}
【问题讨论】:
-
for 循环增加“i”的值,不管它是否能找到值,并且你在这一行使用 i 在 gotoAndStop(frames[i]);,你应该像这样使用它 gotoAndStop (frames[findInArray(searchtext)]);
-
嘿,非常感谢,它工作得很好,但是现在如果在数组列表中没有找到单词,它就会出错,有没有办法让 else 语句来确保他输入错误的词我会去不同的框架,告诉词没有找到?谢谢你的朋友
-
如果找不到,只需在 findInArray 函数中返回 -1 并检查结果,如果函数返回 -1 警报给用户作为未找到单词
-
if(findInArray(searchtext) == -1) { /* alert code */ } else{ gotoandstop } ,这里的语法你也可以google一下。
-
@VC.One 答案太基础了,我只是想帮助 jarvis,我确信社区不会从中受益。所以不需要信用感谢您的关注
标签: arrays actionscript-3 flash searchbar search-box