Я занимаюсь разработкой плеера, в котором есть несколько моих собственных кнопок, которые имеют свои классы.Также у игрока есть свой собственный класс, который является основным классом и создает все кнопки, которые у меня есть.
Так что это простой пример отношения «имеет», т.е. композиции.Я имел обыкновение вставлять упоминание игрока, связанного с каждым конструктором кнопок, для того чтобы кнопки могли иметь доступ к свойствам и методам из класса игроков.Этот метод работает хорошо, но проблема в том, что в нем много повторяющегося кода, который необходимо добавить в каждый класс кнопок.
Так что я попытался отработать, используя наследование, т.е. кнопки расширяют основной класс плейеров.
Но таким образом, хотя я объявляю все свойства защищенными, я получаю последний SWF пустой белый.Так что должна быть проблема.
Я неправильно делаю структуру или как?Есть идеи?
Вот пример кода
public class Player extends MovieClip{
protected var prop1:Number;
protected var prop2:String;
protected var playButton:PlayButton;
....
public function Player(){
// with composition
playButton=new PlayBUtton(this);
// with inhgeritance
playButton=new PlayButton();
addChild(playBUtton);
}
}
//first implementation with composition
public class PlayButton extends MovieCLip{
public function PlayButton(player:Player){
//access Player trough player parameter
}
}
//second implementation with inheritance
public class PlayButton extends Player{
public function PlayButton(){
//access Player trough inheritance
}
}