У вас в коде:
На сцене создаете один экземпляр класса в котором создаете дату, и в цикле создаете битмапы, в которую запихивайте ранее созданаю дату.
В моем варианте:
Я на сцене создаю дату и в цикле создаю 200 экземпляров класса, в который передаю дату, а уже внутри экземпляра создается битмапа.
Ваш вариант не проверял, но в моем варианте затратите секунду. Я скидывал ссылку можете попробовать.
Цитата:
Сообщение от derhab
да.. а вот странно, почему ваш пример не тормозит.. там явно что-то не так, а по разрозненным кускам кода трудно понять..
|
Вот код поля:

Код AS3:
package Scr{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.utils.*;
public class vrField extends vZoom {
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------- Vars
private var DrawSegSizeX:int=4000;
private var DrawSegSizeY:int=DrawSegSizeX;
private var SegSizeX:int=3700;
private var SegSizeY:int=SegSizeX;
private var SegMultiplyer:int=1;
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------- vrField
public function vrField():void {
SegSizeX*=SegMultiplyer;
SegSizeY*=SegMultiplyer;
var bd_0:BitmapData=DrawvrSeg();
for (var vY:int=0; vY<=14; vY++) {
for (var vX:int=0; vX<=14; vX++) {
var _vrSeg:vrSeg=new vrSeg(bd_0,vX,vY,DrawSegSizeX,DrawSegSizeY,SegMultiplyer);
_vrSeg.x=vX*SegSizeX;
_vrSeg.y=vY*SegSizeY;
_vrSeg.scaleX=SegMultiplyer;
_vrSeg.scaleY=SegMultiplyer;
addChild(_vrSeg);
}
}
}
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------- DrawvrSeg
private function DrawvrSeg():BitmapData {
var Canvas:Sprite=new Sprite();
addChild(Canvas);
for (var v:int=0; v<600; v++) {
var _vr:vr=new vr();
_vr.x=Math.random()*(DrawSegSizeX-_vr.width);
_vr.y=Math.random()*(DrawSegSizeY-_vr.height);
_vr.scaleX=.5;
_vr.scaleY=.5;
Canvas.addChild(_vr);
}
for (v=0; v<300; v++) {
_vr=new vr();
_vr.x=Math.random()*(DrawSegSizeX-_vr.width);
_vr.y=Math.random()*(DrawSegSizeY-_vr.height);
_vr.scaleX=.75;
_vr.scaleY=.75;
Canvas.addChild(_vr);
}
for (v=0; v<50; v++) {
_vr=new vr();
_vr.x=Math.random()*(DrawSegSizeX-_vr.width);
_vr.y=Math.random()*(DrawSegSizeY-_vr.height);
_vr.scaleX=1;
_vr.scaleY=1;
Canvas.addChild(_vr);
}
var vrPicData:BitmapData=new BitmapData(DrawSegSizeX,DrawSegSizeY,true,0x00FFFFFF);
vrPicData.draw(Canvas);
while (Canvas.numChildren>0) {
Canvas.removeChild(Canvas.getChildAt(0));
}
removeChild(Canvas);
Canvas=null;
return (vrPicData);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
}//class
}//package
Это код сегмента:

Код AS3:
package Scr{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
public class vrSeg extends Sprite {
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------- Vars
private var vrPic:Bitmap=new Bitmap();
public var CurPos:Point=new Point();
private var SegSizeX:int;
private var SegSizeY:int;
private var MultiplySegSizeX:int;
private var MultiplySegSizeY:int;
//---------------------------------------------------------------------------
//--------------------------------------------------------------------------- vrSeg
public function vrSeg(a_vrPicDate:BitmapData,a_X:int,a_Y:int,a_SegSizeX:int,a_SegSizeY:int,a_Multiply:int):void {
var vrPic:Bitmap=new Bitmap(a_vrPicDate);
addChild(vrPic);
CurPos.x=a_X;
CurPos.y=a_Y;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
}//class
}//package
Я бы скинул исходник, но он дочерта весит.