![]() |
|
||||||||||
|
|
|
|||||
|
Долгое время проработал на AS2, теперь трудно переходить на третью версию, но тем не менее недавно начал. В ООП кое-что понимаю, но с конкретно с AS3 ещё не до конца разобрался. Например мне не нравится конкретно вот что:
У меня есть главный класс, у него есть подклассы, которые также выводят графику. Ну точнее мне достаточно, чтобы они наследовали методы главного класса. Я делаю так: public class mainClass extends MovieClip { public function MainClass() { // какой-то конструктор } public function mainClassMethod() { // какой-то метод главного класса, который должен унаследоваться } } То есть по сути у меня тут не наследование, а тупо передача всего ролика, как объекта. Я так понимаю, это жрёт достаточно много ресурсов. Как сделать правильно? |
|
|||||
|
стервочка (я мужик)
|
p.s. ничего тут со времён ас2, не изменилось.
|
|
|||||
|
Это всё, конечно, здорово. Но я так уже пробовал. Во время исполнения выдаёт:
Цитата:
public class mainClass extends MovieClip { public function mainClass() { trace ("test"); // какой-то конструктор startFunction(); } public function mainClassMethod() { trace("MainClassMethod"); // какой-то метод главного класса, который должен унаследоваться } public function startFunction() { var Test:subClass = new subClass(); } } Не знаю точно, но подозреваю, что дело в том, что нельзя вызывать дочерний класс, пока не закончил работу конструктор. Может я не прав. Ну а как тогда? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
1. Нет пакетов.
2. Названия классов пишут с большой буквы. 3. Этот код не будет работать, так как создает рекурсию. Вы создаете экземпляр SubClass, который вызывает конструктор предка MainClass, там вызывается startFunction, в котором создается экземпляр SubClass, который... ну и тд. |
|
|||||
|
Пакет есть. Просто я опустил его упоминание, как и импорты. Про названия классов учту, спасибо. Вот оно как. Не учёл, что конструктор повторно вызывается. Ну это, конечно, всё здорово. Но всё-таки. Как мне лучше сделать так, чтобы дочерние классы точно также могли работать некоторыми функциями главного класса? (в частности - управление MovieClip'ами)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 09:05. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| наследование , ресурсоёмкость |
|
|