gpt4 book ai didi

apache-flex - Getter 和 Setter 方法与 Flex 中的公共(public)属性

转载 作者:行者123 更新时间:2023-12-04 02:56:21 24 4
gpt4 key购买 nike

在 Flex 中绑定(bind)值哪个更好?

最佳答案

使用以下任一方法公开可绑定(bind)的公共(public)属性被认为是 Flex 中的最佳实践:

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

get/set 函数对比常规公共(public)属性更灵活一些。您仍然可以通过使用 [Bindable] 标记注释 get 函数来轻松地使属性可绑定(bind)。但是,您可以在“设置”函数中实现一些自定义逻辑,包括设置脏标志和使属性、大小或显示列表无效。例如:
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 框架组件中被大量使用。失效模型非常干净,也可以在您的自定义组件中获得最佳性能。

您还可以为可绑定(bind)属性指定自定义事件,以便可以从多个位置触发其绑定(bind),而不仅仅是调用 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”方法。

关于apache-flex - Getter 和 Setter 方法与 Flex 中的公共(public)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1191037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com