djyamato
28.03.2012, 20:00
Здравствуйте
я хочу "поднимать" itemRenderer в группе надо всеми при нажатии на него
Вот код
<fx:Script>
<![CDATA[
import itemRenderers.DataGroupColorItemRenderer;
import spark.events.RendererExistenceEvent;
protected function datagroup1_rendererAddHandler(event:RendererExistenceEvent):void
{
var renderer:DataGroupColorItemRenderer = event.renderer as DataGroupColorItemRenderer;
renderer.addEventListener("rendererSelect", rendererSelectHandler);
}
protected function rendererSelectHandler(event:Event):void
{
var clone:Object=Object(event.target.data);
var index:int=ac.getItemIndex(event.target.data);
ac.removeItemAt(index);
ac.refresh();
ac.addItem(clone);
ac.refresh();
event.target.data=null;
}
]]>
</fx:Script>
<fx:Declarations>
<s:ArrayCollection id="ac">
<s:source>
<fx:Object x="20" y="20" color="{Math.random()*0xffffff}"/>
<fx:Object x="30" y="30" color="{Math.random()*0xffffff}"/>
<fx:Object x="40" y="40" color="{Math.random()*0xffffff}"/>
<fx:Object x="50" y="50" color="{Math.random()*0xffffff}"/>
<fx:Object x="60" y="60" color="{Math.random()*0xffffff}"/>
<fx:Object x="70" y="70" color="{Math.random()*0xffffff}"/>
<fx:Object x="80" y="80" color="{Math.random()*0xffffff}"/>
</s:source>
</s:ArrayCollection>
</fx:Declarations>
<s:DataGroup width="100%" height="100%"
dataProvider="{ac}"
itemRenderer="itemRenderers.DataGroupColorItemRenderer"
rendererAdd="datagroup1_rendererAddHandler(event)"/>
Рендерер диспатчит "rendererSelect" при нажятии мышкой на него
В хэндлере rendererSelectHandler создается каждый раз + 1 item (я в профайлере вижу)
Отчего так ? Я же обнуляю event.target.data
я хочу "поднимать" itemRenderer в группе надо всеми при нажатии на него
Вот код
<fx:Script>
<![CDATA[
import itemRenderers.DataGroupColorItemRenderer;
import spark.events.RendererExistenceEvent;
protected function datagroup1_rendererAddHandler(event:RendererExistenceEvent):void
{
var renderer:DataGroupColorItemRenderer = event.renderer as DataGroupColorItemRenderer;
renderer.addEventListener("rendererSelect", rendererSelectHandler);
}
protected function rendererSelectHandler(event:Event):void
{
var clone:Object=Object(event.target.data);
var index:int=ac.getItemIndex(event.target.data);
ac.removeItemAt(index);
ac.refresh();
ac.addItem(clone);
ac.refresh();
event.target.data=null;
}
]]>
</fx:Script>
<fx:Declarations>
<s:ArrayCollection id="ac">
<s:source>
<fx:Object x="20" y="20" color="{Math.random()*0xffffff}"/>
<fx:Object x="30" y="30" color="{Math.random()*0xffffff}"/>
<fx:Object x="40" y="40" color="{Math.random()*0xffffff}"/>
<fx:Object x="50" y="50" color="{Math.random()*0xffffff}"/>
<fx:Object x="60" y="60" color="{Math.random()*0xffffff}"/>
<fx:Object x="70" y="70" color="{Math.random()*0xffffff}"/>
<fx:Object x="80" y="80" color="{Math.random()*0xffffff}"/>
</s:source>
</s:ArrayCollection>
</fx:Declarations>
<s:DataGroup width="100%" height="100%"
dataProvider="{ac}"
itemRenderer="itemRenderers.DataGroupColorItemRenderer"
rendererAdd="datagroup1_rendererAddHandler(event)"/>
Рендерер диспатчит "rendererSelect" при нажятии мышкой на него
В хэндлере rendererSelectHandler создается каждый раз + 1 item (я в профайлере вижу)
Отчего так ? Я же обнуляю event.target.data