PDA

Просмотр полной версии : class, как лучше ?


andr64
01.12.2005, 17:33
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
2. в первом варианте, если создавать подклассы с вызовом super в конструкторе,
то при наличии в подклассе метода onPress, при создании экземпляра подкласса,
метод onPress будет перезаписан на заданный в конструкторе суперкласса.

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

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

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