суть:
На сцене размером 800 на 600 пикселей создаётся множество объектов в данном случае монетки.
При нажатии на монетку происходит проверка на пересечение с монетками на глубинах выше нажатой монетки, и если на нажатой монетке ничего не лежит то она исчезает.
Проверка на пересечение происходит через BitmapData.hitTest, так как в итоге монетки будут разных размеров и нестандартной формы.
Проблема в том, что после создания сотни монеток оперативная память загружается на 200 мб! а ведь их должно быт не одна сотня.
Если Вы подскажете как снизить этот показатель буду очень благодарен !

Код:
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Transform;
import flash.geom.ColorTransform;
import flash.geom.Point;
//количество монеток на сцене
num_mc = 100;
//здесь хранятся занятые глубины
var myBitmapDataX_array:Array = new Array();
for (i = 0; i < num_mc; i++) {
var depth:Number = this.getNextHighestDepth();
var name_money_depth:String = "mc" + String(depth);
var myBitmapDataX:BitmapData = BitmapData.loadBitmap("money");
this["myBitmapData" + depth] = new BitmapData(800, 600, true, 0x00CCCCCC);
var mc:MovieClip = this.createEmptyMovieClip(name_money_depth, depth);
mc.attachBitmap(this["myBitmapData" + depth],depth,null,true);
but_mc = mc.attachMovie("blik_mc", name_money_depth, depth + 1);
//случайные координаты для монетки
mc_y = Math.floor(Math.random() * 200) + 200;
mc_x = Math.floor(Math.random() * 300) + 300;
angle = Math.floor(Math.random() * 360);
mc_rotation = angle * 0.0174;
var myMatrix:Matrix = new Matrix();
myMatrix.rotate(mc_rotation);
var translateMatrix:Matrix = new Matrix();
translateMatrix.translate(mc_x,mc_y);
myMatrix.concat(translateMatrix);
var rectangleTrans:Transform = new Transform(but_mc);
rectangleTrans.matrix = myMatrix;
this["myBitmapData" + depth].draw(myBitmapDataX,myMatrix,null,null,null,true);
myBitmapDataX_array.push(depth);
}
... это код создающий кучку монеток