Инициализатор класса
Запись от Яски размещена 05.11.2009 в 23:13
Сегодня обнаружил, что совсем не обязательно писать код внутри функций. Его можно писать внутри класса, вне класса и вне пакета. Такой код выполнится во время инициализации класса, т.е. при первом обращении к нему.
Простейший пример:
package tst{ public class Test { private static var instance:Test; trace("Вызываем в классе"); instance = new Test(); public function Test() { if (instance) { throw new Error("Singleton!!!"); } } } trace("Вне класса"); } trace("Вне пакета");
Применений для этого опять же немного, можно инициализировать статические переменные, но я для этого предпочитаю другой подход — для каждого статического свойства вызывать метод, который вернет начальное значение. Тут можно и константам устанавливать значение.
Например:
Всего комментариев 4
Комментарии
![]() ![]() |
|
А mxmlc.exe первый вариант не может скомпилить? Или для swc нужно compc использовать?
|
![]() ![]() |
|
Вот еще в тему
Механизм реального наследования в AVM2 |
Последние записи от Яски
- Инициализатор класса (05.11.2009)
- О пакетах классов (03.11.2009)
- valueOf в AS3 (07.10.2009)
- Сравнение строк в естественном порядке для Flash (18.05.2009)
- Быстрый Math.round для положительных чисел (17.01.2009)