建议字段无法正常工作-AS3 AIR代码

问题描述

我的应用程序中有一个建议字段。到目前为止,该代码是有效的(或者我认为是可行的)。 它链接到txt文件。文本文件中的每个句子都用#分隔; @H_502_1@

示例:@H_502_1@

嗨,你好吗?#干得好#@H_502_1@

我有175个句子​​。@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@

这是我的代码:@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数组,用小写的建议填充它,然后在用原始建议填充文本字段时进行检查。