关于flex得绑定 [bindable]

关于flex得绑定 [bindable]

[Bindable] 
是基于事件的,当原发生改变,会通知到目标对象。 
1.可以写在整个类的前面,比如 
     [Bindable] 
     public class TextAreaFontControl extends TextArea {} 
    这样会对  TextAreaFontControl 中所有的public variables 和 public get/set 
   绑定 
2.可以写在variables 前面,比如 
   [Bindable(event="fooChanged")] 
   public var foo:String; 
3.也可以写在函数前面, 
  [Bindable("myNameChanged")] 
  public function getNmae():String { 
       return myName; 
  } 

  public function set myName(myName:String):void { 
     this.myName = myName; 
     disPatchEvent(new Event("myNameChanged")); 
  } 

  这样所有的外部对getNmae的应用在myName改变时都会得到通知 

    ****************************************************************    ****************************************************************

 

 

1、在public class定义前 
[Bindable]元数据标签绑定所有的作为变量定义的public属性,并且所有的public属性都定义有getter和setter方法。在这种情况下,[Bindable]没有参数,例如: 
[Bindable] 
public class TextAreaFontControl extends TextArea {} 
flex编译器自动创建一个事件名叫propertyChange用于所有的公有属性,这些属性可以作为绑定表达式的源。这种定义等同于 
[Bindable(event="propertyChange")] 

如果属性值的改变与原来相同,flex并不传递这个事件或更新属性。 

2、在public, protected 或 private 属性前,格式为: 
[Bindable] 
public var foo; 


3、Before a public, protected, or private property defined by a getter or setter method. 
你必须同时定义getter和setter方法,以便于使用[Bindable]元数据标签。 
[Bindable] 
public function set shortNames(val:Boolean):void { 
    ...                
} 

public function get shortNames():Boolean { 
    ... 
 


你可以使用自定义的事件名,如: 
[Bindable(event="changeShortNames")] 
public function set shortNames(val:Boolean):void { 
    ... 
    // Create and dispatch event. 
    dispatchEvent(new Event("changeShortNames")); 
} 

// Get method. 
public function get shortNames():Boolean { 
    ... 
}     



// Define public vars for tracking font size. 
    [Bindable] 
    public var maxFontSize:Number = 15; 
    [Bindable] 
    public var minFontSize:Number = 5; 


// Define private variable. 
    private var _maxFontSize:Number = 15; 

    [Bindable(event="maxFontSizeChanged")] 
    // Define public getter method. 
    public function get maxFontSize():Number { 
        return _maxFontSize; 
    } 

    // Define public setter method. 
    public function set maxFontSize(value:Number):void { 
        if (value <= 30) { 
            _maxFontSize = value; 
        } else _maxFontSize = 30; 

        // Create event object. 
        var eventObj:Event = new Event("maxFontSizeChanged"); 
        dispatchEvent(eventObj); 

    } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值