fc2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
ActionScript3とタイムライン
前にも書いたとおりActionScript3を使い始めて、タイムライン依存の組み方は、あまりしないようにしてるんですが、そうもいかない時もあります。

デザイナーさんが上げてきたFlashアニメいっぱいの素材を組み込む時です。

それで、組み込んでたら、あるムービークリップがあって、その中のムービークリップのタイムラインの途中から、また別のムービークリップ(音がタイムラインについてる)が張ってあるのがありました。

でプレビューしてみると、音付ムービークリップが再生されて、当然音が鳴りますが、その後、その親のムービークリップ上でタイムライン1に戻って、音付のムービークリップは画面から消滅したにも関わらず、音がループして何回も鳴っている。

どうも画面から消えただけで、メモリ上では再生が続いており何回もループしてる模様。

ActionScript3的に考えると、タイムラインがすすんで、あるムービークリップが張り付いてるとaddChildと同義で、タイムラインから消える時は、removeChildと考えれば、ツジツマは合うんですが・・つまりメモリ上では普通に元気よく生きてる。

そうなると結局、タイムラインからムービークリップが消滅する時は、そのムービークリップに対してリスナーとかの処理だけじゃなく、しっかりstop()とかをかけてあげることは重要っぽい気がします。

こうなってくると、又タイムラインが同じとこ通る時に表示されるムービークリップは、さっきremoveChildされたものが、再びaddChildされてるのか、それとも別インスタンスとして新規に生成されたものがaddChildされているのかが気になります。

どっちなんでしょうね。
ムービークリップをリンケージでクラス化すると、毎回コンストラクタを通ってるようなので新規で作られてる気もします。でも前に実験した時は、通らない時もあったんですよねえ。
どうもタイムラインの位置によるというか、そのムービークリップが存在する位置より一旦移動する先が手前か奥かで別れてた気がする。それで正しいのかどうかは未確認。


同じのが張り付いてるなら、まあ心配ないですが、新規かもしれないので、とりあえず意識してガベージコレクタが働くように組む事を意識した方が良さそうです。

しかし、ActionScript3とActionScript2までとは、タイムラインの概念が大きくズレてる気がする・・・
ActionScript3に詳しくない方は、パブリッシュ設定をActionScript2にしてた方が無難な気がします。
たとえActionScriptを1行も書かなかったとしても・・・・

テーマ:Flash - ジャンル:コンピュータ

カテゴリー:Flash | TM(0) | CM(0)
次のページ