2008年02月06日
Comments(0)
Flash CS3 を普段なーんも考えずに使っていますけど。
なんか、アップデイトされてますね。
System.gc とかいうガーベッジコレクタを強制発動するメソッドが追加されてました。
CS3 でも使えるって知ってましたか?
僕は知りませんでした。(ダメ)
実際の製作物内に使うことは、あまりないかもしれませんが
これで挙動をチェックしたりできますね。
(そもそも、デバッグモードでしか動かないとかあるかな?)
というわけで、実験!実験!
まずは、function の中の変数は、function が終了した時点で GC の餌食になるのを見てみます。
テキトーに、test_mc というインスタンス名の MC を作って置いてください。
んで、コレ。
単純にTweenで、MCが、0から100まで動くサンプルですが
System.gc(); をコメントインすると動かなくなります。
function が最後まで流れた時点で、testTween オブジェクトが GC されるから。
グローバルに持たせておくと、GC されません。
addChild されてる、表示オブジェクトも GC されません。
(ちゃんとStageからの一連の表示リストに入ってないとアウト)
以下、TestMC クラスはライブラリ内にテキトーに作っておいて。
どうでしょう?
相変わらず、あんま役に立たなそうな情報ですが。
まぁ、自分で試してください。
UPDATE3 は、結構いろいろありますね。
Flash Player 9.0.115.0 は、大きめのリリースでして。
今後の Security Update Phase2 ってのが怖いトコロです。
別途、気が向いたら書きます。
なんか、アップデイトされてますね。
System.gc とかいうガーベッジコレクタを強制発動するメソッドが追加されてました。
CS3 でも使えるって知ってましたか?
僕は知りませんでした。(ダメ)
実際の製作物内に使うことは、あまりないかもしれませんが
これで挙動をチェックしたりできますね。
(そもそも、デバッグモードでしか動かないとかあるかな?)
というわけで、実験!実験!
まずは、function の中の変数は、function が終了した時点で GC の餌食になるのを見てみます。
テキトーに、test_mc というインスタンス名の MC を作って置いてください。
んで、コレ。
import fl.transitions.Tween;
import fl.transitions.easing.None;
var testTween:Tween;
GCdemo();
// System.gc();
function GCdemo():void {
var testTween:Tween =
new Tween(test_mc,'y',None.easeNone,0,100,1,true);
}
単純にTweenで、MCが、0から100まで動くサンプルですが
System.gc(); をコメントインすると動かなくなります。
function が最後まで流れた時点で、testTween オブジェクトが GC されるから。
グローバルに持たせておくと、GC されません。
import fl.transitions.Tween;
import fl.transitions.easing.None;
var testTween:Tween = GCdemo();
System.gc();
function GCdemo():Tween {
return(new Tween(test_mc,'y',None.easeNone,0,100,1,true));
}
addChild されてる、表示オブジェクトも GC されません。
(ちゃんとStageからの一連の表示リストに入ってないとアウト)
以下、TestMC クラスはライブラリ内にテキトーに作っておいて。
GCdemo();
System.gc();
function GCdemo():void {
var testMC:TestMC = new TestMC();
addChild(testMC);
}
どうでしょう?
相変わらず、あんま役に立たなそうな情報ですが。
まぁ、自分で試してください。
UPDATE3 は、結構いろいろありますね。
Flash Player 9.0.115.0 は、大きめのリリースでして。
今後の Security Update Phase2 ってのが怖いトコロです。
別途、気が向いたら書きます。
(00:42)

