3][ActionScript][Tips][野中ゼミ]ガベージコレクションは、メモリに余裕があるとなかなか発動されません。[ムービープレビュー]などのデバッグ環境とAIRであればSystem.gc()メソッドが使えます。一般のネット環境ではこのメソッドは使えません。そこで、正規サポートはされてはいない裏技をひとつご紹介します。Playerのふるまいとして、LocalConnection.connect()メソッドを2回呼出すとガベージコレクションが働くようです[*1]。つぎのフレームアクション(スクリプト001)を書いて、[ムービープレビュー]でステージをマウスクリックすればガベージコレクションにより[出力]が止まります。System.totalMemory);}ステージをクリックすると、StageオブジェクトのInteractiveObject.clickイベントに加えたリスナー関数(xStop())が裏技の処理(gcHack())を呼出してガベージコレクトします。その結果、Spriteインスタンス(mySprite)のDisplayObject.enterFrameイベントリスナー(test())がメモリから消えて[出力]は止まります。併せて、TimerオブジェクトのTimer.timerイベントリスナーが0.5秒後のメモリ使用量を確かめています(図001)。図001■クリックでガベージコレクションが働いてメモリ使用は減るなお、一般のネット環境でも動くことを確かめるため、wonderflにサンプルをアップロードしました。初めに述べたように正規サポートの機能ではありませんので、テストや実験などの範囲で使うのがよいでしょう。この記事にコメントを書く記事に対するテクニカルな質問はご遠慮ください(利用規約)。StarlingフレームワークのTweenクラスによるアニメーションStarlingフレームワーク1.3が。