Macromedia Flash非公式テクニカルノート MovieClip.isPlayingプロパティ
説明 MovieClipインスタンスが再生されているかどうかは、ステージに表示されていれば大抵わかります。つまり、調べなければならないのは、ステージに表示されていないときです(Adobeデベロッパーセンター「ActionScript 3.0におけるパフォーマンス向上のヒント」04「visibleとalphaとremoveChild()」の項参照)。インスタンスをステージから消すときには、原則としてタイムラインの再生を止めましょう。その理由を簡単に補足として述べます。 まず知っておかなければならないのは、「タイムラインからインスタンスがなくなっても、『ガベージコレクション』という仕組みが働くまで、オブジェクトはメモリから除かれない」(「予め配置したインスタンスの存在しないフレームに移動しても参照が消えない」[1]「ガベージコレクションはインスタンスをすぐには消さない」)ということです[*1]。 MovieClipインスタンスがメモリから消えないままループ再生でフレームアクションを実行し続けていると、予期しないエラーが起こることもあります(F-site「DisplayObjectインスタンスの削除とガベージコレクション」「表示リストからの削除」の項参照)。そうした問題を避けるには、MovieClipインスタンスのタイムラインは止めておくことが望まれます。また、ステージに表示されていなくても、アニメーションが行われていればCPUを無駄に費やします。 ガベージコレクションはすべての参照が失われたインスタンスをメモリから消します。しかし、Flashではそれだけでなく、「インスタンスが活動していないということも、ガベージコレクションが片づけるときに気づかうようです」(前出「DisplayObjectインスタンスの削除とガベージコレクション」「メモリからの削除」の項)。したがって、ガベージコレクションを速やかに働かせるためにも、もはや要らなくなったインスタンスのフレームは止めておくべきでしょう。
参考 _____ 作成者: 野中文雄 Copyright © 2001-2011 Fumio Nonaka. All rights reserved. |
||||||||||||||||||||