3つの別々のシンボルで構成されるムービークリップがあります。シンボルのうちの2つは、60フレームにわたってアルファトゥイーンされています。シンボルの1つはまったくトゥイーンされていません。すべてのシンボルは別々のレイヤーにあり、アクションスクリプト用のフレーム60にキーフレームがある4番目の空のレイヤーがあります。
フレーム60のアクションスクリプトは単に「stop();」です。。
ムービークリップのインスタンスをドキュメントクラスから動的にステージに追加しています。「stop();」がある場合 そこで、ムービークリップがステージに表示され、フレーム60に直接スキップし、そこで正常に停止します。
「stop();」なし そこでは、ムービークリップがアルファトゥイーンを完全に再生しますが、明らかに継続的にループします。
Event.COMPLETEを手動でディスパッチしてそれをリッスンすることも機能せず、とにかくそのようにしないことをお勧めします。
ムービークリップをステージに追加するコードは次のとおりです。
//initialize the gameplay, remove title screen.
private function initialize_gameplay():void
{
//remove the title screen
initialize_title_screen(true);
this.screen_transition_obj = new tide_out_video();
this.addChild(this.screen_transition_obj);
this.game_board = new tidepool_gameboard();
this.screen_transition_obj.addEventListener(Event.COMPLETE,swap_transition_video_for_screen);
}
//replace the current transition video with the screen it was transitioning to
private function swap_transition_video_for_screen(e:Event){
this.addChild(this.game_board);
if(this.screen_transition_obj != null){
if(this.getChildByName(this.screen_transition_obj.name)){
this.removeChild(this.screen_transition_obj);
}
this.screen_transition_obj.removeEventListener(Event.COMPLETE, swap_transition_video_for_screen);
this.screen_transition_obj = null;
}
}
ムービークリップのクラスはtidepool_gameboardであり、ムービークリップへの参照を格納するドキュメントクラスのプロパティはgame_boardです。
stop();を置く理由 ムービークリップのフレーム60で、トゥイーンせずに最後までスキップしていますか?
アップデート:
イベントリスナーの結果としてではなく、即座にムービークリップをステージに追加すると、この問題は、ムービークリップがイベントリストナーに追加された場合にのみ発生します。