2014年7月31日 星期四

Featers list 清單使用範例

/**
  * ...Featers list 清單使用範例
  * @author Ray Cheng
  */
 public class ListDemo extends Sprite 
 {
  [Embed(source="../../bin/UI/ok.png")]
  public var Listbag:Class;
  
  [Embed(source = "../../bin/UI/btnStyle0.png")]
  public var btnClass0:Class;
  
  private var _list:List;
  private var _theme:MetalWorksMobileTheme;
  private var _listChangeId:int = -1;
  
  public function ListDemo() 
  {
   super();
   //--UI主題 初始化
   _theme = new MetalWorksMobileTheme();
   
   _list = new List();
   _list.width = 250;
   _list.height = 100;
   
   //addChild(new Image(Texture.fromBitmap(new Listbag())))
   
   _list.dataProvider = new ListCollection(
   [
    {txt:"AA",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"BB",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
    {txt:"CC",thumbnail:Texture.fromBitmap(new Listbag())},
        
   ])
   
   //--顯示文字內容
   _list.itemRendererProperties.labelField = "txt";
   //--顯示icon
   _list.itemRendererProperties.iconSourceField = "thumbnail";
   //--偵聽list item選取事件
   _list.addEventListener( Event.CHANGE, listChangeHandler );
   
   
   //--註冊點擊事件
   _list.addEventListener( FeathersEventType.RENDERER_ADD, listRendererAddHandler );
   
   this.addChild( _list );
  }
    
  private function listChangeHandler(e:Event):void 
  {
   var $list:List = List( e.currentTarget );
   
   //--List Item ID
   trace( "selectedIndex:" + $list.selectedIndex );
   //--List Item 實體
   trace( "selectedItem:" + $list.selectedItem );   
  }
  
  private function listRendererAddHandler(e:Event,itemRenderer:IListItemRenderer ):void 
  {
   itemRenderer.addEventListener( Event.TRIGGERED, listTriggeredHandler );
  }
  
  private function listTriggeredHandler(e:Event):void 
  {
   var $renderer:IListItemRenderer = IListItemRenderer( e.currentTarget );
   
   //--點擊2次後,只定為CLICK事件
   if (_listChangeId == $renderer.index)
   {
    trace("CLICK")
   }
   
   //--取得值與List Item ID相同
   _listChangeId = $renderer.index;
   trace( "listTriggeredHandler//selectedIndex:" + $renderer.index );
  }
 }

沒有留言:

張貼留言

我的留言版