Форум 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)
-   -   Порядок выполнения скрипта (http://www.flasher.ru/forum/showthread.php?t=98119)

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


?????

etc 06.07.2007 14:38

Ну вообще-то два ключевых кадра на одном слое никуда клип не девают и новый клип в третьем кадре не создается, он инициализируется перед третьем кадром. А вот если расположить клипы в разных кадрах и на разных слоях, то никаких проблем нет.

chingachgoog 06.07.2007 15:05

Цитата:

Сообщение от __etc
если расположить клипы в разных кадрах и на разных слоях, то никаких проблем нет.

Ну да, если их переименовать по-разному - тоже проблем нет...

Цитата:

Сообщение от __etc
новый клип в третьем кадре не создается, он инициализируется перед третьем кадром.

Мне показалось это странным.
Ведь если в клип вставить
Код:

trace(_parent._currentframe)
то он покажет, что инициализируется (выполняется именно в 3-м кадре), НО перед кодом в руте, хотя по идее код должен выполняться сначала в руте сверху вниз (если не указано иное)

etc 06.07.2007 15:14

Ну вообще, перед входом в третий кадр объект уже был на сцене, in fact. Т.е. создается он во-втором ещё.

chingachgoog 06.07.2007 15:39

Т.е. строго говоря, клип только В МОМЕНТ ИНИЦИАЛИЗАЦИИ, выполняет свой код ДО кода рута, а после инициализации, он выполняет свой код, когда головка родителя уже перешла на следующий кадр (т.е. ДО исполнения кода родителя на следующем кадре)?

etc 06.07.2007 15:43

Нет, он весь свой код выполняет до рута. В целом, логически это верно — объект уже был создан на момент перехода в третий кадр.

chingachgoog 06.07.2007 15:54

Т.е. в кадре выполняется СНАЧАЛА код дочерних мувиков, а ЗАТЕМ родительских? И только в случае инициализации мувиков порядок меняется?

etc 06.07.2007 16:02

Не всегда. Порядок меняется, если клип создается в данном конкретном кадре. Сначала рут, потом клип. А т.к. в данном примере клип уже был создан ещё на втором кадре, его инициализация должна пройти раньше рута.

chingachgoog 06.07.2007 16:10

Спасибо. Учту как факт.


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

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