ActionScript 3.0 setChildIndexしたあと別フレームに移動する

Flash

ステージに配置したシンボルのインスタンスをsetChildIndexで重なり順を変更したあと、gotoAndPlayやgotoAndStop等で他のフレームに移動すると、setChildIndexで指定したインスタンスが、移動先フレームに残ったままになり、様々な不具合の原因になってしまいます。

GUIでステージ上に設置したシンボルは、他のフレームに移動したときに、コード側で明示的にremoveChildしなくても、自動的に削除されますが、setChildIndexを実行するとインスタンスの状態が変化するようで明示的なremoveChildが必要になります。

コード例

 var prev_frame:uint = this.currentFrame;
 
 addEventListener(Event.ENTER_FRAME, loading);
 
 function loading(evt:Event):void
 {
     if(this.currentFrame != prev_frame)
      {
          if (this.contains(childname)) {
               this.removeChild(childname);
          }
      }
 }

他にはMOUSE_CLICKイベントやMOUSE_UPイベントでremoveChildする関数をフレームごとにaddEventListenrで登録する方法があります。

参考リンク
http://stackoverflow.com/questions/5148484/flashas3-setchildindex-problems

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です