ステージに配置したシンボルのインスタンスを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