база

Код AS3:
package test {
/* IMPORT *///{ /
import flash.display.*;
import flash.events.*;
//}
public class Move extends Sprite {
/* - VAR PRIVATE *///{ /
private var _arrayBall:Array = new Array ();
private var _zoom:int = 3;
//}
/* * CONSTRUCTOR * *///{ /
public function Move () {
init ();
stage.addEventListener (MouseEvent.MOUSE_MOVE, onMouseMove);
}
//}
/* INIT *///{ /
private function init ():void {
var step:int = 50;
for (var i:int = 0; i < 4; i++) {
for (var j:int = 0; j < 2; j++) {
var obj:Object = new Object ();
var ball:Sprite = new Sprite ();
ball.graphics.beginFill (0xFF0000, .5);
ball.graphics.drawCircle (0, 0, 20);
ball.graphics.endFill ();
ball.rotation = Math.random () * 180 - 90;
ball.x = 100 + i * step;
ball.y = 100 + j * step;
addChild (ball);
_arrayBall.push ({ball:ball, x0: ball.x, y0: ball.y});
}
}
}
//}
/* EVENT *///{ /
private function onMouseMove (event:MouseEvent):void {
for (var i:int = 0; i < 8; i++) {
var obj:Object = _arrayBall[i];
var ball:Sprite = obj.ball as Sprite;
var dx:Number = obj.x0 - mouseX;
var dy:Number = obj.y0 - mouseY;
var distance:Number = Math.sqrt (Math.pow (dx, 2) + Math.pow (dy, 2));
if (distance < 80) {
var angle:Number = Math.atan2 (dy, dx);
ball.x = obj.x0 + Math.cos (angle) * (100 - distance) / _zoom;
ball.y = obj.y0 + Math.sin (angle) * (100 - distance) / _zoom;
} else {
ball.x = obj.x0;
ball.y = obj.y0;
}
}
}
//}
}
}
}