我使用以下代码:
public function get isMixerPopupVisible():Boolean{
return (this._isMixerPopupVisible);
}
public function set isMixerPopupVisible(_arg1:Boolean):void{
var _local2:Object = this._isMixerPopupVisible;
if (_local2 !== _arg1){
this._isMixerPopupVisible = _arg1;
this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "isMixerPopupVisible", _local2, _arg1));
};
}
我正在尝试将此属性设为可绑定,以便我可以使用ChangeWatcher.Watch
方法,但是,当我尝试添加[Bindable]
标记时,就像这样:
[Bindable]
public function get isMixerPopupVisible():Boolean{
return (this._isMixerPopupVisible);
}
public function set isMixerPopupVisible(_arg1:Boolean):void{
var _local2:Object = this._isMixerPopupVisible;
if (_local2 !== _arg1){
this._isMixerPopupVisible = _arg1;
this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "isMixerPopupVisible", _local2, _arg1));
};
}
我在setter上收到错误Error: Duplicate function definition.
。为什么是这样?我正在使用FlashDevelop与AS3和Flex 4.6.0。
答案 0 :(得分:1)
您的setter/getter
看起来像是由mxmlc
为属性自动生成的:
[Bindable]
public var isMixerPopupVisible
这是一个mxmlc
本身应该插入用于使用旧值/新值调度PropertyChangeEvent
的代码,尝试一个简单的类属性,如上例所示。
注意: 如果你想找到在你的情况下究竟导致错误的原因(没有任何修改)添加编译器标志
keep-generated-actionscript=true|false
并检查你有什么(我相信你会发现Duplicate function definition.
)