Flex4中[Bindable]做了什么?

      

      Flex里面[Bindable]相信大家都用过,其实这个是给编译器看的,那编译器到底做了什么呢?今天特地去研究了下:

首先在fb的Flex编译器里面加上编译参数-keep-generated-actionscript=true,然后会生成一个generated目录,里面就是从mxml生成的as文件。

 

      比如你在mxml文件里定义了[Bindable]public var foo:String;则会生成如下的as3代码:

      

 [Bindable(event="propertyChange")]
    private function get foo():String
    {
        return this._3712foo;
    }

    private function set foo(value:String):void
    {
        var oldValue:Object = this._3712foo;
        if (oldValue !== value)
        {
            this._3712foo = value;
           if (this.hasEventListener("propertyChange"))
               this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "foo", oldValue, value));
        }
    }

 

    

你可能感兴趣的:(Flex,actionscript)