Actionscript 3 Actionscript 3数组未按字母顺序显示列表,总数未正确显示

Actionscript 3 Actionscript 3数组未按字母顺序显示列表,总数未正确显示,actionscript-3,flash,Actionscript 3,Flash,我有一个购物清单项目,它将使用值初始化一个数组,然后允许用户添加和删除元素。每次数组更改时,它都会对值进行排序并将其显示在动态文本框中 我在动态文本框中已经有一个文本列表: 面包 狗粮 鸡蛋 汉堡包 牛奶 我的第一个问题是,当我在输入文本框中键入一个新项目并单击添加项目按钮时,该文本会位于列表中最后一个单词的下方,并且不会按字母顺序排列。例如,如果我输入Apple,单词应该放在面包上面,而不是放在牛奶下面 我的第二个问题是列表中项目的运行总数。当我创建一个新列表,并且每次添加一个新项目时,我的总

我有一个购物清单项目,它将使用值初始化一个数组,然后允许用户添加和删除元素。每次数组更改时,它都会对值进行排序并将其显示在动态文本框中

我在动态文本框中已经有一个文本列表:

面包 狗粮 鸡蛋 汉堡包 牛奶 我的第一个问题是,当我在输入文本框中键入一个新项目并单击添加项目按钮时,该文本会位于列表中最后一个单词的下方,并且不会按字母顺序排列。例如,如果我输入Apple,单词应该放在面包上面,而不是放在牛奶下面

我的第二个问题是列表中项目的运行总数。当我创建一个新列表,并且每次添加一个新项目时,我的总数应该显示我应用于列表的项目数,但是当我测试时,它每次只显示数字1

我怎样才能修好这些

另外,如何从阵列/列表中删除项目? 我希望能够从列表中选择一个项目,将其复制并粘贴到输入框中,当我单击删除btn时,该项目将从列表中删除

这是我的密码:

addItem_btn.addEventListener(MouseEvent.CLICK, AddItem);
function AddItem(e:MouseEvent):void {
    var totalItems:int;
    totalItems = int(input_txt.text);
    totalItems += 1;
    totalItems_txt.text = totalItems.toString();

    var newItem:Array = new Array();
    newItem[0] = input_txt.text;
    newItem.sort(Array.CASEINSENSITIVE);
    input_txt.text = "";
    for (var i:int = 0; i<1; i++) {
        output_txt.appendText(newItem[i] + "\n");
    }
}

您的代码不起作用,因为您有一些小问题

用于存储项目的数组应该是一个全局变量,每次只需将新项目添加到该数组中时,对其进行排序并在控件中显示其内容,例如,对于项目编号,您当然可以使用其长度属性,因此您的代码可以如下所示:

var items:Array = [];

addItem_btn.addEventListener(MouseEvent.CLICK, AddItem);
function AddItem(e:MouseEvent): void 
{
    if(input_txt.text != ''){
        items.push({label: input_txt.text, data: items.length});
        items.sortOn('label', Array.CASEINSENSITIVE);
        list.removeAll();
        list.dataProvider = new DataProvider(items);
    }
    totalItems_txt.text = items.length.toString();
}
此处的列表可以是手动插入到后台的列表控件,也可以是在导入fl.controls.list类后通过如下代码创建的列表控件:

有关如何使用阵列的详细信息,请查看:

. . . 希望这能有所帮助

var list:List = new List();
addChild(list);