2010-09-28 91 views
0

我对我所结合的数组集合到它的proeprties中的一个的定制组件:Flex组件属性更改事件

<comp:MyComp id="comp" prop="{images}" /> 

图像是一个ArrayCollection

在组件的代码我想要知道每次更新道具时要听哪个事件props.I尝试过道具上的setter,但是道具初次设置时,setter只会被调用一次。我尝试了收集活动,但我收到了“添加”和“删除”事件上发送的“更新”事件,我宁愿不必管理这些事件。那么是否有一个事件(弹性或其他)每次通过可绑定属性更新组件属性时触发?

回答

0

我想你想听prop属性上的collectionChange事件。每当ArrayCollection中的元素发生更改时,这应该会触发。

请注意,更改图像来源不会触发collectionChange事件,也不会触发prop setter。

+0

它的确如此,但正如我在我的帖子中所说的,它会针对不同事件类型的每次更改都会触发几次。我宁愿将与该物业有关的事件视为财产。至于图像,它被赋值改变了:images = collection – Tarek 2010-09-28 20:47:41

+0

你原来的文章没有指定“collectionChange”事件。即使如此“images = collection”也不会触发collectionChange事件。向我们展示您的图像属性的实现。你让它变得可绑吗?您的set方法是否触发propertyChange事件? – JeffryHouser 2010-09-28 20:51:40

+0

的确是这个问题“图像=集合”。当我期待“添加”或“删除”时,这是触发类似'更新'的CollectionChange事件。所以解决方法是在图像上使用addItem或完全绕过它,并将我的组件绑定到“集合” – Tarek 2010-10-06 15:46:54