Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   setChildIndex() против повторного addChild() (http://www.flasher.ru/forum/showthread.php?t=139635)

Zebestov 07.05.2010 00:15

да привык уже просто =) я и "повороты" в чистом поле включаю 0о

dimarik 07.05.2010 00:30

Нашего полку прибыло )

orcpochta 07.05.2010 00:49

Цитата:

Сообщение от Zebestov (Сообщение 906465)
да привык уже просто =) я и "повороты" в чистом поле включаю 0о

а this пишите?)) или когда к статическому свойству или методу класса обращаетесь внутри этого же класса пишите имя класса MyClass.prop?

Если нет, то это частичное лицемерие - я им тоже страдаю, но по другим поводам)))

udaaff 07.05.2010 01:10

Цитата:

а this пишите?)) или когда к статическому свойству или методу класса обращаетесь внутри этого же класса пишите имя класса MyClass.prop?

Если нет, то это частичное лицемерие - я им тоже страдаю, но по другим поводам)))
Это несколько из другой оперы.
Метод может быть переопределен в дочерних классах. Вполне логично, если я хочу, чтобы суперкласс использовал логику своих методов, а не дочернего класса.

orcpochta 07.05.2010 01:24

Цитата:

Сообщение от udaaff (Сообщение 906478)
Это несколько из другой оперы.
Метод может быть переопределен в дочерних классах. Вполне логично, если я хочу, чтобы суперкласс использовал логику своих методов, а не дочернего класса.

можно подробней - не совсем понял

есть класс MyClass, его расширяет MyClassExtension

в MyClass есть методы
Код AS3:

protected function a ( ):void
{
}
 
protected function b ( ):void
{
    a( );
}

в MyClassExtension
Код AS3:

override protected function a ( ):void
{
}

Если мы вызовем метод b( ) из экземпляра MyClassExtension, то он вызовет a( ) из MyClassExtension, но если в методе b( ) класса MyClass прописать super.a( ), то вызовется a( ) из MyClass. А если мы увеличим длину цепи расширений, что вызовется? Я запутался))) Объясните подробней, если не трудно)))

i.o. 07.05.2010 01:40

super вызывается в классе, наследуемом от базового (суперкласса), чтобы вызвать непереодределенную, наследником, функцию или аксессор базового класса.

orcpochta 07.05.2010 01:43

Цитата:

Сообщение от i.o. (Сообщение 906484)
super вызывается в классе, наследуемом от базового (суперкласса), чтобы вызвать непереодределенную, наследником, функцию или аксессор базового класса.

я это знаю, я пытаюсь понять, что сказал мне udaaff и импровизирую на ходу

i.o. 07.05.2010 01:48

очевидно, что вызовется непереопределенный метод, т.е
Цитата:

но если в методе b( ) класса MyClass прописать super.a( ), то вызовется a( ) из MyClass
вызовется a( ) из MyClass

orcpochta 07.05.2010 01:50

там другой момент мне не очевиден, какой метод вызовется без этого super

udaaff 07.05.2010 02:05

В смысле "увеличим длину цепи расширений"? Унаследуемся от MyClassExtension и переопределим метод a()?
Вызовется этот переопределенный метод, если так.
В любом случае, несложно провести эксперимент. trace'ы расставить или в debugger'e посмотреть последовательность вызовов.


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

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