将事件侦听器添加到转发器内的Flex组件

时间:2011-10-11 15:09:29

标签: flex repeater event-listener

我想为转发器内的每个组件添加一个事件监听器,但不知道如何。这是我尝试过的一些代码:

<mx:Repeater id="rp" dataProvider="{dataProvider}" width="100%">
   <mx:Button id="attach" creationComplete="addListeners(attach[rp.currentIndex])"/>
</mx:Repeater>

这不起作用。在完成按钮创建之前,直到转发器完成而不是(如我所料),才会调用creationComplete。我不知道如何做到这一点。

顺便说一句 - 我也尝试将父组件上的creationComplete放到转发器上,但只会在第一次呈现组件时调用(转发器内的数据有时会发生变化),这样就不起作用了。

1 个答案:

答案 0 :(得分:1)

如果您正在使用元数据中定义的事件,则可以像添加click =“myClickHandler(event)”一样简单。你也可以这样做:

<yourNS:YourComponent id="foo>
    <creationComplete>
        <fx:Script>
            (foo[yourRepeater.currentIndex] as EventDispatcher).addEventListener('the event', yourEventHandler);
        </fx:Script>
    </creationComplete>
</yourNS:YourComponent >