Привет. Вот код перемещения клипа при клике мышкой на рабочем поле в точку клика. Проблема в следующем: при столкновении с объектом клип иногда ведет себе как должен - т.е. останавливается - а иногда как будто отскакивает - т.е. резко появляется в случайном месте экрана далеко от препятствия.

Код:
_root.onMouseDown = function (){
c = this._xmouse;
d = this._ymouse;
import mx.transitions.Tween;
var a:Tween = new Tween(ball, "_x", mx.transitions.easing.None.easeNone, ball._x, c, 1, true);
var b:Tween = new Tween(ball, "_y", mx.transitions.easing.None.easeNone, ball._y, d, 1, true);
ball.onEnterFrame = function (){
if (this.hitTest(square)){
q = this._x;
w = this._y;
//trace (this._x);
//trace (this._y);
a.stop ();
b.stop ();
delete this.onEnterFrame;
if (this._x <= 300){
this._x = q - 2;
this._y = w - 2;
}
if (this._x >= 300){
this._x = q + 2;
this._y = w + 2;
}
}
}
}
В чем проблема? Или это кривые руки?
P.S.: может кто-то подскажет другой вариант поведения клипа при столкновении.
Вот исходник: