AS3 Preloader Sorrows、ライブラリからシンボルをロードできません
-
19-09-2019 - |
質問
AS3 Preloaderを作成し、そのコードをフレーム1に配置しました。
それから私はシンボルを作り、それを図書館に置きました。フレーム1でエクスポートしないように設定されており、FLAの設定にはすべてのクラスがフレーム2でエクスポートされていました。フレーム2までオブジェクトへの参照はありませんでした。
その後、「フレーム1のエクスポート」ボックスがチェックされずにコンパイルするたびにフラッシュがクラッシュしました。
これを修正するために、友人はフレーム3でゲームロジックを開始することを提案したので、フレーム2を適切にロードすることを提案しました。
その後、Movieclipをロードしておらず、クラスをインスタンス化するだけであることが判明しました。繰り返しますが、これはフレーム1でエクスポートすることで修正できますが、私は本当にそれをする余裕はありません。
同じ友人は、フレーム3のステージにシンボルのインスタンスを配置し、フレーム4でゲームロジックを実行することを提案しました。
ただし、そうではありませんでした。フレーム1にエクスポートせずに、シンボル、グラフィック、すべてをすべてロードするにはどうすればよいですか?この単一のシンボルには、おそらく10〜20 MBのグラフィックが含まれるため、プリロードする必要があります。
助けてくれてありがとう!
編集:長いストーリーを短くするために、必要なのは、Movieclipを使用して使用できるようにするための何らかの方法だけです。
編集:AS3を介してMovieclipを強制ロードする方法はありますか?
解決
説明から理解するのは難しい。
新しい.flaファイルを作成し、フレーム2に大きな(10-20MB)クリップを貼り付け、エクスポートフレームを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
それは大丈夫です。そうしないと、大きなクリップをトレースした場合に備えて、ステージを無効にしようとするかもしれません。
フレーム2で:
stage.addEventListener(Event.RENDER,onRender);
stage.invalidate();
function onRender(event:Event):void{
trace(myLargeClip);
}
基本的に私が提案しているのは:
- 問題を分離します。大きなクリップが同様の、しかし簡略化されたシナリオで問題を引き起こしているかどうか、そしてその理由を確認してください。
- ステージの無効化を試してみてください。ただし、あなたのセットアップが完全には理解できないので、それは単なる野生の推測です。
HTH、ジョージ