2. Performance, a grafika
Generlanie zawsze nalezy korzystad z trybu GPU
Elementy graficzne powinny byc bitmapami
Grafika wektorowa, to tw坦j wr坦g
Korzystanie ze smoothing nie ma wpywu, ale po co?
Nie u甜ywamy cacheAsBitmap
Zamykanie grafiki nawet w du甜e ilosci Sprite坦w nie ma
wpywu na performance, o dziwo mo甜e j poprawid
Uproszczona i spaszczona display lista
Unikajmy tworzenia obiekt坦w w locie
3. Wsp坦dzielenie grafiki
Wszdzie gdzie to mo甜liwe korzystajmy z jednej
bitmapdata
Ogromny wpyw na performance
Do 150 obiekt坦w jednoczenie, w
pynnej, zindywidualizowanej animacji z u甜yciem
TweenMax
4. Wsp坦dzielenie animacji
poklatkowej
Unikamy metody draw na rzecz copyPixel
W przyp animacji poklatkowej, wszdzie gdzie to
mo甜liwe korzystajmy z jednej bitmapdata i wycznie
w niej manipulujemy obrazem poprzez copyPixels
W坦wczas wszystkie inne elemnty wsp坦dzielce dane
BitmapData bd animowane jednoczenie
OGROMNY wzrost prdkoci
MINUS wszystkie elementy animuj si w
jednakowym rytmie
5. Nie renderuj je甜eli nie musisz
W przypadku gdy jakikolwiek element jest akurat poza
scen visible = false
Object Pooling nie tw坦rz obiekt坦w w locie!
Nie usuwaj obiekt坦w w locie, chyba, ze na pewno ju甜 ich
nie bdziesz potrzebowa
Visible = false szybsze od removeChild();
8. Grafika wektorowa.
Tym razem przyjaciel.
public static function SpriteToBitmap(_class:*, _horizontal:Boolean =
true, _shadow:int = 0):Bitmap{
var c:*;
var bmp:Bitmap;
if(spritesArr.indexOf(_class) == -1){
generateNewBmpData();
}else{
var cn:int = spritesArr.indexOf(_class);
bmp = new Bitmap(bmDatasArr[cn]);
}
return bmp;
}
9. Grafika wektorowa.
Tym razem przyjaciel.
private static function generateNewBmpData(_class :*, _horizontal :Boolean, _shadow:int
) :void{
var rescaleR:Number = _horizontal ? RESCALE_RATIO_W: RESCALE_RATIO_H;
c = new _class();
var mat:Matrix = new Matrix()
mat.scale(rescaleR, rescaleR);
var w:Number;
var h:Number;
w = c.width*rescaleR + _shadow* rescaleR;
h = c.height*rescaleR+ _shadow* rescaleR;
var bmd:BitmapData = new BitmapData(w, h, true, 0xfff);
spritesArr.push(_class);
bmDatasArr.push(bmd);
bmd.draw(c, mat);
bmp = new Bitmap(bmd);
}
10. Inne rzeczy na kt坦re warto zwr坦cid uwag.
GPU MODE
Czas generowania
Filtry w GPU
Pamid RAM