Вы не можете использовать override
здесь, потому что базовый класс Button
не имеет метода mouseOver
для переопределения.
Если вы удалите ключевое слово переопределения, оно должно работать нормально.Тем не менее, вам необходимо добавить слушатель для вашей функции, чтобы он вызывался при наведении курсора мыши.Например:
import flash.events.MouseEvent;
import mx.controls.Alert;
import spark.components.Button;
public class BookViewButton extends Button
{
public function BookViewButton()
{
addEventListener(MouseEvent.MOUSE_OVER, _mouseOver);
}
private function _mouseOver(event:MouseEvent):void
{
Alert.show("mouseOver for new class works");
}
}
Информация о super();
Нет необходимости вызывать super в конструкторе расширяющего класса, если только нет аргументов, которые вы хотите проанализировать.Пример.
package
{
public class A extends Object
{
public function A()
{
trace("A");
}
}
}
И класс расширения:
package
{
public class B extends A
{
public function B()
{
trace("B");
}
}
}
Если мы сделаем:
var thing:B = new B();
У вас будет вывод:
A
B
Однако, если вам нужны аргументы для вашего конструктора, вам нужно будет проанализировать их до конструктора класса, который вы расширяете, используя super()
.Вот так:
public class A extends Object
{
public function A(arg:String)
{
trace(arg);
}
}
public class B extends A
{
public function B(arg:String)
{
super(arg);
}
}
Теперь будет выведено «asdf»:
var thing:B = new B("asdf");