![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 2
|
Искал по форуму не смог найти, может проглядел, не судите строго. Подскажите пожалуйста как менять приоритет мувиклипа относительно его расположения? есть орбиты планет и вращающиеся по ним с разной скоростью планеты. все это в перспективе, то есть орбиты - вытянутые овалы и планеты соответственно иногда перекрывают друг друга. на ближней части орбит ближняя планета перекрывает дальнюю, на дальней (за солнцем) части орбит эта же планета уже сама должна быть перекрытой. вот суть такая. у меня конечно получается что одна планета гдебы она не была перекрывает другую. выглядит неестественно. буду благодарен.
|
|
|||||
|
Модрон-ветеринар
|
Вам нужно почитать о методе swapDepths.
То, что вы называете "приоритетом", называется уровнем или глубиной. Что-то вроде Z-индекса. Только не путайте со слоями, слои остаются в FLA-файле, в SWF-ке слоев нет. Этот метод позволяет как менять уровни мувиков между собой, так и назначать конкретный уровень мувику. Иначе говоря, метод позволяет управлять перекрытием мувиков. Вот похожая тема была, тоже объекты были, крутящиеся вокруг общего центра: http://www.flasher.ru/forum/showthread.php?t=135887 Там я привел рабочий код, которым автору нужно было заменить определенную часть в исходнике, и все хорошо работало. Последний раз редактировалось mooncar; 02.03.2010 в 16:41. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 2
|
Спасибо большое за ответ. Но к сожалению как не мучился со swapDepths так и не заработали они. Мутил в АС2. просто создал перекрывающиеся мувики mc1 и mc2 и вставил в кадр действие:
mc1.onRelease = function() { this.swapDepths(mc2); }; mc2.onRelease = function() { this.swapDepths(mc1); }; И на сами мувики пытался. Может чтото не так делаю? подскажите пожалуйста. И как mooncar посоветовал тоже попытался: mc1.swapDepths (mc2); Просто ноль эмоций или ошибки скрипта. Насчет перекрытия более маленького большим как в той теме по ссылке к моему случаю к сожалению не подходит. |
|
|||||
|
Модрон-ветеринар
|
Странно, ваш код с onRelease - это элементарный работающий пример, все должно быть нормально - см. вложение.
|
|
|||||
|
Модрон-ветеринар
|
Цитата:
Как все организовать? Вам должно быть виднее. Например, вход объекта в конкретный промежуток координат. Выстройте себе стек свободных уровней первого плана и задавайте из него нужный уровень для проходящих на первом плане объектов. Почему стек? Потому что по логике орбитального движения может, например, наступить "парад планет", и тогда понадобится не один передний план, а передний фиксированный, второй фиксированный, третий фиксированный. И условие должно проверятся, какой в стеке свободный план самый верхний, его и давать. После выхода из этой определенной зоны освобождать уровень из этого стека и возвращать объект на его родной уровень, предварительно сохраненный, например в массиве. Узнать уровень можно с помощью getDepth(mc). Вот и весь алгоритм работы. Последний раз редактировалось mooncar; 03.03.2010 в 21:56. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|