使用getter / setter进行AS3重复功能定义

时间:2014-10-06 04:11:59

标签: actionscript-3 flash

我使用以下代码:

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。

1 个答案:

答案 0 :(得分:1)

您的setter/getter看起来像是由mxmlc为属性自动生成的:

[Bindable]
public var isMixerPopupVisible

这是一个mxmlc本身应该插入用于使用旧值/新值调度PropertyChangeEvent的代码,尝试一个简单的类属性,如上例所示。

注意: 如果你想找到在你的情况下究竟导致错误的原因(没有任何修改)添加编译器标志

keep-generated-actionscript=true|false

并检查你有什么(我相信你会发现Duplicate function definition.

相关问题