2014-01-21 2 views
0

Я хочу разделить arraycollection на основе строки в flex. У меня есть элементы arraycollection, похожие на {[(name:aa),(name:bb),(name:ae),(name:cc),(name:bd)}], Теперь я хочу отделить это arraycollection на основе 'a' и всех 'a' предметов, которые нужно добавить в отдельном arraycollection.Как разделять arraycollection на основе строки в Flex, используя actionript

ArrayCollection декларация как

[Bindable] 
public var arr:ArrayCollection=new ArrayCollection([{name:"cards/a.png"},{name:"cards/b.png"},{name:"cards/ac.png"},{name:"af.png"},{name:"ad.png"},{name:"cards/bb.png"}]); 

ответ

0

Ваше строительство ArrayCollection должно быть new ArrayCollection([{name:"aa"},{name:"bb"}]); "(" должно быть "{".

<fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 
    <fx:Script> 
     <![CDATA[ 
     import mx.collections.ArrayCollection; 
     import mx.controls.Alert; 
     import mx.utils.ObjectUtil; 

     public var wordCollection:ArrayCollection = new ArrayCollection([{name:"aa"}, {name:"bb"}, 
     {name:"ae"}, {name:"cc"}, {name:"bd"}]); 

     public var charACollection:ArrayCollection = new ArrayCollection(); 
     public var charBCollection:ArrayCollection = new ArrayCollection(); 
     public var charCCollection:ArrayCollection = new ArrayCollection(); 

     private function createCompleteHandler():void 
     { 
      wordCollection.filterFunction = splitByChars; 
      wordCollection.refresh(); 

      trace(ObjectUtil.toString(charACollection)); 
      trace(ObjectUtil.toString(charBCollection)); 
      trace(ObjectUtil.toString(charCCollection)); 
     } 

     private function splitByChars(item:Object):Boolean 
     { 
      var char:String = item.name.toString().charAt(0); 

      if (char.toLowerCase() == "a") 
      { 
       charACollection.addItem(item); 
      } 
      else if (char.toLowerCase() == "b") 
      { 
       charBCollection.addItem(item); 
      } 
      else if (char.toLowerCase() == "c") 
      { 
       charCCollection.addItem(item); 
      } 

      return true; 
     } 


     ]]> 
    </fx:Script> 
</s:Application>