Flex AS3 - sending an event to all instances of ItemRenderer

I have a list that uses a custom ItemRenderer. Is there a way for the owner (list) to send the custom event that I created to all instances of its ItemRenderer?

For example, I want to send an event that adds text to a text field in an element renderer. One or more object renderers will be able to respond to this event depending on certain user interactions.

Is there any way?

Thanks:)

+3
source share
2 answers

ItemRenderer - List, - :

theList.addEventListener(YourCustomEvent.CUSTOM_EVENT, itemRendererCustomHander);

( ), , . ItemRenderer. EventDispatcher ItemRenderer, ItemRenderer :

public class ItemRenderer {
    public static var eventDelegate:YourCustomEventDispatcher;

    public function ItemRenderer() {
        eventDelegate.addEventListener(YourCustomEvent.CUSTOM_EVENT, itemRendererCustomHander);
        (...)
    }

    public function itemRendererCustomHander(event:YourCustomEvent) {
        (...)
    }
}

, List ( ActionScript, MXML), YourCustomEventDispatcher, ItemRenderer. YourCustomEventDispatcher YourCustomEvent List . ItemRenderer, , YourCustomEvent YourCustomEventDispatcher, theLists YourCustomEvent ItemRenderers .

Observer.

+7

List , IDropInListItemRenderer.

get listData listData, . , , set listData BaseListData .

public function set listData(listData:BaseListData):void {
  var list:UIComponent = listData.owner; // the list component instance
  list.addEventListener(YourCustomEvent.CUSTOM_EVENT, itemRendererCustomHander);
}

, ( DataGrid, AdvancedDataGrid TreeList, BaseListData (DataGridListData, TreeListData,...), , (, DataGrid ).

+3

Source: https://habr.com/ru/post/1706885/


All Articles