AS3(ActionScript3)

配列アクセスの高速化

多次元配列から要素を取り出すとき、そのほとんどがnullやundefinedである場合の話。最初はtryを使って、もしnullやundefinedならnullアクセスのエラーがでるから、それがでるってことは要素がない、というふうにやっていた for(){ var target:Obj = null; t…

try catch ではまる。var obj:Obj; → var obj:Obj = null;で完全に初期化せよ

var obj:Obj; → var obj:Obj = null;で完全に初期化せよ try catchはエラーがでない分、普段ならでるはずのnullエラーがでなくて原因がつかみにくかった。 for(){ var obj:Obj;//★0 try{ obj = arr[i][j] as Obj; }catch(err:*){ } if(obj != null){//★1 //o…

AS3 負荷対策 Shapeも大量に配置すると重くなる

Spriteを大量に配置すると、マウスイベントなんかを大量に発生させて重くするというのはなんとなくわかっていたが、Shapeも大量に配置すると重くなった。 移動させると描画するから重くなるというのはわかるが、今回は移動もさせてない。

AS3のBitmapDataに関するメモ

BitmapDataには最大サイズがある これは仕様変更を引き起こしかねない重要な制約なため、設計時に知っておく必要がある。公式docによると、 AIR 1.5 および Flash Player 10 では、BitmapData オブジェクトの最大サイズは幅または高さが 8,192 ピクセルであ…

BitmapDataをnewしても変更されない件

例えばbitmaoDataのサイズを変更するような場合、 newしなければならない。 bd = new BitmapData(8, 8, true, 0xFF00FF00); みたいに。ただ、これだけだと反映されないっぽい。 bmp.bitmapData = bd; のようにbmp.bitmapDataの参照も書き換えないとダメっぽ…