делаю визуальный эфект напоминающий таблоид - массив "пикселей"-объектов, меняющих цвет или форму по какому-нибудь заданному алгоритму.
Стоило мне расставить около 3000 таких объектов и заставить их менять размер, фпс уже не поднимется выше 15.
Не думаю, что расчетов тут больше, чем, скажем, в 3д-движке, или 2д-физике.
Вывод: я делаю что-то координально неправильно)
Вопрос: Что именно? Какие подходы использовали бы Вы?
код 2х классов.

Код:
public class Main extends Sprite
{
private var radius:uint = 10;
private var tArray:Array = new Array();
private var table:Sprite = new Sprite();
private var bmd:BitmapData = new BitmapData(800, 400, true, 0x00FF33bb);//
private var bm:Bitmap = new Bitmap(bmd);
private var nullRect:Rectangle = bmd.rect;
private var frame:uint = 0 ;
private var field:Boolean = false ;
public function Main() {
fillTabloid();
addChild(table);
addChild( new Stats() )
addEventListener(Event.ENTER_FRAME, render);
}
private function render(ev = null) {
for (var i = 0; i < tArray.length;i++ ) {
tArray[i].anim(frame);
}
frame++;
}
private function fillTabloid() {
for (var i = 0; i < 80; i++) {
for (var j = 0; j < 40; j++) {
var t = new Tabl(i*radius*2, j*radius*2, radius);
table.addChild(t);
tArray.push(t);
}
}
}
}

Код:
import flash.display.Shape;
import flash.events.*;
/**
* ...
* @author DefaultUser (Tools -> Custom Arguments...)
*/
public class Tabl extends Shape
{
private var radius:uint;
private var brightness:Number;
private var offless:Number;
private var frame:uint = Math.round(Math.random() * 1000);
private var tmp:uint = 0 ;
private var color:Number = 0xFFFFFF * Math.random();
public function Tabl(xx,yy,rr) {
x = xx;
y = yy;
radius = rr;
}
public function anim(f:uint) {
var n = this.graphics;
n.clear();
var aa = (1 + Math.sin((frame + f) * 0.1)) * 0.5;
n.beginFill(color, aa);
n.drawCircle(0, 0, radius * aa);
n.endFill();
}
}