Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.03.2010, 15:06
zapoi вне форума Посмотреть профиль Отправить личное сообщение для zapoi Найти все сообщения от zapoi
  № 1  
Ответить с цитированием
zapoi

Регистрация: Mar 2010
Сообщений: 2
Question Смена приоритета слоя мувиков относительно их расположения

Искал по форуму не смог найти, может проглядел, не судите строго. Подскажите пожалуйста как менять приоритет мувиклипа относительно его расположения? есть орбиты планет и вращающиеся по ним с разной скоростью планеты. все это в перспективе, то есть орбиты - вытянутые овалы и планеты соответственно иногда перекрывают друг друга. на ближней части орбит ближняя планета перекрывает дальнюю, на дальней (за солнцем) части орбит эта же планета уже сама должна быть перекрытой. вот суть такая. у меня конечно получается что одна планета гдебы она не была перекрывает другую. выглядит неестественно. буду благодарен.

Старый 02.03.2010, 16:18
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вам нужно почитать о методе swapDepths.
То, что вы называете "приоритетом", называется уровнем или глубиной. Что-то вроде Z-индекса. Только не путайте со слоями, слои остаются в FLA-файле, в SWF-ке слоев нет.
Этот метод позволяет как менять уровни мувиков между собой, так и назначать конкретный уровень мувику. Иначе говоря, метод позволяет управлять перекрытием мувиков.

Вот похожая тема была, тоже объекты были, крутящиеся вокруг общего центра:
http://www.flasher.ru/forum/showthread.php?t=135887
Там я привел рабочий код, которым автору нужно было заменить определенную часть в исходнике, и все хорошо работало.


Последний раз редактировалось mooncar; 02.03.2010 в 16:41.
Старый 03.03.2010, 12:23
zapoi вне форума Посмотреть профиль Отправить личное сообщение для zapoi Найти все сообщения от zapoi
  № 3  
Ответить с цитированием
zapoi

Регистрация: Mar 2010
Сообщений: 2
Спасибо большое за ответ. Но к сожалению как не мучился со swapDepths так и не заработали они. Мутил в АС2. просто создал перекрывающиеся мувики mc1 и mc2 и вставил в кадр действие:

mc1.onRelease = function() {
this.swapDepths(mc2);
};
mc2.onRelease = function() {
this.swapDepths(mc1);
};

И на сами мувики пытался. Может чтото не так делаю? подскажите пожалуйста.
И как mooncar посоветовал тоже попытался:

mc1.swapDepths (mc2);

Просто ноль эмоций или ошибки скрипта.
Насчет перекрытия более маленького большим как в той теме по ссылке к моему случаю к сожалению не подходит.

Старый 03.03.2010, 21:45
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Странно, ваш код с onRelease - это элементарный работающий пример, все должно быть нормально - см. вложение.
Вложения
Тип файла: rar swapDepths.rar (4.4 Кб, 46 просмотров)

Старый 03.03.2010, 21:51
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от zapoi Посмотреть сообщение
Насчет перекрытия более маленького большим как в той теме по ссылке к моему случаю к сожалению не подходит.
Все аналогично, только признаком обмена уровнями у вас должно служить что-то другое, а не то, что один больше другого. Поскольку объектов не два, а больше, вам лучше использовать не обмен уровнями, а занятие конкретных.
Как все организовать? Вам должно быть виднее. Например, вход объекта в конкретный промежуток координат. Выстройте себе стек свободных уровней первого плана и задавайте из него нужный уровень для проходящих на первом плане объектов. Почему стек? Потому что по логике орбитального движения может, например, наступить "парад планет", и тогда понадобится не один передний план, а передний фиксированный, второй фиксированный, третий фиксированный. И условие должно проверятся, какой в стеке свободный план самый верхний, его и давать. После выхода из этой определенной зоны освобождать уровень из этого стека и возвращать объект на его родной уровень, предварительно сохраненный, например в массиве. Узнать уровень можно с помощью getDepth(mc).
Вот и весь алгоритм работы.


Последний раз редактировалось mooncar; 03.03.2010 в 21:56.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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