Flex 的 mx.binding.*; 内有许多未公开的类别
主要都是给 MXML Compiler 使用的
其中 mx.binding.BindingManager 便是负责管理所有的 DataBinding 运作
BindingManager 内有一些静态函式还蛮有用的
列举如下:
-
BindingManager.setEnabled(document:Object, isEnabled:Boolean):void;
用来 停止/启动 Flex Application/Component 内 Data Binding -
BindingManager.executeBindings(document:Object, destStr:String, destObj:Object):void;
运行被指定 Data Binding Expression -
BindingManager.debugBinding(destinationString:String):void;
对指定的 Data Binding Expression 进行除错
以下是简单的 BindingManager 使用示范程序:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundColor="#FFFFFF" layout="vertical" fontSize="12"
creationComplete="onCreateComplete();">
<mx:Script>
<![CDATA[
import mx.binding.*;
public function onCreateComplete():void{
BindingManager.debugBinding("slider2.value");
}
]]>
</mx:Script>
<mx:Label text="Binding Source:" />
<mx:HSlider id="slider1" snapInterval="1" maximum="100" value="50" />
<mx:Label text="Binding Destination:" />
<mx:HSlider id="slider2" snapInterval="1" maximum="100" value="{slider1.value}" />
<mx:CheckBox id="chk" label="Binding Enabled" selected="true"
change="BindingManager.setEnabled(this, chk.selected); btn.enabled = chk.selected;" />
<mx:Button id="btn" label="Execute DataBinding"
click="BindingManager.executeBindings(this, 'slider2.value', null);" />
</mx:Application>
<!-- Ticore's Blog - http://ticore.blogspot.com/ -->
测试输出结果:
Binding: destString = slider2.value, srcFunc result = 54 Binding: destString = slider2.value, srcFunc result = 59 Binding: destString = slider2.value, srcFunc result = 81 Binding: destString = slider2.value, srcFunc result = 41
相关连结:
Flex 技巧 - 将资料绑定封装起来
Flex - 纯手工设置 DataBinding 的方式
Flex 技巧 - 观察 Data Binding 资料变化
Flex Tip - 在 Data Binding 内使用 [...] 运算子
Flex 2 Bindable Metadata Tag 背后实际作用
Flex 2.0 - 以 ActionScript 3.0 动态设置 Data Binding



0 意见 :
张贴意见