А как кинуть на форум? Вот код двух файлов:
1 (balls.fla)

Код AS3:
import flash.display.Sprite;
import flash.text.*;
stage.addEventListener(MouseEvent.CLICK,addBall);
function addBall(e:MouseEvent):void{
var ball:Ball=new Ball();
addChild(ball);
ball.x=mouseX;
ball.y=mouseY;
myText.text= Ball.allBalls.length.toString(); //Вывод длины массива в текст.
}
2 (Ball.as)

Код AS3:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.text.*;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
import flash.events.MouseEvent;
import flash.ui.Keyboard;
import flash.events.KeyboardEvent;
public class Ball extends MovieClip
{
public static var allBalls:Array = [];
var xspeed:Number = -10 + Math.random() * 20;
var yspeed:Number = -5;
var grav:Number = 1;
var radius:Number;
public var up:Boolean = false;
public var down:Boolean = false;
public var left:Boolean = false;
public var right:Boolean = false;
public function Ball()
{
var colorTransform:ColorTransform = new ColorTransform();
colorTransform.alphaMultiplier = 1;
colorTransform.redOffset = Math.random() * 4 + 7;
colorTransform.greenMultiplier = Math.random() * 3;
transform.colorTransform = colorTransform;
scaleX = scaleY = Math.random() * 0.5 + 0.5;
radius = width / 2;
allBalls.push(this);
addEventListener(Event.ENTER_FRAME,onFrame);//Слушатель событый, в каждый кадр.
}
}
public function onFrame(e:Event):void
{
yspeed += grav;
xspeed * +0.9;
y += yspeed;
x += xspeed;
rotation = x * 2;
hitBall();
hitStage();
}
public function hitBall():void
{
for (var i=0; i<allBalls.length; i++)
{
var curBall = allBalls[i];
var minDist = curBall.radius + radius;
var dist = distance(curBall);
if (curBall != this && dist < minDist)
{
var collisionDist=(dist-minDist)/2;
var dx=(curBall.x-x)/dist*collisionDist;
var dy=(curBall.y-y)/dist*collisionDist;
x += dx;
xspeed += dx;
y += dy;
yspeed += dy;
curBall.x -= dx;
curBall.xspeed -= dx;
curBall.y -= dy;
curBall.yspeed -= dy;
}
}
}
public function distance(obj:Ball):Number
{
var dx = obj.x - x;
var dy = obj.y - y;
return Math.sqrt(dx*dx+dy*dy);
}
public function hitStage():void
{
if (x > 300 - radius)
{
x = 300 - radius;
xspeed = 0;
}
if (x < radius)
{
x = radius;
xspeed = 0;
}
if (y > 300 - radius)
{
y = 300 - radius;
yspeed = - yspeed * 0.2;
xspeed = 0;
}
}
}
}
Как сделать чтобы весь массив при нажатии на стрелки поднимался или двигался по сторонам? То есть координаты .y и .x...