Spark DataGroup items management
If you want to listen for events from events created by a DataGroup, you can use the group's events renderAdd and renderRemove to be notified when items are being created or recycled.
From those event handlers you can setup your items or store them somewhere, like a Dictionary, to be easily accessed later.
From those event handlers you can setup your items or store them somewhere, like a Dictionary, to be easily accessed later.
<fx:Script>
<![CDATA[
import mx.core.IVisualElement;
import spark.events.RendererExistenceEvent;
private var map:Dictionary = new Dictionary(true);
private function onRendererAdd(event:RendererExistenceEvent):void {
var index:int = event.index;
var renderer:IVisualElement = event.renderer;
if (!renderer) return;
map[index] = renderer;
MyRenderer(renderer).addEventListener(MyCustomEvent.ACTION, onItemRendererAction);
}
private function onRendererRemove(event:RendererExistenceEvent):void {
var index:int = event.index;
var renderer:IVisualElement = event.renderer;
if (!renderer) return;
delete map[index];
MyRenderer(renderer).removeEventListener(MyCustomEvent.ACTION, onItemRendererAction);
}
]]>
</fx:Script>
<s:DataGroup id="buttons" top="300" height="100%"
rendererAdd="onRendererAdd(event)"
rendererRemove="onRendererRemove(event)"
itemRenderer="MyRenderer">
<s:layout>
<s:VerticalLayout gap="12" horizontalAlign="left" paddingLeft="20"/>
</s:layout>
</s:DataGroup>




