2012-01-31 6 views
0

私はカスタムitemrendererでmx:listを持っています。mx:itemrendererに値のリストを表示

<?xml version="1.0" encoding="utf-8"?> 
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" 
     horizontalScrollPolicy="off" verticalScrollPolicy="off" 
     > 
    <fx:Declarations> 
     <!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). --> 


    </fx:Declarations> 
    <fx:Script> 
     <![CDATA[ 


/* part with no warning 
[Bindable] var tName:String; 
override public function set data(value:Object):void 
{ 
    acID.text = value.id; 
    acGlob.text = value.glob; 
    acVisiO.text = value.visibO; 
    acVisiV.text = value.visibV; 
    acRoot.text = value.root; 
    //acPhoto.source = value.photo; 
    //acName.text = value.name; 
    tName = value.name 
} 
override public function get data():Object 
{ 
return super.data; 
} */ 
]]> 
</fx:Script> 
    <mx:states> 
     <mx:State name="normal"/> 
     <mx:State name="hovered"/> 
     <mx:State name="selected"/> 

    </mx:states> 

    <mx:Image source="{data.photo}" width="20" height="20" alpha.hovered=".5"/> 
    <mx:Label text="{data.name}" 
       color.hovered="0x1313cd" color.selected="0x000000" color.normal="#000000" 
       toolTip="{data.name}" 
       /> 
    <mx:Label visible="false" width="0" height="0" id="acID" /> 
    <mx:Label visible="false" width="0" height="0" id="acGlob"/> 
    <mx:Label visible="false" width="0" height="0" id="acVisiO"/> 
    <mx:Label visible="false" width="0" height="0" id="acVisiV"/> 
    <mx:Label visible="false" width="0" height="0" id="acRoot" /> 


</mx:HBox> 

データ設定機能を使用すると、警告は表示されません。しかし、この場合、私はdoublickclikでitemrendererデータにアクセスする方法を知らない。

arrList = new ArrayList(list); 
listAcc = new List(); 
listAcc.percentHeight = 100; 
listAcc.percentWidth =100; 
listAcc.itemRenderer = new ClassFactory(irMxList); 
listAcc.doubleClickEnabled = true; 
listAcc.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, onItemDoubleClick); 
listAcc.dataProvider = arrList; 

私の問題は、私は解決策

の下に検索

答えて

1
private function onItemDoubleClick(event:ListEvent):void { 
     var data:Object = arrList.getItemAt(event.rowIndex); 

     var label:String = data.name; 
     var index:String = data.id; 
     var glob:String = data.glob; 
     var visuO:String = data.visibO; 
     var visuV:String = data.visibV; 
     var rootFile:String = data.root; 
} 
+0

です:エラー#1069:不動産2はmx.collections.ArrayListに見つからないと、デフォルト値はありません。 – Flex60460

+0

ちょうど編集された答えは、うまくいくはずです – Antonos

0

を助けるためitemrenderer.data

private function onItemDoubleClick(event:ListEvent):void { 

      var label:String = event.itemRenderer.data.name; 
      var index:String = event.itemRenderer.data.id; 
      var glob:String = event.itemRenderer.data.glob; 
      var visuO:String = event.itemRenderer.data.visibO; 
      var visuV:String = event.itemRenderer.data.visibV; 
      var rootFile:String = event.itemRenderer.data.root; 

}

おかげでアクセスしようとすると、エラーが表示されていることです

private function onItemDoubleClick(event:ListEvent):void { 

       var label:String = event.itemRenderer.data.name; 
       var index:String = event.itemRenderer.data.id; 
       var glob:String = event.itemRenderer.data.glob; 
       var visuO:String = event.itemRenderer.data.visibO; 
       var visuV:String = event.itemRenderer.data.visibV; 
       var rootFile:String = event.itemRenderer.data.root; } 

たItemRendererコードは、私はこの答えと、このエラーがにReferenceErrorが表示されてみてください

<?xml version="1.0" encoding="utf-8"?> 
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" 
     horizontalScrollPolicy="off" verticalScrollPolicy="off" 
     > 
    <fx:Declarations> 
     <!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). --> 


    </fx:Declarations> 
    <fx:Script> 
     <![CDATA[ 

      private var _data:Object; 

      override public function set data(value:Object):void { 
       acID.text = value.id; 
       acGlob.text = value.glob; 
       acVisiO.text = value.visibO; 
       acVisiV.text = value.visibV; 
       acRoot.text = value.root; 
       acPhoto.source = value.photo; 
       acName.text = value.name; 
       _data = value; 

      } 

      override public function get data():Object { 
       return _data; 
      } 

     ]]> 
    </fx:Script> 
    <mx:states> 
     <mx:State name="normal"/> 
     <mx:State name="hovered"/> 
     <mx:State name="selected"/> 

    </mx:states> 

    <!--<mx:Image source="{data.photo}" width="20" height="20" alpha.hovered=".5"/> 
    <mx:Label text="{data.name}" 
       color.hovered="0x1313cd" color.selected="0x000000" color.normal="#000000" 
       toolTip="{data.name}" 
       />--> 

    <mx:Image id="acPhoto" width="20" height="20" alpha.hovered=".5"/> 
    <mx:Label id="acName" 
       color.hovered="0x1313cd" color.selected="0x000000" color.normal="#000000" 
       toolTip="{acName.text}" 
       /> 
    <mx:Label visible="false" width="0" height="0" id="acID" /> 
    <mx:Label visible="false" width="0" height="0" id="acGlob"/> 
    <mx:Label visible="false" width="0" height="0" id="acVisiO"/> 
    <mx:Label visible="false" width="0" height="0" id="acVisiV"/> 
    <mx:Label visible="false" width="0" height="0" id="acRoot" /> 


</mx:HBox> 

おかげでみんな

関連する問題