0

AS3プリローダーを作成し、そのコードをフレーム1に配置しました。

次に、シンボルを作成して、ライブラリに配置しました。フレーム1ではエクスポートしないように設定されており、flaの設定ではすべてのクラスがフレーム2でエクスポートされていました。フレーム2まで、オブジェクトへの参照はありませんでした。

次に、[フレーム1にエクスポート]チェックボックスをオンにせずにコンパイルすると、フラッシュがクラッシュしました。

これを修正するために、友人がフレーム3でゲームロジックを開始することを提案しました。これにより、フレーム2が適切に読み込まれます。これは正常に機能しているようで、クラスは適切にインスタンス化されていました。

次に、ムービークリップをロードせず、クラスをインスタンス化するだけであることが判明しました。繰り返しになりますが、これはフレーム1でエクスポートすることで修正できますが、実際にはそれを行う余裕はありません。

同じ友人が、フレーム3のステージにシンボルのインスタンスを配置し、フレーム4でゲームロジックを実行することを提案しました。これにより、ムービークリップが適切に初期化されるとのことです。

しかし、そうではありませんでした。フレーム1にエクスポートせずに、シンボル全体、グラフィックス、およびすべてをロードするにはどうすればよいですか?この単一のシンボルには、おそらく10〜20 MBのグラフィックが含まれるため、プリロードする必要があります。

助けてくれてありがとう!

編集:長い話を短くするために必要なのは、ムービークリップをロードして、使用して表示できるようにする方法だけです。

編集:AS3を介してムービークリップを強制的にロードする方法はありますか?

4

1 に答える 1

1

説明から理解するのは難しい。

新しい.flaファイルを作成する場合は、大きい(10-20MB)クリップをフレーム2に貼り付け、エクスポートフレームを2に設定してから、フレーム1からプリロードして、フレーム2の大きいクリップのコンテンツにアクセスしてみてください。同じエラー?

フレーム1にこれがあるとしましょう。

stop();
this.loaderInfo.addEventListener(Event.COMPLETE, onComplete);

function onComplete(event:Event):void{
gotoAndStop(2);
}

フレーム2:

trace(myLargeClip);//where myLargeClip would be your 10-20MB clip

それ以外の場合は、大きなクリップをトレースしてnullが返される場合は、ステージを無効にしてみてください。

フレーム2:

stage.addEventListener(Event.RENDER,onRender);
stage.invalidate();

function onRender(event:Event):void{
trace(myLargeClip);
}

基本的に私が提案しているのは:

  1. 問題を切り分けます。大きなクリップが同様の、しかし単純化されたシナリオで問題を引き起こしているかどうか、そしてその理由を確認し、修正を取得したら、メインのflaでそれを使用します。
  2. ステージの無効化を試してみてください。ただし、セットアップが完全には理解されていないため、これは単なる推測です。

HTH、ジョージ

于 2010-02-11T00:00:24.497 に答える