Короче даже сорсов не надо:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.display.Shape;
import flash.events.MouseEvent;
public class Test extends MovieClip
{
var mc_1:Shape = new Shape();
var mc_2:Shape = new Shape();
public function Test()
{
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMcMove);
mc_1.graphics.lineStyle(1, 0);
mc_1.graphics.drawCircle(0, 100, 20);
mc_2.graphics.lineStyle(1, 0xff0000);
mc_2.graphics.drawCircle(400, 100, 20);
addChild(mc_2);
addChild(mc_1);
}
var last_mc_1_x:Number;
var k:int = 1;
var delta:Number = 0;
private function onMcMove(e:MouseEvent):void
{
mc_1.x = mouseX;
k = (last_mc_1_x > mc_1.x) ? 1 : -1;
delta = Math.abs(mc_1.x - last_mc_1_x);
last_mc_1_x = mc_1.x;
if (mc_1.hitTestObject(mc_2))
{
mc_2.x += delta * k;
}
}
}
}