У меня есть приложение MXML с DataGroup следующим образом:
<s:DataGroup id="productSelector"
dataProvider="{products}"
itemRenderer="renderers.ProductLineupRenderer"
>
<s:layout>
<s:HorizontalLayout/>
</s:layout>
</s:DataGroup>
Я хочу знать, когда объектами в моем itemRenderer управляют. У меня есть itemRenderer отправка класса пользовательские события.
То, что я раньше делал, использовать mx:repeater:
<mx:Repeater id="r" dataProvider="{configuration.products}">
<components:ProductEncapsulationView
product="{r.currentItem}"
highlightProduct="highlightProduct( event.selectedProduct )"
unhighlightProduct="clearHighlight()"
selectProduct="makeProductSelection( event.selectedProduct )"
</mx:Repeater>
где я могу легко присвоить события, прибывающие из itemRenderer класса в компонент агрегирования текущего представления. (highlightProduct, unhighlightProduct, selectProduct)
Я не уверен в том, как сделать это в DataGroup или даже компоненте Списка. Но я хотел бы использовать разметки DataGroups и другой большой материал, который Вы получаете с платформой искры.
Читая прошлые сообщения на форумах Adobe (http://forums. adobe.com/message/2902862):
Shongrunden показывает, как вызывать события itemRenderer из объекта DataGroup:
<s:ItemRenderer ... click="sendEvent()">
<fx:Script>
<![CDATA[
import spark.components.DataGroup;
private function sendEvent():void {
(owner as DataGroup).dispatchEvent(new MyCustomEvent());
}
]]>
</fx:Script>
...
</s:ItemRenderer>
Мне кажется, что я могу заставить это работать, добавив пользовательские обработчики событий во время DataGroup.creationComplete и вызывая их из itemRenderer, как указано выше. Поскольку в примере с повторителем для каждого элемента назначается одна и та же функциональность обработчика, не имеет значения, кто вызывает функции, лишь бы они выполнялись на этом уровне.
Это не такой MXML-inline, как раньше, требующий большего количества обработчиков. Но это позволяет использовать компоненты spark для примера.
Вы можете отправлять события от средств визуализации элементов, у которых для свойства пузырьков установлено значение true. Это означает, что они достигнут группы данных или родительской группы данных, в которую вы можете добавить слушателя.