如何解决如何在TileList中访问引用自定义itemRenderer?
| 我有10个项目的TileList cp。 我如何从外部(在其中创建TileList cp的地方)调用4.项目(例如)中的函数? 谢谢解决方法
更新:
根据您的评论,这应该更加容易。您只需遍历List的dataProvider中的每一行,并进行必要的更改。在函数末尾,只需在ArrayCollection上调用the0ѭ函数即可。使用下面的示例:
public function myFunction(evt:Event):void
{
for each (var o:MyObject in myDataProvider)
{
o.someProperty = \"Updated\";
}
myArrayCollection.refresh();
}
更新ArrayCollection后,调用ѭ0函数将导致List也刷新其项目渲染器。
原始答案:
听起来好像您想在ItemRenderer
中单击按钮或其他内容时在ItemRenderer
之外调用函数,但仍然能够访问所单击项目的数据。
假设我正确无误,您仍然不需要访问ItemRenderer
本身。您可以执行以下操作(只是一个粗略的示例):
<fx:Script>
<![CDATA[
public function myFunction(evt:Event):void
{
trace(MyObject(myList.selectedItem).someProperty.toString());
}
]]>
</fx:Script>
<mx:List id=\"myList\" dataProvider=\"{myDataProvider}\" >
<mx:itemRenderer>
<fx:Component>
<mx:CheckBox selectedField=\"IsSelected\" change=\"outerDocument.myFunction(event);\" />
</fx:Component>
</mx:itemRenderer>
</mx:List>
如果确实需要传递未存储在List的dataProvider中的完全独立的参数,则只需将其作为参数传递给change eventHandler即可。
change=\"outerDocument.myFunction(event,someOtherValue);\"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。