[英]Suggestion field doesn't work properly - AS3 AIR code
我的應用中有一個建議字段。 到目前為止,代碼是有效的(或者我認為是)。 這是一個txt文件的鏈接。 文本文件中的每個句子都用# 分隔;
例子 :
嗨#你好嗎?#干得好#
我有 175 個句子。
奇怪的是,如果我為“非”輸入“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.