PDA

Просмотр полной версии : Плавное движение к определенной точке (а не повсюду за курсором)


TaNda
06.05.2010, 02:38
Очень нужна ваша помощь!

Как преобразовать код плавного движения за курсором в такое:

Объект находится в определенном месте. При клике мыши в точке экрана, объект перемещается туда и останавливается (и исчезает). Не бегает за курсором дальше.

Исходник у меня такой) Самой не выделить нужное( То есть все хорошо, из исходного местоположения по клику мышки отправить его на место клика просто, но потом он начинает бегать за курсором)

function moveClip(){
var speedMove:Number;
var numLength:Number;
var numMaxLength:Number=Math.sqrt(Math.pow(Stage.width,2)+Math.pow(Stage.height,2));
var rotation:Number=Math.atan2(_ymouse-clip._y,_xmouse-clip._x)+Math.PI/2;
clip._rotation=(rotation/Math.PI)*180;
numLength=Math.sqrt(Math.pow(clip._x-_xmouse,2)+Math.pow(clip._y-_ymouse,2));
speedMove=10*(numLength/numMaxLength);
clip._x+=Math.sin(rotation)*speedMove;
clip._y-=Math.cos(rotation)*speedMove;
updateAfterEvent();
}

timer=setInterval(moveClip,1);

udaaff
06.05.2010, 04:19
Используйте твин какой-нибудь и не мучайтесь.

mooncar
06.05.2010, 10:09
import mx.transitions.Tween;
import mx.transitions.easing.*;

hunter_mc.onMouseUp = function () {
hunterMovieX = new Tween(this, '_x', None.easeNone, this._x, _xmouse, 0.5, true);
hunterMovieY = new Tween(this, '_y', None.easeNone, this._y, _ymouse, 0.5, true);
hunterMovieX.onMotionFinished = endMotion;
};

function endMotion () {
hunterAlphaOff = new Tween(hunter_mc, '_alpha', None.easeNone, hunter_mc._alpha, 0, 0.5, true);
delete hunter_mc.onMouseUp ;
}

где hunter_mc - данный объект