微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在TileList中访问引用自定义itemRenderer?

如何解决如何在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 举报,一经查实,本站将立刻删除。