Форум 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=92103)

Annihilator 15.02.2007 18:14

непонятка с глубиной
 
На сцене есть вручную созданый мувиклип с именем "gui" (интерфейс с полями, кнопками и т.п.). Естественно, изначально у него глубина отрицательная (в данном случае -16381). В третьем кадре (с меткой "start")
я меняю ему глубину (_root.gui.swapDepths(20);). Дальше идёт несколько кадров и в последнем я вывожу глубину этого мувика:
Код:

trace("at depth 20 - "+_root.getInstanceAtDepth(20)); //  at depth 20 - _level0.gui
trace("gui depth = "+_root.gui.getDepth()); // gui depth = 20

В первом проходе всё нормально, клип на глубине 20.
Если же далее срабатывает команда _root.gotoAndPlay("start"), то клип почему-то перемещается на старую отрицательную глубину но при этом в последнем кадре выводится:
Код:

trace("at depth 20 - "+_root.getInstanceAtDepth(20)); //  at depth 20 - _level0.gui
trace("gui depth = "+_root.gui.getDepth()); // gui depth = -16381

То есть получается, что он находится одновременно на двух глубинах, хотя визуально те клипы, что я создал програмно на глубинах 1, 3, 5 перекрывают его.
Что за парадокс? почему не меняется реальная глубина?

techno 15.02.2007 19:19

Все просто. Когда таймлайн второй раз выходит на кадр start, создается еще один новый gui на глубине -16381. т.е. не он находится на двух глубинах, а у вас два клипа с одинаковым именем.
Естественно, получить доступ к _root.gui на глубине 20 напрямую нельзя, т.к. у вас более поздний клип имеет такое же имя.

etc 15.02.2007 21:47

Их два и есть. Насколько я помню (gotoAndPlay забыл уже давно), при использовании swapDepths и переходе на новый фрейм, остается копия мувика. При переходе обратно мувик, на 20-ой у тебя копия на -16381.

iNils 16.02.2007 14:14

Цитата:

Сообщение от techno
Все просто. Когда таймлайн второй раз выходит на кадр start, создается еще один новый gui на глубине -16381. т.е. не он находится на двух глубинах, а у вас два клипа с одинаковым именем.
Естественно, получить доступ к _root.gui на глубине 20 напрямую нельзя, т.к. у вас более поздний клип имеет такое же имя.

Приоритет на прямой доступ по имени зависит от глубины клипа (у кого меньше, тот и откликается), а не по времени создания.


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

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