簡體   English   中英

建議字段無法正常工作 - AS3 AIR 代碼

[英]Suggestion field doesn't work properly - AS3 AIR code

我的應用中有一個建議字段。 到目前為止,代碼是有效的(或者我認為是)。 這是一個txt文件的鏈接。 文本文件中的每個句子都用# 分隔;

例子 :

嗨#你好嗎?#干得好#

我有 175 個句子。

奇怪的是,如果我為“非”輸入“N”,則代碼正在工作,並建議我使用字母 N 的每個句子

建議每個帶有“N”的句子

但是,如果我輸入“No”,則不再建議使用“Non”這個句子!

“非”不在這里

它用很多句子來做到這一點......

這是我的代碼:

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;
            }

        }

知道可能是什么問題嗎?

在檢查每個建議中是否存在小寫輸入時,您沒有將suggestions規范化為小寫。 因此,“Non”在第一次選擇時會對結尾的“n”做出反應,但“Non”不包含“no”,因此它不會出現在第二種情況下。 因此,創建suggestions_lower數組,用小寫的建議填充它,然后在用原始建議填充文本字段時檢查它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM