ActionScript3のalphaとvisibleとメモリ消費量

ちょっと実験してみた。

package pp.utils{
import flash.system.*;
public class clsSystemUtil{
public function clsSystemUtil() :void{}
public static function get memoryUsage():Number{
return Math.round(System.totalMemory/1024);
}
}
}

という感じのを使って

import pp.utils.*;
for(var i:uint=0;i<10000;i++){
var tmp=new s1;//s1はライブラリで書き出し設定済みの100*100の塗りをMC化したもの
tmp.visible=false;
addChild(tmp);
}
trace("条件名="+System.memoryUsage+"KB");

を3回ずつまわしてみたよ。
ちなみに、条件かえる毎にFlash CS4を再起動してから実行しました。

実験環境はCore2Quad Q9450(2.66GHz)/RAM 4GB/32bit Vista home/Flash Professional CS4 10.0.2

—————————————-
塗りMC10k個=31720KB
塗りMC10k個=31740KB
塗りMC10k個=31740KB
—————————————-
塗りMC10k個+visibleFalse=31736KB
塗りMC10k個+visibleFalse=31720KB
塗りMC10k個+visibleFalse=31768KB
—————————————-
0.5塗りMC10k個+visibleFalse=31736KB
0.5塗りMC10k個+visibleFalse=31748KB
0.5塗りMC10k個+visibleFalse=31800KB
—————————————-
透過0%塗りMC10k個=31796KB
透過0%塗りMC10k個=31788KB
透過0%塗りMC10k個=31760KB
—————————————-
0.5塗りMC10k個+alpha0=33128KB
0.5塗りMC10k個+alpha0=33228KB
0.5塗りMC10k個+alpha0=33204KB
—————————————-
塗りMC10k個+alpha0=33136KB
塗りMC10k個+alpha0=33236KB
塗りMC10k個+alpha0=33236KB
—————————————-

MCのalphaは重いと聞いてたけど、こんなに違うもんなんですね。
塗りは元々アルファ用の値持ってるんで軽い、と。

まとめ
(重)alpha=0>透過塗り>visible=false>なんもなし(軽)

・スクリプトでMCを配置するときにalphaをいじらないようなものはあらかじめ透過塗りにしておくべき。

・ShapeをalphaするよりDrawRect+beginFillでalphaのほうがいいのかも?(要検証)

・alpha=0にしたあとvisible=false+alpha=1にしたほうが、alpha=0のままおいておくより良いかも?(要検証)

あと、メモリ消費量的にSprite>Shapeらしいので(ActionScript 3.0 言語およびコンポーネントリファレンス:Shapeの項より)、単純に塗るときもマウスイベントとか子表示オブジェクトを使わないときはShapeできまりってことですね。

うちのiPodの音声コントロールがやばい

今日一番笑った出来事

会社帰りのこと・・・

あゆたや「(Perfumeのアルバム)GAMEを再生」
音コ「ジー↑ニアス ハ リヨウデキマセン」

あゆたや「(オィィィ…)GAMEを再生!」
音コ「イチアオヨウ(一青窈) ヲ サイセイ」

あゆたや「(まったく・・・!)GAMEを再生!!」
音コ「キンニクマン ニセイ オーピー(キン肉マンII世OP) ヲサイセイ」

あゆたや「・・・・すべてはーぶあつーいまっそー♪(遠い目)」

発音が悪いのか、振り仮名ふられてなかったのか・・・。

鷹の爪団コラボのカスペルスキー

もともとあゆたやはNOD32アンチウィルス入れてて。
ライセンスも何回か更新して今年の8月まであったんですけど。

先日旦那さんがカスペルスキーの更新切れたんですよ。
で、更新でもしようかとサイトを見に行ったら発見した、と。

で、2ライセンスパックだったと(笑

そんなわけで今2台とも鷹の爪団に守られてるもんね!みたいな。

ニコニコとかYoutubeで見るといい。
ついでにレンタルで劇場版も見てあげてください。

デラッ(ry