Цитата:
Сообщение от fljot
Ну ведь это совершенно верно, для этого вы и переопределяли метод method().
|
Не для этого я его переопределил (см. ниже).
Цитата:
Сообщение от -De-
Не переопределять метод. Создать B вместо C. Зачем их вообще переопределяют? =)
|
А мне нельзя "не переопределять". Нужно позарез его переопределить!
Мне нужно создать спрайт-контейнер. В этот спрайт в дисплей-лист могу лишь добавлять воздушные шарики. Если добавлю что-то другое - полезет череда ошибок, поэтому я переопределяю addChild(). НО!!! Также этот контейнер обладает некой возможностью: добавлять какие-то определенные кнопки:

Код AS3:
public class A extends Sprite {
public function addButton(y:Number):void {
var button:SomeButton = new SomeButton();
button.x = 87;
button.y = y;
super.addChild(button);
}
}

Код AS3:
public class Container extends A {
private var baloonsArray:Array = new Array();
override public function addChild(child:DisplayObject):DisplayObject {
if(!(child is Baloon)) {
throw new ArgumentError("I need only Baloons!!!!");
}
this.baloonsArray.push(child);
return super.addChild(child);
}
}

Код AS3:
var container:Container = new Container();
//добавляем новый шарик в контейнер
container.addChild(new Baloon());
//при желании добавляем кнопку
container.addButton(50);
По вашему в методе addButton я должен писать вместо super.addChild(button); - просто addChild(button); ?
Добавлено через 11 минут
Ну, уберу я класс A. Метод addButton помещу в класс Container. И что это изменит? Все равно в методе addButton нужно писать "super".