Спасибо огромное, за помощь.
Частично получилось(после нескольких десятков попыток), координаты определятся правильно. Всей логики уже не упомню, т.е сам не понимаю как работает, но работает ))
Код:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
public class Part extends MovieClip
{
var homeX:int;
var homeY:int;
var magnet:int;
var x0:int;
var y0:int;
var x1:int;
var y1:int;
var distancex:int;
var distancey:int;
var distance:int;
var powery:int;
var powerx:int;
var forcex:int;
var forcey:int;
public function Part()
{
this.addEventListener(Event.ADDED_TO_STAGE,addS);
}
function addS(e:Event):void
{
homeX=this.x;
homeY=this.y;
magnet=5000;
//Слушатель добавляем после получения ссылки на stage (после добавления на экран) и именно на stage, а не на this.
this.addEventListener(Event.ENTER_FRAME, ent_frame);
}
//Для приличия поменяем название обработчика
function ent_frame(e:Event):void
{
x0=this.x;
y0=this.y;
x1=stage.mouseX;
y1=stage.mouseY;
distancex=x1-x0;
distancey=y1-y0;
distance=Math.sqrt(distancex*distancex+distancey*distancey);
powerx=this.x-distancex/distance*magnet/distance;
powery=this.y-distancey/distance*magnet/distance;
forcex = (forcex + (homeX - x0) / 2) / 1.660000;
forcey = (forcey + (homeY - y0) / 2) / 1.660000;
this.x=powerx+forcex;
this.y=powery+forcey;
}
}
}
Но, осталась 2я проблема. Объекты не возвращаются на свои места. Т.е они не образуют прямую линию какой она была в начале, а смещаются на пару пикселей.
Это очень странно, т.к нигде в коде(вроде как) homeX и homeY не изменяются.
Приведу оригинальный эффект, и то что получилось у меня, для наглядности.