トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     インスタンスの破棄
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
渡辺 隆彦
Åê¹ÆNo.39390
投稿日時: 2008-7-1 19:01
半人前
居住地: 東京
投稿: 33
使用環境:
Arc:MacMini(1.5G PowerPC G4)
OS :MacOSX(10.4.8)
Appli:Flash Professional 8
インスタンスの破棄
インスタンスの破棄についてお聞きいたします。

Flash Pro8でのActionScript2を使かっていた頃には
インスタンスの生成と破棄を以下のように行っていました。
("ls_fly"はリンケージです。)
//-- ActionScript2
(生成)
ig_throw = this.attachMovie("ls_fly", "is_fly", 0);

(破棄)
ig_throw.removeMovieClip();
ig_throw = null;


FlashCS3でのActionScript3で同じ事を行おうとして、以下のような
コードを記述したのですが、すぐにはインスタンスが消滅しないようです。
//-- ActionScript3
(生成)
ig_throw = new ls_fly;
this.addChildAt(ig_throw,0);

(破棄)
this.removeChild(ig_throw);
ig_throw = null;

インスタンスが消滅しないようという表現があいまいですので少し
説明いたします。
ls_flyの中にenterFrameを設定し、90回カウントした後で親にメッセージを
送るようにしました。
ActionScript2では生成してそのまま破棄すれば、メッセージは来ませんでしたが、
ActionScrip3では生成してそのまま破棄しても、メッセージが来てしまいます。
(もちろん見た目上は両方とも消えています。)

ActionScrip3では破棄というより、単にリンクリストからはずすだけのようなの
ですが、この辺の事で詳しい方がいらっしゃいましたら、「何処に記述してあります。」という情報で結構ですのでお願いいたします。

もちろんガーベジコレクションで参照がなくなれば、いずれ自動的に破棄されるの
でしょうが、
ちょっと突っ込んで調べてみたいと思い、質問させていただきました。


//環境
appli : FlashCS3
OS : Mac OSX 10.4.11
Hard : Power PC G4
野中文雄
Åê¹ÆNo.39393
投稿日時: 2008-7-1 20:43
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: インスタンスの破棄
EventDispatcher.addEventListener()メソッドでイベントリスナーを加える際に、「弱い参照」を使われていますか?もし、そうでしたら、デバッグ時にはSystem.gc()メソッドで、ガベージコレクションを強制的に発動することができます。なお、ガベージコレクションの動作やふるまいについては、以下の記事が参考になるでしょう。

akihiro kamijo「Flash Player 9 のガーベジコレクション
引用:
wata1さんは書きました:
ls_flyの中にenterFrameを設定し、90回カウントした後で親にメッセージを送るようにしました。
...[中略]...
もちろんガーベジコレクションで参照がなくなれば、いずれ自動的に破棄されるの
でしょうが、ちょっと突っ込んで調べてみたいと思い、質問させていただきました。

なお、ActionScript 2.0では、MovieClip.removeMovieClip()メソッドでインスタンスを削除すれば、変数に参照が保持されることはありません。ただし、精神衛生上よくない何かが残ります。

[デバッグ] > [変数のリストアップ]より引用:
変数 _level0.ig_throw = [ムービークリップ:<破損しています>]

しかし、それはnullを代入した場合でも同じです。

[デバッグ] > [変数のリストアップ]より引用:
変数 _level0.ig_throw = null

ActionScript 2.0では、変数を破棄するときには、delete演算子を用いた方がよいでしょう。


----------------
 

渡辺 隆彦
Åê¹ÆNo.39394
投稿日時: 2008-7-1 23:28
半人前
居住地: 東京
投稿: 33
使用環境:
Arc:MacMini(1.5G PowerPC G4)
OS :MacOSX(10.4.8)
Appli:Flash Professional 8
Re: インスタンスの破棄
野中様

お返事ありがとうございます。

1.「弱い参照」
2.System.gc()
3.akihiro kamijo「Flash Player 9 のガーベジコレクション」

参考にさせていただきます。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops