Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.02.2010, 17:14
Aloran вне форума Посмотреть профиль Отправить личное сообщение для Aloran Найти все сообщения от Aloran
  № 1  
Ответить с цитированием
Aloran

Регистрация: May 2009
Сообщений: 223
Записей в блоге: 1
По умолчанию переопределение метода родителя

Подскажите пожалуйста, возможноли как то при переопределении родителя вызвать метод родителя.родителя, что то типа super.super.metod() (знаю что запись не правильная). И если можно то как?

Старый 19.02.2010, 17:39
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
super и parent - это разные вещи
переопределение метода - это вообще не отсюда =)

Когда переопределяется родитель - ваш объект встает в новое место в иерархии отображения. Соответственно, его parent меняется. Значит, мы можем обратиться к this.parent и вызвать его некий метод (или к this.parent.parent...parent... и так сколько нужно)
Отследить переопределение родителя можно по событию Event.ADDED

про super
Вот есть у Вас класс, который наследуется от MovieClip
Что это значит?
Это значит, что объект Вашего класса будет обладать всеми свойствами и методами класса MovieClip И свойствами и методами, которые Вы описали в Вашем классе
И когда пишем super.addChild(...) - это то же самое, что написать this.addChild(...)
Вернее говоря, то же самое до тех пор, пока вы не переопределите метод addChild() в классе наследнике.
Если вы его переопределите, то он может делать вообще что-нибудь другое, например удалять ребенка вместо его добавления на сцену. В таком случае - this.addChild() и super.addChild() будут делать разные вещи. Во всех остальных - то есть нет переопределения метода - это одно и то же и можно писать и так и так, как Вам удобнее
__________________
...вселенская грусть

Старый 19.02.2010, 18:06
Aloran вне форума Посмотреть профиль Отправить личное сообщение для Aloran Найти все сообщения от Aloran
  № 3  
Ответить с цитированием
Aloran

Регистрация: May 2009
Сообщений: 223
Записей в блоге: 1
Все это я знаю и так))) Спасибо за напоминание. Наверное я просто некорректно задал вопрос.

У меня есть класс А с методом metod(). У класса А есть наследник класс В с переопределенным metod(). Так же есть класс С который расширяет В. Так вот мне надо в классе С переопределить metod(), но при этом вызвать в начале super.metod(); класса А, а не класса В. Не спрашивайте зачем))) надо.
Возможно ли так сделать.

Старый 19.02.2010, 18:13
dixus вне форума Посмотреть профиль Отправить личное сообщение для dixus Найти все сообщения от dixus
  № 4  
Ответить с цитированием
dixus

Регистрация: Feb 2010
Сообщений: 33
Напрямую его вызвать не удасться, но можно исхитриться, например поставив флаг на исполнение содержимого метода в классе B.

Старый 20.02.2010, 17:11
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 5  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Просто сделать в классе В вот такой метод
Код AS3:
public function superAMethod():void {
   super.method();
}
__________________
...вселенская грусть

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.