gpt4 book ai didi

apache-flex - 在弹性组件之间传递数据

转载 作者:行者123 更新时间:2023-12-01 07:49:12 25 4
gpt4 key购买 nike

我是 flex 新手,如果这是一个愚蠢的问题,请原谅我。

现在我正在使用自定义事件将数据从一个组件传递到另一个组件。我的问题是事件只会冒泡。如何将数据传递给不是调度事件的组件的父组件?

这是基本布局。我正在尝试从组件 1 中获取传递给组件 3 的数据。

Application MXML
Component 1
Component 2
Component 3

最佳答案

如果图/树中的所有组件都需要一条数据,最好的办法是在每个组件上公开一个公共(public)的可绑定(bind)属性。让子组件调度一个由父组件处理的冒泡事件,父组件可以设置可绑定(bind)属性的新值。如果您将属性从父级绑定(bind)到子级,这将“级联”到其他组件。

<!-- in root application -->
<Component1 myData="{myData}"/>

如果您需要调用其他逻辑,您可以定义一个 get/set 对而不是 public var 并将逻辑添加到 setter:
[Bindable] private var _myData;
public function set myData(value:Object):void
{
_myData = value;
doSomeLogic();
}

更好的是使用 Flex 的失效框架来优化性能:
_myDataChanged : Boolean = false;
[Bindable] private var _myData;
public function set myData(value:Object):void
{
if (_myData != value) {
_myData = value;
_myDataChanged = true;
}
invalidateProperties();
}

override protected function commitProperties() : void {
super.commitProperties();
if (_myDataChanged) {
_myDataChanged = false;
doSomeLogic()
}
}

这种模式在构成 Flex 框架的所有 UIComponents 中到处使用。您可能还需要覆盖 updateDisplayList(...) 来定位元素。

关于apache-flex - 在弹性组件之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com