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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.04.2010, 01:20
MrPoma вне форума Посмотреть профиль Отправить личное сообщение для MrPoma Посетить домашнюю страницу MrPoma Найти все сообщения от MrPoma
  № 1  
Ответить с цитированием
MrPoma
 
Аватар для MrPoma

Регистрация: Jul 2006
Адрес: Питер
Сообщений: 2,083
Отправить сообщение для MrPoma с помощью Skype™
Цитата:
Сообщение от PsycoTiger
Ещё заметил, что mxmlc не хочет компилировать конструкцию
Код AS3:
super.x+=10;
Однако,
Код AS3:
x+=10;
компилируется. У меня бета, из за этого или есть какая-то фишка?
Я пользуюсь заплатками
Код AS3:
super.x = super.x + 10;
__________________
жж | твттр | гглплс | фсбк | вкнткт | гтхб


Последний раз редактировалось MrPoma; 07.04.2010 в 01:23.
Старый 06.04.2010, 12:43
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 2  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
super для методов а не свойств.
__________________
Отряд Котовскага

Старый 06.04.2010, 14:55
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Котяра Посмотреть сообщение
super для методов а не свойств.
Вполне себе и для свойств. То, что не работает инкремент при super — баг.

Старый 06.04.2010, 15:21
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Про баг понял, из за него буду писать просто x+=

То есть, чтобы уж точно - по второму кругу - ВСЕ свойства, сеттеры, геттеры и методы, определенные в базовом классе и выше должны вызываться через super, и по сути this.addEventListener без переопределения этого метода писать неправильно с точки зрения сверх-грамотного флешеризма?

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

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Ребят, а если не сложно, расскажите мне пожалуйста на пальцах, для чего, и как используется super();
__________________
Убейте меня!

Старый 29.09.2010, 21:25
arkadattx вне форума Посмотреть профиль Отправить личное сообщение для arkadattx Найти все сообщения от arkadattx
  № 6  
Ответить с цитированием
arkadattx

Регистрация: Apr 2010
Сообщений: 219
Присоединяюсь к вопросу джонатана.
Я так понимаю, что если нам явно не нужно вызвать метод суперкласса, то мы просто страхуемся, что, как написал Psycho Tiger, "true"?

Старый 29.09.2010, 21:45
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Ага, типа того.
Я уже понимаю людей кто явно пишет this и super. Код без super`ов для меня с некоторых пор стал читаться хуже... Но я ни в коем случае не агитирую писать его везде где только можно ) Это дело вкуса.

Старый 29.09.2010, 21:51
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 8  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
в том то и дело, что не совсем вкуса..супер - явный признак вызова родительского метода.
т.е. к примеру если мы разбираем класс, где много много букаф и видим конструкцию super.someMetod() мы не лазием по тыще строк в поисках его (его может и не быть в этом классе), а смотрим экстенд и смотрим метод в родителе. я к чему - проще для восприятия и работы с кодом в целом. это навскидку)
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 29.09.2010, 21:52
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 9  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Возможно super() может быть полезен, если мы хотим выполнить какой-то дополнительный код до вызова конструктора расширяемого класса.

Насчёт использования super для вызова методов присоединяюсь к мнению тех, кто считает, что это использование оправдано только в соответствующем перезаписываемом методе, т.е.
Код AS3:
override public function callMyMethod():void {
	//...
	super.callMyMethod();
	//...
}
И в этом есть смысл, ведь переопределяем мы методы именно для того чтобы использовать переопределённые методы. Так?

Добавлено через 3 минуты
И ещё при глубокой вложенности классов super совсем не помогает найти метод.

Старый 29.09.2010, 22:28
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
не знаю - я не использую супер везде.
Не вижу смысла. Только проблемы.
А если мне нужно вызвать
допустим есть
Цитата:
publiс function redraw():void
{
super.init();
super.draw();
}
я переопределил у наследника метод draw, теперь мне нужно искать по коду какого не работает нормально redraw? или переопределять его тоже?
фанатизм не нужен. если ты уверен что нужно вызывать ТОЛЬКО метод родителя тогда супер, а если надо/есть возможность переопределить - то не стоит - писанием кругом super мы нарушаем полиморфизм - не даёт потомкам нормально мутировать.
__________________
Отряд Котовскага

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

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

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


 


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


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