SWF の読み込みバーとパーセンテージを含むこれらの「読み込み中です。お待ちください」スプラッシュ スクリーンをどのように作成しますか? as3にはいくつかの組み込みメソッドがありますか、それともゼロから設計する必要がありますか?
つまり、swf ファイルがクライアントのブラウザにロードされていることをどのように検出するのでしょうか?
ああ、私はすべてのコンテンツを 1 つのフレームにのみ保存しています。純粋な as3 コード。
SWF の読み込みバーとパーセンテージを含むこれらの「読み込み中です。お待ちください」スプラッシュ スクリーンをどのように作成しますか? as3にはいくつかの組み込みメソッドがありますか、それともゼロから設計する必要がありますか?
つまり、swf ファイルがクライアントのブラウザにロードされていることをどのように検出するのでしょうか?
ああ、私はすべてのコンテンツを 1 つのフレームにのみ保存しています。純粋な as3 コード。
すべてのコードがタイムライン上にある場合、最も簡単な方法は、メインの SWF をロードするためだけに使用される 2 つ目の SWF を作成することです。メイン SWF が呼び出された場合main.swf
、ロード SWF のコードは次のようになります。
//make a loader
var loader:Loader = new Loader()
//listen for loading progress
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
//listen for when the load is finished
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
//load begins...
loader.load(new URLRequest("main.swf"));
function onProgress(event:ProgressEvent):void
{
//calculate how much has been loaded
var percentageLoader:Number = event.bytesLoaded / e.bytesTotal;
//use your percentage number here to drive a loader bar graphic
}
function onComplete(event:Event):void
{
//remove listeners now that loading is done
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
//add loaded swf to the stage
addChild(loader.content);
}
余談ですが、アセットを外部化すると、新しいプリロードの可能性が開かれます。メイン SWF にすべてを含める代わりに、メイン SWF に外部アセットをロードさせ、それらのアセットをプリロードすることができます。メイン SWF は小さいため、メイン SWF をロードするためだけに 2 つ目の SWF を用意する必要はありません。
これを行うには、いくつかの方法があります。
メインファイルにロードするだけのswfファイルを作成し、(ローダーでprogress-eventをリッスンして)進行状況を報告し、ロードしたswfを子として追加します。
または、すべてのコンテンツをフレーム 2 に配置し、フレーム 1 にとどまり、root.loaderInfo.bytesLoaded と root.loaderInfo.totalBytes の値を比較して割合を報告し、完了したらフレーム 2 に進むことができます。
個人的には、フレームで自分を汚す必要がないので、方法 1 の方が優れていると思います。
変なメタデータ タグを使用して 2 番目の方法をシミュレートする 3 番目の方法もありますが、フレームは使用しません。少し面倒ですが、グーグルで検索できるはずです。
Flash には、これを実現するために使用できる独自のコンポーネントがあります。
または、独自のプログレス バーを最初から作成することもできます。
http://www.zedia.net/2008/the-right-way-to-do-a-preloader-in-as3/
ウェブ上には、プログレス バーをカスタマイズできるリソースがたくさんあります。ブラウズして、自分のコーディング スタイルに合ったリソースを見つけてください。