![]() |
setChildIndex() против повторного addChild()
собственно
Код AS3:
Код AS3:
кто что думает? |
Лично мне второй больше нравится. А совсем по-правильному - юзать первый нужно.
|
использую второе
без всяких на то оснований, кроме разве того, что проблем не было тестов не делал, но думается, что нативно плеер быстрее разберется с перестановкой, чем по скриптовому сценарию смены индексов |
тесты показывают что абсолютно пофигу какой вариант юзать. но мне нравится первый, ибо считаю его более правильным.
|
А почему, собственно, - 1?
не понял, что происходит)) и о чем должно говорить super - что происходит-то?)) |
ну вот как бы в силу своей задротности мне хочется использовать первый. во втором все лучше, просто не покидает чувство "костыля".
спасибо. буду бороться с собой =) Добавлено через 3 минуты Цитата:
Цитата:
|
super говорит о том, что метод определен в суперклассе.
|
мне кажется сомнительным, что автор переопределял эти методы где-то - иначе он бы не спрашивал о них в форуме без дополнительных пояснений
в разговоре о методах super (как нечто уточняющее) выглядит как-то странно, я стал искать подвох, связанный конкретно с этим super, но в упор его не вижу |
Для того, чтобы использовать super.method() он не обязательно должен быть переопределен.
|
естественно)))
если бы это в куске кода было - у меня бы и мыслей никаких по этому поводу не возникло - стиль такой и ладно но там это странно выглядело)) |
да привык уже просто =) я и "повороты" в чистом поле включаю 0о
|
Нашего полку прибыло )
|
Цитата:
Если нет, то это частичное лицемерие - я им тоже страдаю, но по другим поводам))) |
Цитата:
Метод может быть переопределен в дочерних классах. Вполне логично, если я хочу, чтобы суперкласс использовал логику своих методов, а не дочернего класса. |
Цитата:
есть класс MyClass, его расширяет MyClassExtension в MyClass есть методы Код AS3:
Код AS3:
|
super вызывается в классе, наследуемом от базового (суперкласса), чтобы вызвать непереодределенную, наследником, функцию или аксессор базового класса.
|
Цитата:
|
очевидно, что вызовется непереопределенный метод, т.е
Цитата:
|
там другой момент мне не очевиден, какой метод вызовется без этого super
|
В смысле "увеличим длину цепи расширений"? Унаследуемся от MyClassExtension и переопределим метод a()?
Вызовется этот переопределенный метод, если так. В любом случае, несложно провести эксперимент. trace'ы расставить или в debugger'e посмотреть последовательность вызовов. |
Цитата:
|
Цитата:
Вот у меня зато вопрос возник. Разве нельзя использовать super в классе, который не наследуется ни отчего (или extends Object)? Вот примерчик, который выдает рантайм ошибку. Может что неправильно делаю? Код AS3:
Код AS3:
Код AS3:
Цитата:
|
Цитата:
|
Что-то совсем не в ту степь тема пошла :)... Подсознательно первый вариант кажется лучше. Про второй просто не думал до этого топика (хотя, все логично) - это касаемо изначального смысла топика...
|
Цитата:
Добавлено через 15 минут ааа... дошло вроде, про что топик - ну и тормоз)))) Цитата:
Первый вариант приятней в том смысле, что логика происходящего лучше читается |
Цитата:
|
Цитата:
|
В самой начале цепочки наследования, т.е. насколько я понял i.o. хочет чтобы метод, не найденный наверху искался снизу. По мне и слава богу, что не ищется.
orcpochta, вопрос вообще не понял. По дефолту, если мы не пишем this или super поиск идёт среди локальных переменных. Не нашли? Поднимаемся выше. Ищем в полях класса. Не нашли? Идём в суперкласс. И там не нашли? Идём в суперкласс суперкласса. Когда пишем this или super мы уже фактически однозначно говорим, какой метод из многих потенциальных мы хотим вызвать. Я лично super пишу, this не пишу - у меня очень редко совпадают имена локальных переменных с именами полей класса. Почему пишу super? Потому что, например, в классе унаследованном от Sprite`а мне вдруг захочется перекрыть нафиг сеттеры x и y. Зачем - не знаю, как пример говорю. Перекрываю я их - и надо переписывать весь класс под super.x и super.y. Поэтому пишу сразу - я ведь однозначно знаю, что в этой задаче мне нужен будет именно тот x, который определен в Sprite. |
Psycho Tiger, это все понятно, но до сих пор не понимаю этих слов udaaff-а
Цитата:
|
Создай класс A. Определи в нём метод method и метод callMethod, вызывающий method.
Создай класс B extends A. Переопредели в нём method и позови callMethod. |
народ, go в соседнюю ветку, там как раз вопрос про переопреление
|
Цитата:
|
Ну вот смотри. Я вызываю метод (doMethod), который вызывает другой метод (method). Переопределяю в ребёнке method, и вызываю doMethod. Вызывается method ребёнка. Беда? Беда, а я хочу вызывать method суперкласса. А вот если я напишу в doMethod { super.method() } - тогда при вызове doMethod "как бы" инлайновый код будет выглядеть super.method - то есть метод суперкласса, тот, что нам нужен.
|
| Часовой пояс GMT +4, время: 20:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.