Просмотр полной версии : Инициализация классов
Вопрос такой:
в библиотеке есть клип clip_1 класса class_1 в нем клип clip_2 класса class_2.
после аттача clip_1 вызывается его метод clip_1.init(), который в свою очередь вызывает метод clip_1.init(), но к этому времени class_2 еще не инициализировался и следовательно метода init у него нет.
Пару способов решения проблемы я знаю но хотелось бы услышать независимое мнение, как с этим справиться внеся минимум исправлений.
получается что после аттача clip_1 вы в него должны аттачить клип 2
а уже потом вызывать инит1 который вызовет инит2 :)
этот способ я уже знаю, нужно более универсальный, clip_2 должен лежат в clip_1 изначально
class class_1 extends MovieClip {
private var clip_2:MovieClip;
function class_1() {
this.onEnterFrame = init;
}
private function init () {
delete this.onEnterFrame;
clip_2.init ();
}
}
Ещё говорят, что можно использовать onLoad. Но я по привычке пользую метод iNils-а или чаще у меня просто не существует вложенных клипов, они потом создаются.
да похоже это единственный подходящий вариант, не хотелось к onEnterFrame привязываться но похоже придется. Всем сенькью
Почему же? Попробуй onLoad. Я им никогда не пользовался и не проверял, лень :)
Почему же? Попробуй onLoad. Я им никогда не пользовался и не проверял, лень :)
Работает. Срабатывает раньше, чем onEnterFrame.
Но позже инициализации внутренних клипов? Если да, то лучше, наверное, использовать его.
Но позже инициализации внутренних клипов? Если да, то лучше, наверное, использовать его.Позже. Я его не использовал, так как думал, что он ведет себя также глупо как в AS1, то есть срабатывает только для рута.
да, с onLoad все как надо работает:)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.