Цитата:
|
Так как сделать всем обьектам на сцене разную скорость ???
|

Код AS3:
package
{
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
private var _ballSettings:Vector.<BallSettings>;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
_ballSettings = new <BallSettings>[];
const WIDTH:int = stage.stageWidth;
const HEIGHT:int = stage.stageHeight;
for (var i:int = 0; i < 10; i++)
{
var ball:Shape = this.ball(Math.random() * 50, Math.random() * 0xFF) as Shape;
ball.x = Math.random() * WIDTH;
ball.y = Math.random() * HEIGHT;
var settings:BallSettings = new BallSettings(ball, Math.random() * 4);
_ballSettings[i] = settings;
super.addChild(ball);
}
stage.addEventListener(Event.ENTER_FRAME, stage_enterFrameHandler);
}
private function stage_enterFrameHandler(event:Event):void
{
var length:int = _ballSettings.length;
var settings:BallSettings;
var ball:DisplayObject;
var speed:int;
var direction:int;
while (length-- > 0)
{
settings = _ballSettings[length];
speed = settings.speed;
ball = settings.view;
ball.x += 1 * speed
ball.y += 1 * speed
}
}
private function ball(radius:uint, color:uint):DisplayObject
{
var ball:Shape = new Shape();
ball.graphics.beginFill(color);
ball.graphics.drawCircle(0, 0, radius);
ball.graphics.endFill();
return ball;
}
}
}

Код AS3:
package
{
import flash.display.DisplayObject;
/**
* ...
* @author
*/
public class BallSettings
{
public var view:DisplayObject;
public var speed:int;
public function BallSettings(view:DisplayObject, speed:int = 1)
{
this.view = view;
this.speed = speed;
}
}
}