Показать сообщение отдельно
Старый 30.08.2006, 12:08
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 4  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код:
interval = function(){
	xx=_xmouse;
	yy=_ymouse;
	if ((ball._x==xx)&&(ball._y==yy)){
		clearInterval(id);
		return;
	}//if
	ball._x+=((xx-ball._x)/10);
	ball._y+=((yy-ball._y)/10);
	updateAfterEvent();
}//interval

this.onMouseMove=function(){
	if(!id)id = setInterval (interval, 20, _root._xmouse, _root._ymouse);
}//this.onMouseMove
Что у тебя не так:
Самая главная ошибка - это передача в функцию _xmouse и _ymouse при установке таймаута. То есть когда чел начал двигать мышкой, в функцию передались координаты. И всё, они не изменятся, пока мышь не остановится и не поедет снова (произойдёт переназначение интервала, передадутся новые координаты). Отсюда и расколбас.
Ещё непонятно, зачем проверять if (ball._x > xx)...else, есть же универсальная формула (в моём примере).

А зачем задержка такая большая? Если хочешь, чтобы медленнее ездило, поставь в уравнении делитель побольше (я поставил 10), и всё будет тип-топ!
__________________
тонкий тролль, осеянный благодатью