![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 8
|
Такой вопрос у меня есть два объекта они крутятся по оси создавая эфект перспективы. И в отдалении уменьшаются. Как сделать так что бы тот что уменьшился сместился на слой вниз(опустился на уровень ниже) а потом при прохождении ...._Y=200; наоборот поднялся на уровень вверх?
Прошу вопрос очень важный нужен если исходник я выложу. |
|
|||||
|
swapDepths
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Модрон-ветеринар
|
Слоев, которые используются при разработке, в самих роликах уже нет, а вот глубины (Z-индекс) - есть.
Для их смены используется метод swapDepths. Если нужно поменять мувики глубинами между собой: Можно задать нужную глубину руками: Только при всех этих операциях надо иметь ввиду, что мувики, созданные в авторской среде, имеют отрицательные глубины, а те, которые создаются программно - от 0 и выше. Так задумано, чтобы не было конфликтов. |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 8
|
Не работает. Прикладываю исходник.
Подскажите где ошибка? |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 8
|
Исходник
|
|
|||||
|
Модрон-ветеринар
|
Нужно сменить глубины и ждать до следующего нужного момента, а у вас непрерывно идет swapDepths.
В общем, в логике ваших передвижений я не стал разбираться, но решение есть: берем за основу постулат о том, что объект, который больше в вашем проекте, должен заслонять более маленький, т.е. удаленный в перспективе. Поэтому признаком смены глубин будет момент, когда _xscale, одного будет больше, чем _xscale другого. Кроме того, нужно ввести триггер того, что смена произошла, чтобы не теребить непрерывно swapDepths. И еще заранее определим свободные уровни. У вас ведь изначальный аттач происходит на уровни 1 и 2, они заняты, поэтому, во избежание, используем getNextHighestDepth(); Таким образом, получаем код: var backLevel:Number = this.getNextHighestDepth(); var frontLevel:Number = backLevel + 1; wasSwaped_1 = false ;// признаки смены глубин wasSwaped_2 = false ;// признаки смены глубин _root.onEnterFrame = function() { if (mw._xscale > mw2._xscale && !wasSwaped_1) { mw.swapDepths(frontLevel); //выходит вперед mw2.swapDepths(backLevel);//уходит назад wasSwaped_1 = true ; wasSwaped_2 = false ; } if (mw._xscale < mw2._xscale && !wasSwaped_2) { mw.swapDepths(frontLevel); mw2.swapDepths(backLevel); wasSwaped_2 = true ; wasSwaped_1 = false ; } //.... тут ваша анимация и изменение масштабирования мувиков } Последний раз редактировалось mooncar; 05.02.2010 в 16:46. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:40. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| уровень слои |
|
|