2016-07-15 1 views
0

Вот мой код:ошибка 1024 + 1023 с кнопками (AS3 Действие сценария 3)

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

Благодарим вас за помощь, если вы хотите!

+0

Ошибка в том, что ваш базовый класс (простая кнопка) уже имеет свойство «downState», поэтому вы не можете создать функцию с тем же именем. – BadFeelingAboutThis

+0

Теперь я получаю сообщение об ошибке: Строка 16 Столбец 31 1046: Тип не был найден или не был константой времени компиляции: MouseEvent – Artsicle

ответ

1

Поскольку ваш класс button распространяется SimpleButton, все общедоступные и защищенные функции и свойства SimpleButton доступны в button.

Класс 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.
+0

Я знаю, я изменил это. Его теперь называют stateDown. Я уже ответил * Теперь я получаю сообщение об ошибке: Строка 16 Столбец 31 1046: Тип не был найден или не был константой времени компиляции: MouseEvent – Artsicle

+0

Я обратился к этому в своем ответе, а также к другой ошибке вы получите следующий – BadFeelingAboutThis

+0

Редактировать : Я исправил эту ошибку. Теперь ошибок не возникает. – Artsicle