
Код:
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), и всё будет тип-топ!
