在flex组件之间传递数据
发布时间:2020-12-15 01:44:30 所属栏目:百科 来源:网络整理
导读:我刚开始弯曲,如果这是一个愚蠢的问题,请原谅我. 现在我正在使用自定义事件将数据从一个组件传递到另一个组件.我的问题是事件只会冒泡.如何将数据传递给不是调度事件的组件的父组件? 这是基本布局.我正在尝试将组件1中的数据传递给组件3. Application MXML
我刚开始弯曲,如果这是一个愚蠢的问题,请原谅我.
现在我正在使用自定义事件将数据从一个组件传递到另一个组件.我的问题是事件只会冒泡.如何将数据传递给不是调度事件的组件的父组件? 这是基本布局.我正在尝试将组件1中的数据传递给组件3. Application MXML Component 1 Component 2 Component 3 解决方法
如果图形/树中的所有组件都需要一条数据,那么最好的办法是在每个组件上公开一个公共可绑定属性.让子组件调度由父级处理的冒泡事件,父级可以设置可绑定属性的新值.如果将属性从父级绑定到子级,则会“级联”到其他组件.
<!-- 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框架的所有UIComponent中,此模式在所有位置都使用.您可能还需要覆盖updateDisplayList(…)来定位元素. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |