わかった
1ではScene
、ユーザーがボタンを押した後、Scene
2 に進みます。そこからScene
1 に戻った後、他のレイヤーのすべてのムービー クリップは null です。
これはScene
1になる私のコードです:
MovieClip(this.root).gotoAndStop(1, "Scene 1");
どうして???
わかった
1ではScene
、ユーザーがボタンを押した後、Scene
2 に進みます。そこからScene
1 に戻った後、他のレイヤーのすべてのムービー クリップは null です。
これはScene
1になる私のコードです:
MovieClip(this.root).gotoAndStop(1, "Scene 1");
どうして???
コードにタイムライン インスタンスへの参照があり、シーンを変更すると、参照が失われます。シーンを離れるとシーンのインスタンスも削除され、再び入ると再作成されます。
シーンをまったく使用せず、Flash ファイルにドキュメント クラスを使用することを検討することをお勧めします。たぶん、あなたはすでにそれを持っています。
それでもシーンを使用したい場合は、各シーンの最初のフレームに init 関数を配置します。これにより、シーン リファレンスの設定が簡単になります。
シーンとドキュメント クラスの両方を使用できます。残念ながら、その方法について十分に文書化されていません。何が起こっているのか、そしてそれを解決する方法についての情報を次に示します http://www.developria.com/2010/04/combining-the-timeline-with-oo.html。
子ムービー クリップから親を参照するべきではないことに注意してください。_root の使用は、AS2 の時代でも悪い習慣と見なされていました (たとえば、別のムービー内にムービーをロードするとすぐに壊れます)。
代わりに、子クラスからイベントをディスパッチし、それらをメイン ドキュメントでキャッチして、メイン ドキュメントに再生ヘッドを移動させます。