`

Flex List 按Shift键多选并显示在TextArea中

    博客分类:
  • flex
 
阅读更多

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
 <s:layout>
  <s:BasicLayout/>
 </s:layout>
 <fx:Declarations>
  <!-- 将非可视元素(例如服务、值对象)放在此处 -->
  
 </fx:Declarations> 
 
  
 <fx:Script>
  <![CDATA[
   import mx.collections.ArrayCollection;
   import mx.controls.Alert;
   var listDatas:ArrayCollection =  new ArrayCollection(
    [
     {id:"1",desc:"发生地方都是"},
     {id:"2",desc:"回复回复到过"},
     {id:"3",desc:"人物热舞"},
     {id:"4",desc:"好大方好梵蒂冈"},
     {id:"5",desc:"从这些从这些"},
     {id:"6",desc:"热舞股市下跌"},
     {id:"7",desc:"身体是大方说的"},
     {id:"8",desc:"反弹个好地方化工"},
    ]
   );
   var shiftKeyPressed:Boolean = false;
   private function addSelectedItem(event:Event)
   {
    var alist:Object = ((List)(event.currentTarget)).selectedItem;
    
    if(!isExist(alist.desc))
    {
     itemDescs.text += alist.desc+"\n";
    }
   }
   
   private function checkShiftKeyPressed(event:KeyboardEvent):void
   {
    if(event.shiftKey)
    {
     shiftKeyPressed = true;
    }
   }
   
   private function addSelectedItems(event:KeyboardEvent)
   {    
    if(shiftKeyPressed)
    {
     var alist:Vector.<Object> = dataList.selectedItems;
     //对集合翻转
     alist.reverse();
     for each(var item:Object in alist)
     {
      if(!isExist(item.desc))
      {
       itemDescs.text += item.desc+"\n";
      }
     }
     shiftKeyPressed = false;
    }  
    
   }
   
   private function isExist(itemDesc:String):Boolean
   {
    var text:String = itemDescs.text;
    
    if(text!=null && text.length>0)
    {
     var descs:Array = text.split("\n");
     for each(var msg:String in descs)
     {
      if(itemDesc == msg)
      {
       return true;
      }
     }
    }
    
    return false;
   }
   
  ]]>
 </fx:Script>
 
 <mx:HDividedBox width="100%" height="50%">
  <s:List id="dataList" x="25" y="21" width="50%" height="100%" dataProvider="{listDatas}" labelField="desc"
    allowMultipleSelection="true"
    change="addSelectedItem(event);" keyDown="checkShiftKeyPressed(event)" keyUp="addSelectedItems(event)"> 
  </s:List>
  <s:TextArea id="itemDescs" width="50%" height="100%">
   
  </s:TextArea>
 </mx:HDividedBox>
 
 
 
 
 
</s:Application>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics