あなたは自分のコードや fla を投稿していないので、私にできることは、自分にとって何がうまくいくかを共有することだけです。
まず、Embed は使用しません。代わりに、swc を使用してください。Embed は、アセット全体を実際にそこに入れる限り、信頼できない可能性があることがわかりました (少なくとも、私のワークフローである Flash Builder + Flash Pro でパブリッシュする場合)。
アセットを swc に配置したら、次の手順を試してください。
- エクスポート フレームをフレーム 10 (または 1 以外の任意のフレーム - フレーム 10 が好きです。「プリローダー」というラベルを読み取ることができるからです)
- 実際のコンテンツをフレーム 11 に配置します。これはさまざまな方法で構成できます。インターフェイスにプログラムするので、フレーム 11 にあるものにインスタンス名を付けてから、セッターを使用して、私の「最初のもの」がステージに配置されたことを確認します。私のメイン ドキュメント クラスは、クラスの完全な実装ではなく、インターフェイスの定義だけを知っているので、これを回避できます。そのため、メイン ドキュメント クラスが機能するためにクラスをロードする必要はありません。あなたはおそらくタイムラインを実際には使用しておらず、おそらくインターフェイスにプログラムしていないので、フレーム 11 にあるシンボルの基本クラスを、実行しようとしているもののメイン ロジックに設定するだけでしょう。
- プリローダー グラフィックスをフレーム 1 に配置します。なぜステージ参照がそれほど重要なのかわかりません。個人的には、プリローダーでロジックを使用していません。代わりに、フレーム 1 ~ 10 (および "Loading..." という単語) にまたがるスピナーを使用します。クラスがロードされている間、スピナーは回転するだけです。埋め込みフレームは、一時的な「停止」として機能し、タイムラインをそれらまで保持します。クラスがロードされました. クラスがロードされると, タイムラインはあなたが呼び出し
play()
たように動作します. したがって, それは本当に簡単です. もっと複雑にする必要がある場合は, プリローダーグラフィックスの1つにインスタンス名を付けて設定してください.そのためのゲッター/セッターのペアを作成し、セッターを使用して、ステージにアクセスするロジックをトリガーします. その時点で有効なステージがあることがほぼ保証されます.
警告: タイムライムを使用した場合、まだロードされていないフレームにジャンプしようとすると、奇妙な結果が得られます。メイン タイムラインの最後であり、メイン タイムラインは、goToAndPlay()
またはを呼び出す前にアセットで重くなっていますgoToAndStop()
。
さらに役立つかもしれないいくつかの参照: