加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Getter和Setter方法与FLex中的公共属性

发布时间:2020-12-15 01:46:51 所属栏目:百科 来源:网络整理
导读:在绑定Flex中的值时,哪种方法更好? 解决方法 使用以下任一方法公开可绑定的公共属性被认为是Flex中的最佳做法: [Bindable] public var dataProvider:Object;[Bindable] public function get dataProvider():Object { ... } get / set函数对比常规公共属性
在绑定Flex中的值时,哪种方法更好?

解决方法

使用以下任一方法公开可绑定的公共属性被认为是Flex中的最佳做法:

[Bindable] public var dataProvider:Object;
[Bindable] public function get dataProvider():Object { ... }

get / set函数对比常规公共属性更灵活.通过使用[Bindable]标记注释get函数,您仍然可以轻松地使属性可绑定.但是,您可以在“set”函数中实现一些自定义逻辑,包括设置脏标志和使属性,大小或显示列表无效.例如:

private var _dataProvider:Object;
private var dataProviderChanged:Boolean;
public function set dataProvider(value:Object):void
{
    if (_dataProvider != value)
    {
        _dataProvider = value;
        dataProviderChanged = true;
        invalidateProperties();
    }
}
[Bindable] public function get dataProvider():Object
{
    return _dataProvider;
}

此模式在Flex框架组件中大量使用.失效模型非常干净,并且还可以在自定义组件中实现最佳性能.

您还可以为可绑定属性指定自定义事件,以便可以从多个位置触发绑定,而不是仅通过调用setter:

[Bindable( "dataProviderChanged" )]
public function get dataProvider():Object
{
    return _dataProvider;
}

public function someRandomMethod():void
{
     // ...
     // pretend that we just finished some processing
    _dataProvider = newValue;
    dispatchEvent( new Event( "dataProviderChanged" ) );
}

如果要将属性设置为只读,这也很有效,这意味着它没有匹配的“set”方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读