Using the Bindable metadata tag:
You can use the [Bindable] metadata tag in three places:
1 Before a public class definition.
2 Before a public, protected, or private property defined as a variable to make that specific property support binding.
3 Before a public, protected, or private property defined by a getter or setter method.
The Flex compiler automatically generates an event named propertyChange , of type PropertyChangeEvent, for
the property. If the property value remains the same on a write, Flex does not dispatch the event or update the
property. To determine if the property value changes, Flex calls the getter method to obtain the current value of the
property.
Demo:
DataBase class(单例,用于存储数据)
ActionScript 3语言:
package
{
/**
* This class is use to store the data,
* and test the bindable things in different class
*/
public class DataBase
{
private static var _instance:DataBase;
public static function get instance():DataBase
{
if (_instance == null)
{
_instance=new DataBase();
}
return _instance;
}
public function DataBase()
{
}
[Bindable]
public var valueOne:Number
[Bindable]
public var valueTwo:Number
}
}
MainApp:
MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024"
minHeight="768">
<fx:Script>
<![CDATA[
private var _sliderValue:int;
public function get sliderValue():int
{
return _sliderValue;
}
[Bindable(event="sliderValueChange")]
public function set sliderValue(v:int):void
{
_sliderValue=v + 10;
dispatchEvent(new Event("sliderValueChange"));
}
protected function slider_changeHandler(event:Event):void
{
sliderValue=HSlider(event.target).value;
DataBase.instance.valueOne=sliderValue;
}
]]>
</fx:Script>
<s:HSlider id="slider"
x="25"
y="30"
width="158"
height="15"
change="slider_changeHandler(event)"/>
<mx:Label x="25"
y="60"
text="{slider.value}"
textAlign="left"/>
<mx:Label x="25"
y="89"
text="{sliderValue}"
textAlign="left"/>
<mx:Label x="25"
y="117"
text="{DataBase.instance.valueOne}"
textAlign="left"/>
<mx:Label x="25" y="143" text="{DataBase.instance.valueTwo}"/>
<s:layout>
<s:BasicLayout/>
</s:layout>
</s:Application>
在程序中,使用了多种方法对数据进行绑定。
当使用 [Bindable(event="sliderValueChange")] 对数据进行绑定的时候,需要在数据改变时
dispatchEvent(new Event("sliderValueChange"));
否则数据并不发生改变.
最后一个lable 虽然对DataBase.instance.valueTwo进行了数据绑定,但是由于valueTwo的值从没改变过,所以
text绑定后的显示值一直不会改变。
使用get、set函数进行绑定时 需要将 [Bindable(event="sliderValueChange")] 绑定参数 写在set函数之前而非get函数之前.
分享到:
相关推荐
当接收到服务器返回的数据时,Flex4的DataBinding机制能自动更新UI组件,实现数据驱动的界面。 4. 安全性:在Flex4与Java的结合中,安全性是个重要考虑因素。可以使用HTTPS加密通信,防止数据在传输过程中被窃取。...
2. **NodeComponent**:表示拓扑图中的每个节点,它通常是一个自定义的UIComponent,包含可自定义的图标、标签和交互功能。 3. **LinkComponent**:表示节点之间的连接线,可能是用Shape或Graphics类绘制的,具有...
这些数据通过ActionScript的DataBinding机制与Flex4界面进行交互,确保用户操作界面时,后台数据的同步更新。 MyEclipse是基于Eclipse的Java EE集成开发环境,支持包括Flex在内的多种开发技术。将项目导入MyEclipse...
2. 数据绑定:使用Flex的DataBinding特性,实现在Flex组件和后台数据模型之间的双向绑定。 七、异常处理与安全考虑 1. 异常处理:设置合适的错误处理机制,确保在通信过程中出现异常时能够正确反馈。 2. 安全性:...
同时,Flex的DataBinding机制可以自动同步界面上的数据和后台模型,极大地提高了开发效率。 在实际项目中,为了更好地管理和重用代码,通常会引入BlazeDS或LCDS这样的中间件。BlazeDS是一个开源的服务器端组件,它...
5. **Flex数据绑定**:在Flex端,使用DataBinding机制将接收到的数据自动绑定到相应的UI组件上,实现实时更新。例如,将温度数据绑定到Label的text属性,城市名绑定到另一Label等。 6. **用户交互**:添加事件监听...
Flex的DataBinding允许UI组件与后台数据模型进行同步,简化了数据驱动的UI开发。 2. **模型(Model)**:存储和管理业务数据,可能是通过AMF(Action Message Format)与后端服务进行通信的数据实体。 3. **视图...
- Supports Databinding - Supports Styles - Customizable function to handle unsupported browsers - Show, hide, move and size - Display HTML skinnable pop up windows in your application with layering ...
同时,Flex的DataBinding特性使得数据与UI之间的同步变得简单,开发者无需手动处理更新视图的逻辑。 项目可能还涉及了数据可视化,比如使用图表组件来展示微博趋势的变化。Flex中的Spark Chart组件库提供了各种图表...
- 也可以使用数据绑定(`dataBinding`)将提示内容与数据模型关联,使提示内容动态更新。 5. **交互事件** - `ToolTip`类提供了如`show`和`hide`等事件,可以监听这些事件进行额外的处理,比如在提示显示时执行某些...