![]() |
Смена приоритета слоя мувиков относительно их расположения
Искал по форуму не смог найти, может проглядел, не судите строго. Подскажите пожалуйста как менять приоритет мувиклипа относительно его расположения? есть орбиты планет и вращающиеся по ним с разной скоростью планеты. все это в перспективе, то есть орбиты - вытянутые овалы и планеты соответственно иногда перекрывают друг друга. на ближней части орбит ближняя планета перекрывает дальнюю, на дальней (за солнцем) части орбит эта же планета уже сама должна быть перекрытой. вот суть такая. у меня конечно получается что одна планета гдебы она не была перекрывает другую. выглядит неестественно. буду благодарен.
|
Вам нужно почитать о методе swapDepths.
То, что вы называете "приоритетом", называется уровнем или глубиной. Что-то вроде Z-индекса. Только не путайте со слоями, слои остаются в FLA-файле, в SWF-ке слоев нет. Этот метод позволяет как менять уровни мувиков между собой, так и назначать конкретный уровень мувику. Иначе говоря, метод позволяет управлять перекрытием мувиков. Вот похожая тема была, тоже объекты были, крутящиеся вокруг общего центра: http://www.flasher.ru/forum/showthread.php?t=135887 Там я привел рабочий код, которым автору нужно было заменить определенную часть в исходнике, и все хорошо работало. |
Спасибо большое за ответ. Но к сожалению как не мучился со swapDepths так и не заработали они. Мутил в АС2. просто создал перекрывающиеся мувики mc1 и mc2 и вставил в кадр действие:
mc1.onRelease = function() { this.swapDepths(mc2); }; mc2.onRelease = function() { this.swapDepths(mc1); }; И на сами мувики пытался. Может чтото не так делаю? подскажите пожалуйста. И как mooncar посоветовал тоже попытался: mc1.swapDepths (mc2); Просто ноль эмоций или ошибки скрипта. Насчет перекрытия более маленького большим как в той теме по ссылке к моему случаю к сожалению не подходит. |
Вложений: 1
Странно, ваш код с onRelease - это элементарный работающий пример, все должно быть нормально - см. вложение.
|
Цитата:
Как все организовать? Вам должно быть виднее. Например, вход объекта в конкретный промежуток координат. Выстройте себе стек свободных уровней первого плана и задавайте из него нужный уровень для проходящих на первом плане объектов. Почему стек? Потому что по логике орбитального движения может, например, наступить "парад планет", и тогда понадобится не один передний план, а передний фиксированный, второй фиксированный, третий фиксированный. И условие должно проверятся, какой в стеке свободный план самый верхний, его и давать. После выхода из этой определенной зоны освобождать уровень из этого стека и возвращать объект на его родной уровень, предварительно сохраненный, например в массиве. Узнать уровень можно с помощью getDepth(mc). Вот и весь алгоритм работы. |
| Часовой пояс GMT +4, время: 18:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.