Actionscript3.0
Adobe Flash Professional CS5
いつもお世話になっております。
独学でActionscript3.0を触っています。
基本的なことですが、調べても思っている答えが出てこないので質問させてください。
for文やシーンのジャンプなどによって、いわゆるループ処理をするたびに、「var」で生成されている変数やインスタンスはどんどん増えていくものなのでしょうか。
たとえば今私が作っているものですが
シーン2にムービークリップ「botan1」~「botan4」があります。
どれかをクリックしたら、シーン3ないし4に飛びます。行き先はランダムで決めています。
そしてシーン3・4にある「戻る」ボタンをクリックしたらシーン2に戻ってくる仕組みです。
実際に実行した場合、シーン2に
var Flag:int;
var botan1:MovieClip=new MovieClip();
botan1.addEventListener(MouseEvent.CLICK,botan1Push)
function botan1Push(e:MouseEvent){
gotoAndPlay(3);//実際はランダムに飛ぶ
trace("ボタン1が押されました");
}
//以下略
と書いてあったとして、初回実行時にFlagやムービークリップが生成され、またイベントリスナも生成されますよね。
そしてbotan1をクリック→シーン3に飛ぶ→シーン2に戻ってきたときに
新たにFlagやMC、イベントリスナは作成されたりするのでしょうか。
それとも、上書きでもされるのでしょうか。
変数やムービークリップだけでなく、「var urlReq:URLRequest=new URLRequest("URL");」などのURLリクエストやローダーについても気になります…。
AS3について調べていると、メモリ開放…とか、要らなくなったリスナはremove…とか書いてあるので、
もしシーンに戻るたびに生成されているならば、40回くらいループする上実際は上記よりももっと沢山生成するので、その容量たるや…?といった感じです。
本当に初歩的な質問で恐縮なのですが、どなたかご教授ください。。
(PrivateやPublicの違いすら分かっていません…)
No.1ベストアンサー
- 回答日時:
ActionScriptは一応、Javaの流れをくむオブジェクト指向言語ですので、不要になったオブジェクトや変数を明示的に開放する必要はありません。
システムが適当なタイミングでガベージコレクションをやってくれます。
ただし、AS3では、イベントリスナは、その対象になっているオブジェクトが消滅しても残り続けるので、明示的にremoveEventListenerで開放しなければいけません。
この仕様はバグっぽい面もあるので、のちのFlashPlayerでは改善されると思いますが。
shockatz様
ご回答ありがとうございます!
なるほど、ではイベントリスナのみ気にしておれば良いのですね。
イベントリスナ(マウスクリック)からのfunction内に、trace("ほにゃらら");を記入していると、ループ回数が増えるにつれて、出力される「ほにゃらら」の行数も増えていってしまい困っておりました。
シーン3ないし4に移るたびにイベントリスナをremoveするようにすると、問題は解決しました。
ボタン以外にもaddしっぱなしのイベントリスナがたくさんあるので、ちゃんと処理を記述していこうと思います。
わかりやすく解説してくださり、本当にありがとうございました!
おかげさまで助かりました。
しかしバグ…みたいなものなのですね。早く改善していただきたいです^-^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- アニメ ファーストガンダムを観ました。 ア・バオア・クーからキシリアが戦艦で脱出する時に、シャアがその前に立 4 2023/02/21 13:30
- JavaScript gasについて 1 2022/05/31 21:51
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
n88互換BASIC for Windows95に...
-
ダウンロードしたデジブックはa...
-
potplayerについて質問です
-
おもしろフラッシュのサイト名...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ad or script について
-
Flashplayerの運用について
-
VBAのコンボボックスの年月表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[AS3]ループするたびに変数等は...
-
シーン逆再生から再生
-
シーンの分割方法
-
A.S 3.0 キーボードでのフレー...
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
-
C#でDLLファイル読み込みを行う...
-
VBで動的に作成したパネルの上...
-
cisco catalystのトラブルシュ...
-
車の運転時のメガネ 縁なし(...
-
Flashで右クリックメニューにつ...
-
WEBブラウザの重複起動の禁止
-
WebBrowserでgoogle検索するには?
-
URLを隠す、または別アドレスな...
-
GetPrivateProfileString変値
おすすめ情報