0

タイトルが示すように、ファイルは正しく読み込まれますが、読み込み画面は最後にしか表示されません。

フレーム 1 でエクスポートされるのはローダー イメージだけであり、これは非常に小さいものです。

ロード中のキューがあり、ローダー イメージがそのキューの一番下にある可能性はありますか? それはプロジェクトに最後に追加されたものの 1 つだったので

4

1 に答える 1

3

ファイルがロードされた後にのみプリローダーが表示される場合、これはフレーム 1 にリンクされている他のオブジェクトがまだあることを意味します。コンパイルすると、Flash は依存関係グラフを作成して、各フレームに必要な項目を決定します。エクスポート フレーム設定よりも前にアセットが必要であると判断した場合、設定を無視してアセットをそのフレームにプッシュします。特に、ドキュメント クラスが直接参照するすべてのクラスは、自動的にフレーム 1 にヤンクされます。

[ファイル]、[パブリッシュ設定]、[Flash] の [サイズ レポートの生成] をオンにすると、フレーム 1 にエクスポートされているデータの量を確認できます。すべてが適切なフレームにリンクされていることを確認するためのヒントを次に示します。

  • パブリッシュ設定、Flash、ActionScript 設定で、「クラスのフレームをエクスポート」が 2以上に設定されていることを確認します。
  • ライブラリ シンボルのリンケージ プロパティで「フレーム 2 にエクスポート」と表示されていることを確認します。古いバージョンの Flash では、クラス エクスポート フレームに関係なく、フレーム 1 にエクスポートされる場合があります。この場合、「フレーム 1 でエクスポート」オプションのチェックを外し、これらのシンボルをフレーム 2 のタイムラインに手動でドラッグするという昔ながらの方法を実行する必要があります。
  • ドキュメント クラスまたはメイン タイムラインのクラスを直接参照しないでください。Document クラスとそれが参照するすべてのアセットは、常にフレーム 1 に配置されvar f : MyClass;ます。ドキュメント クラスまたはルート タイムラインで行う場合はいつでも、 を参照MyClassしており、Flash はそれをフレーム 1 に自動的にヤンクします。

プリローダーでメイン アプリ クラスを直接参照しないようにするには、次のようにして間接的にインスタンス化します。

var gameClass : Class = flash.utils.getDefinitionByName("Game") as Class;
var game : Sprite = new gameClass();

この場合、Preloader はドキュメント クラスになり、SWF がロードされたときに間接的に Game クラスを作成します。これにより、ゲームとそのコンテンツへの直接の参照が回避されます。

于 2012-04-07T13:33:59.937 に答える