I got around it by using the data property of itemrenderer, instead of
getCurrentItem()...


--- In flexcoders@yahoogroups.com, "gwangdesign" <gwangdes...@...> wrote:
>
> Hi,
> 
> Basically I am feeding dataProvider for 2 set of controls: one is on
> my main app and one is the item renderers of a TileList, both of which
> are Buttons. I am assigning the same function at main app to handle
> their click event. The event handler assigned to the controls in the
> main app works fine but not for those in the item renderers. I get
> null object at runtime on
> Button(event.currentTarget).getRepeaterItem(). Below is the code:
> 
> <!--code in main Script tag-->
> public function button_ClickHandler(event:MouseEvent):void
>                       {
>                               //get the current item. This works for controls 
> that are directly
> instantiated in main application. But not for nested itemRenderers.
> See mxml below.
>                               var item:Object = 
> Button(event.currentTarget).getRepeaterItem();
>                               var index:int = taskList.getItemIndex(item);
>                               if(index != -1)
>                               {
>                                       taskList.removeItemAt(index);
>                                       taskList.addItemAt(item, 0);
>                               }
>                       }
> 
> <mx:ArrayCollection id="taskList">
>               <mx:Object label="Word"/>
>               <mx:Object label="Media Player"/>
>               <mx:Object label="Contacts"/>
>               <mx:Object label="Apache Server"/>
>               <mx:Object label="Dictionary"/>
>               <mx:Object label="iTunes"/>
>               <mx:Object label="Solitaire"/>
>               <mx:Object label="Minesweeper"/>
>               <mx:Object label="Safari"/>
>               <mx:Object label="RSS Reader"/>
>       </mx:ArrayCollection>
> 
> <!--code for item renderers-->
> <mx:TileList dataProvider="{taskList}">
> <mx:itemRenderer>
>                       <mx:Component>
>                               <mx:Button styleName="myButtonStyle"
> click="parentDocument.button_ClickHandler(event);"/>
>                       </mx:Component>
>                </mx:itemRenderer>
>       </mx:TileList>
> 
> I tried to trace and it seems the Buttons inside itemRenderer can
> access the dataProvider in the outer document. But getCurrentItem()
> breaks. So how do I get the "current item" from the currentTarget?
>


Reply via email to