问题描述
我的应用程序中有一个建议字段。到目前为止,该代码是有效的(或者我认为是可行的)。 它链接到txt文件。文本文件中的每个句子都用#分隔; @H_502_1@
示例:@H_502_1@
嗨,你好吗?#干得好#@H_502_1@
奇怪的是,如果我为“ Non”输入“ N”,则该代码有效,并建议我每个字母为N的句子@H_502_1@
Every sentences with "N" is suggested @H_502_1@
但是,如果我输入“否”,则不再建议使用“无”!@H_502_1@
"Non" is not here @H_502_1@
它用很多句子来做到这一点。...@H_502_1@
function checkKeypress(event: KeyboardEvent): void {
if (event.keyCode == Keyboard.BACK) {
trace("back pushed");
for (var l:int = 0; l < textfields.length; L++)
{
removeChild(textfields[l]);
}
suggested = [];
textfields = [];
currentSelection = 0;
}
}
function loadComplete(e:Event):void
{
if(drehuLang ==true){
suggestions = e.target.data.split("#");
}else{
suggestions = e.target.data.split(",");
}
}
function suggest(e:KeyboardEvent):void
{
suggested = [];
for (var i:int = 0; i < textfields.length; i++)
{
removeChild(textfields[i]);
}
textfields = [];
for (var j:int = 0; j < suggestions.length; j++)
{
if (suggestions[j].indexOf(inputField.text.toLowerCase()) != -1)
{
var term:TextField = new TextField();
term.width = 360;
term.height = 24;
term.x = 18;
term.y = (24 * suggested.length) + 83;
term.border = true;
term.borderColor = 0x353535;
term.background = true;
term.backgroundColor = 0xFF9900;
term.textColor = 0x4C311D;
term.defaulttextformat = format;
term.addEventListener(MouseEvent.MOUSE_UP,useWord);
term.addEventListener(MouseEvent.MOUSE_OVER,hover);
term.addEventListener(MouseEvent.MOUSE_OUT,out);
term.addEventListener(MouseEvent.CLICK,tellMe);
addChild(term);
textfields.push(term);
suggested.push(suggestions[j]);
term.text = suggestions[j];
}
}
if (inputField.length == 0)
{
suggested = [];
for (var k:int = 0; k < textfields.length; k++)
{
removeChild(textfields[k]);
}
textfields = [];
}
if(e.keyCode == Keyboard.DOWN && currentSelection < textfields.length-1)
{
currentSelection++;
textfields[currentSelection].textColor = 0x4C311D;
}
if(e.keyCode == Keyboard.UP && currentSelection > 0)
{
currentSelection--;
textfields[currentSelection].textColor = 0x4C311D;
}
if(e.keyCode == Keyboard.ENTER)
{
inputField.text = textfields[currentSelection].text;
suggested = [];
for (var l:int = 0; l < textfields.length; L++)
{
removeChild(textfields[l]);
}
textfields = [];
currentSelection = 0;
}
}
任何想法可能是什么问题吗?@H_502_1@
解决方法
在检查每个建议中是否存在小写输入时,您没有将suggestions
标准化为小写。因此,第一次选择时,“ Non”对结尾的“ n”有反应,但是“ Non”不包含“ no”,因此在第二种情况下不会显示。因此,创建suggestions_lower
数组,用小写的建议填充它,然后在用原始建议填充文本字段时进行检查。