在AS3中按DESCENDING顺序订购我的“产品”

时间:2016-06-06 02:05:36

标签: php actionscript-3 sorting flash

我的AS3代码正在搜索我的数据库并在列表(textfield)中显示所有“产品”。

function displayPage(pageIndex:int):void {
    list.removeChildren();
    currentPageIndex = pageIndex;
    var firstItemIndex:int = pageIndex * itemsPerPage;
    var j:int = 0;
    var lastItemIndex: int = firstItemIndex + 10; // as lastItemIndex should be 10 more
 if (lastItemIndex > products.length) // if lastindex is greater than products length
 lastItemIndex = products.length;
 for(var i:int = firstItemIndex; i< lastItemIndex; i++){
 createListItem( j, products[i]); // j control the position and i points to particular element of array..
 j++;
 }
}
function complete(e:Event):void {
        loading.visible=false;
    addChild(list);
    products = JSON.parse(loader5.data) as Array;
     products.reverse();
    for(var i:int = 0; i < products.length; i++){
        createListItem(i, products[i]);

}
displayPage(0);
showList();
}

function createListItem(index:int, item:Object):void {

    var listItem:TextField = new TextField();
listItem.text = item.title;

    list.addChild(listItem);
str = item.title;

}

在我的数据库中,我有一行“stampTime”。

enter image description here

如何以DESCENDING顺序显示列表中的产品(就stampTime而言,不是每个产品的第一个字母)?

我想它必须像

products.sort(Array.DESCENDING); 

但是如何告诉AS3每个产品的降价顺序是按照时间(item.stampTime)?

3 个答案:

答案 0 :(得分:1)

products.sortOn("stampTime", Array.DESCENDING)

您可以在this上学习。

答案 1 :(得分:0)

遍历数组并评估每个数组元素中的每个时间戳,如果它是最小的(或最大的),则将其推送到新数组。在该循环结束后,您的初始数组将为空,并且您的新临时数组将按升序(或降序)顺序填充。然后,遍历临时数组并将它们全部推回到第一个数组中。现在,您的数组基于时间戳排序。

答案 2 :(得分:0)

Array.sort方法适用于基本数组 在您的情况下,products看起来像一个对象数组 您可以使用Array.sortOn方法。

// sort the stampTime field numerically in descending order
products.sortOn( ["stampTime"], [Array.DESCENDING|Array.NUMERIC]);

也许您的complete方法如下所示。

function complete(e:Event):void {
    loading.visible=false;
    addChild(list);
    products = JSON.parse(loader5.data) as Array;

    //products.reverse();
    products.sortOn(["stampTime"], [Array.DESCENDING|Array.NUMERIC]);

    for(var i:int = 0; i < products.length; i++){
        createListItem(i, products[i]);

    }
    displayPage(0);
    showList();
}

阅读官方文件。 http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fa4.html