• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[AS3]ループするたびに変数等は新規生成される?)

[AS3]ループするたびに変数等は新規生成される?

このQ&Aのポイント
  • Actionscript3.0を使ってループ処理を行う際、変数やインスタンスはループするたびに新しく生成されるのか疑問です。
  • 具体的な例として、シーンのジャンプによって生成される変数やムービークリップについても触れています。
  • AS3について調べているとメモリ解放やリスナの削除に関する情報も見つけたため、生成されたインスタンスのメモリ消費についても気になっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • shockatz
  • ベストアンサー率80% (153/191)
回答No.1

ActionScriptは一応、Javaの流れをくむオブジェクト指向言語ですので、不要になったオブジェクトや変数を明示的に開放する必要はありません。 システムが適当なタイミングでガベージコレクションをやってくれます。 ただし、AS3では、イベントリスナは、その対象になっているオブジェクトが消滅しても残り続けるので、明示的にremoveEventListenerで開放しなければいけません。 この仕様はバグっぽい面もあるので、のちのFlashPlayerでは改善されると思いますが。

chuntotto
質問者

お礼

shockatz様 ご回答ありがとうございます! なるほど、ではイベントリスナのみ気にしておれば良いのですね。 イベントリスナ(マウスクリック)からのfunction内に、trace("ほにゃらら");を記入していると、ループ回数が増えるにつれて、出力される「ほにゃらら」の行数も増えていってしまい困っておりました。 シーン3ないし4に移るたびにイベントリスナをremoveするようにすると、問題は解決しました。 ボタン以外にもaddしっぱなしのイベントリスナがたくさんあるので、ちゃんと処理を記述していこうと思います。 わかりやすく解説してくださり、本当にありがとうございました! おかげさまで助かりました。 しかしバグ…みたいなものなのですね。早く改善していただきたいです^-^;

関連するQ&A