错误1024 + 1023带按钮(AS3动作脚本3)

时间:2016-07-15 20:58:15

标签: actionscript-3 button override action

这是我的代码:

package  {

import flash.display.SimpleButton;


public class button extends SimpleButton {


    public function button() {

    }

    public function addListeners():void {
        button.addEventListener(MouseEvent.CLICK, downState);
    }
    public function downState(event:MouseEvent):void {
        trace('Test');
    }
}

}

我制作的按钮已经有正确的类型(Up,Down,Hit,Over) 错误说的是:1023不兼容的覆盖线16列19 1024:覆盖未标记为覆盖第16行第19列的函数

如果你愿意,谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

由于您的button类正在扩展SimpleButton,因此button中提供了SimpleButton中的所有公共和受保护函数和属性。

SimpleButton类有一个名为downState的属性,因此当您尝试在downState类中声明一个名为button的函数时,您会收到错误,因为它与现有实体发生冲突叫downState

要修复此错误,只需使用范围内尚不存在的名称(以下示例中为clickHandler

package  {

    import flash.display.DisplayObject;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent; //add missing imports

    public class button extends SimpleButton {

       public function button(upState:DisplayObject=null, overState:DisplayObject=null, downState:DisplayObject=null, hitTestState:DisplayObject=null){
           //super calls the base class constructor (SimpleButton)
           super(upState, overState, downState, hitTestState);

           //let's automatically add the click listener when the button is created
           addListeners();
       }

        public function addListeners():void {
            this.addEventListener(MouseEvent.CLICK, clickHandler);
        }

        public function clickHandler(event:MouseEvent):void {
            trace('Test');
        }
    }
}

还要注意一些重要的其他变化:

  1. 我添加了MouseEvent类的导入(否则会出现未知的类错误)。
  2. 我将点击监听器添加到this,因为button引用了类(不是类的实例),并且会给出未知的属性或方法错误。
  3. 我更改了构造函数(名称与类匹配的函数,并在实例化/创建对象时运行)以接受与SimpleButton相同的所有参数。