Просмотр полной версии : Порядок выполнения скрипта
chingachgoog
06.07.2007, 14:18
Что-то никак не пойму :)
Есть swf-ка: 3 кадра (кейфрейма)
код в первом кадре
gotoAndStop(3);
код во втором кадре:
trace("root")
код во третьем кадре:
trace("root")
stop()
Во 2-м и 3-м кадрах стоит мувиклип Символ1 (отдельными кейфреймами),
внутри которого только строчка
trace("clip")
Теперь вопрос:
Результат трейса таков:
clip
root
А если в первом кадре поставить
код в первом кадре
gotoAndStop(2);
то
root
clip
?????
Ну вообще-то два ключевых кадра на одном слое никуда клип не девают и новый клип в третьем кадре не создается, он инициализируется перед третьем кадром. А вот если расположить клипы в разных кадрах и на разных слоях, то никаких проблем нет.
chingachgoog
06.07.2007, 15:05
если расположить клипы в разных кадрах и на разных слоях, то никаких проблем нет.
Ну да, если их переименовать по-разному - тоже проблем нет...
новый клип в третьем кадре не создается, он инициализируется перед третьем кадром.
Мне показалось это странным.
Ведь если в клип вставить
trace(_parent._currentframe)
то он покажет, что инициализируется (выполняется именно в 3-м кадре), НО перед кодом в руте, хотя по идее код должен выполняться сначала в руте сверху вниз (если не указано иное)
Ну вообще, перед входом в третий кадр объект уже был на сцене, in fact. Т.е. создается он во-втором ещё.
chingachgoog
06.07.2007, 15:39
Т.е. строго говоря, клип только В МОМЕНТ ИНИЦИАЛИЗАЦИИ, выполняет свой код ДО кода рута, а после инициализации, он выполняет свой код, когда головка родителя уже перешла на следующий кадр (т.е. ДО исполнения кода родителя на следующем кадре)?
Нет, он весь свой код выполняет до рута. В целом, логически это верно — объект уже был создан на момент перехода в третий кадр.
chingachgoog
06.07.2007, 15:54
Т.е. в кадре выполняется СНАЧАЛА код дочерних мувиков, а ЗАТЕМ родительских? И только в случае инициализации мувиков порядок меняется?
Не всегда. Порядок меняется, если клип создается в данном конкретном кадре. Сначала рут, потом клип. А т.к. в данном примере клип уже был создан ещё на втором кадре, его инициализация должна пройти раньше рута.
chingachgoog
06.07.2007, 16:10
Спасибо. Учту как факт.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.