Сортируйте затем Splice XMLList или XMLList Collection в AS3

Ничего, что я пробую, не работает. Я пытаюсь отсортировать, а затем соединить XMLList или XMLListCollection с некоторым количеством результатов.

Вот мой код:

public function chopData(){

//pData = pDataCollection.source;
pData = sortXMLListByAttribute(filteredData, sortField);
var thisLength = pData.length();
trace("thisLength: " + thisLength);
var maxAmountToShow = 30;


if(thisLength == null){
    thisLength = maxAmountToShow;
}

if( thisLength < maxAmountToShow){
    pData = SliceXMLList(pData, 0, thisLength - 1);
    //pDataCollection = SpliceXMLListCollection(pDataCollection, 0, thisLength - 1);
}else{
    pData = SliceXMLList(pData, 0, maxAmountToShow - 1);
    //pDataCollection = SpliceXMLListCollection(pDataCollection, 0, maxAmountToShow - 1);
}


pDataCollection = new XMLListCollection(pData);

}


 public static function sortXMLListByAttribute
 (
    $xmlList        :   XMLList,
    $attribute  :   String,
    $options    :   Object  =   null
) :XMLList
 {
//store in array to sort on
var xmlArray:Array= new Array();
var item:XML;
for each(item in $xmlList)
{
    var object:Object = {
        data    : item, 
        order   : item.attribute($attribute)
    };
    xmlArray.push(object);
}

////sort using the power of Array.sortOn()
xmlArray.sortOn('order',$options);

////create a new XMLList with sorted XML
var sortedXmlList:XMLList = new XMLList();
var xmlObject:Object;
for each(xmlObject in xmlArray )
{
    sortedXmlList += xmlObject.data;
}
return sortedXmlList;   
}

1 ответ

Решение

Я нашел этот класс com.maximporges.MaskedCollection, и он отлично работает.

http://dreamingwell.com/examples/flex/scrollableGraph/srcview/

Другие вопросы по тегам