Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   class, как лучше ? (http://www.flasher.ru/forum/showthread.php?t=72631)

andr64 01.12.2005 17:33

class, как лучше ?
 
Код:

class cb1 extends MovieClip {
        function cb1 () {
                // bla 1
                onPress = function () {
                        // bla 2
                }
        }
}

или

Код:

class cb1 extends MovieClip {
        function cb1 () {
                // bla 1
        }
        function onPress () {
                // bla 2
        }
}

или один хрен ?

Gaen 01.12.2005 23:42

зависит от того что ты хочешь получить. В первом примере функция onPress назначается при вызове функции cb1, а во втором - сразу.

Nirth 02.12.2005 00:43

во флэше принято классы называть с большой буквы (это так к слову)
второй вариант прявильней, но в результат одни итот же.

Iv 02.12.2005 02:20

результат разный.

1. в первом случае если создать 1000 экземпляров класса будет создано еще
и 1000 экземпляров onPress. соответственно пожрется больше памяти.
во втором случае только один.

2. в первом варианте, если создавать подклассы с вызовом super в конструкторе,
то при наличии в подклассе метода onPress, при создании экземпляра подкласса,
метод onPress будет перезаписан на заданный в конструкторе суперкласса.
во втором случае останется метод onPress подкласса.

andr64 02.12.2005 18:39

Цитата:

Сообщение от BitSky
2. в первом варианте, если создавать подклассы с вызовом super в конструкторе,
то при наличии в подклассе метода onPress, при создании экземпляра подкласса,
метод onPress будет перезаписан на заданный в конструкторе суперкласса.

... вроде бы флэш при компилировании автоматически пишет "super();" в конструкторе класса... (это я декомпиллером смотрел...)

Antares 02.12.2005 20:32

Это потому что при наследовании в любом случае необходимо вызвать конструкторы всех суперклассов вплоть до начала цепочки.

Если ты его не указал руками -- компилятор подставит. Но можно указать с параметрами, тогда компилятор ничего не добавит.


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

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