[Bindable]

[Bindable]专门用来定义绑定中的数据源对象,
[Bindable]的用法:
1.变量前定义:使用[Bindable]后,下一行表达式定义的变量就可以被用在绑定中。
方法一:[Bindable]
方法二:[Bindable(event=”eventname”)] event事件名指当数据源发生变化时,
数据源所在对象派发的事件类型,它是可选的。默认事件名是“propertyChange”
2.函数前定义:此函数必须通过setter和getter方式定义, [Bindable]要用在setter函数前面。
[Bindable]
public function set Num(n:Number):void{
num=n;
}
public function get Num():void{
return num;
}
3. 公用类前定义:当使用了绑定标签后,这个类的所有公有变量,包括settergetter都可以用于绑定。
package tree{
[Bindable]
public class myTest{
private var num:Number=0;
public var className:String=”aaa”; //可用数据绑定
public function set Num(n:Number):void{ //可用数据绑定
num=n;
}
public function get Num():void{
return num;
}
}
}
二、
[Bindable]例子
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Canvas id="box" scaleX="{doResize(scale)}" x="10" y="10" width="225" height="227" color="#000000">
<mx:Image x="35.5" y="10" source="img/5.jpg" width="154" height="207"/>
</mx:Canvas>
<mx:HSlider x="25" y="245" id="slider" change="scale=slider.value" minimum="0" maximum="1"/>
<mx:Zoom id="zoom" target="{box}"></mx:Zoom> <!-- 动画效果zoom -->
<mx:Script>
<![CDATA[ //使用[Bindable]后,下一行表达式定义的变量就可以被用在绑定中。
[Bindable] //为了使参数scale具备绑定功能,所以使用了[Bindable]标签,[Bindable]专门用来定义绑定中的数据源对象
private var scale:Number=1;
internal function doResize(num:Number):Number{
zoom.zoomWidthTo=num;
zoom.play();
return box.scaleX; //这里必须有返回值,供属性scaleX使用。
}
]]>

</mx:Script>
</mx:Application>

你可能感兴趣的:([Bindable])