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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Нужно сменить глубины и ждать до следующего нужного момента, а у вас непрерывно идет swapDepths.
В общем, в логике ваших передвижений я не стал разбираться, но решение есть:
берем за основу постулат о том, что объект, который больше в вашем проекте, должен заслонять более маленький, т.е. удаленный в перспективе.
Поэтому признаком смены глубин будет момент, когда _xscale, одного будет больше, чем _xscale другого.
Кроме того, нужно ввести триггер того, что смена произошла, чтобы не теребить непрерывно swapDepths.
И еще заранее определим свободные уровни. У вас ведь изначальный аттач происходит на уровни 1 и 2, они заняты, поэтому, во избежание, используем getNextHighestDepth();
Таким образом, получаем код:

Код AS1/AS2:
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.