2009-04-26 9 views
0

大きな.swfファイルがあるとします。それは10MBだと言います。ユーザーがフレーム1のボタンをクリックするまで、ブラウザにファイル全体をロードさせたくありません。Flashファイル(.swf)の読み込みを停止する方法(ActionScript 3)

外部ファイルを使用したくありません。 Flash Playerで最初の10KBをダウンロードし、フレーム1を表示してから、ユーザーがボタンをクリックするまで停止するだけです。

それは可能ですか?

答えて

3

私の知る限り、swfファイル内の特定のポイントでFlash Playerの読み込みを停止する方法はありません。

外部ファイルの使用を避ける特別な理由はありますか?私はこのために小さな10KBプリローダーswfを提案しているからです。ユーザがボタンをクリックすると、flash.net.URLLoaderを使用してメインの10MB swfファイルをロードします。

+1

私はShrillと完全に同意します。 –

0

私はこれが可能ではないと思います。私が信じているムービークリップのframesLoadedプロパティを見て、ムービー全体のダウンロードが完了する前に、ユーザーがフレーム1のボタンをクリックできないことを確認できますが、実際に途中でクリップがダウンロードされるのを止めることはできません。

1

Flash Playerは、SWFファイルをストリーミング形式として扱います。これは、Flash Playerがフレーム#1のコンテンツをダウンロードした瞬間に、そのフレーム上の内容を表示し、そのフレームでコードを実行することによって、このフレームを処理することを意味します。 Flash Playerはその間にフレーム#2のダウンロードを開始します。

stop();コマンドを実行すると、再生が停止しますが、Flash Playerは残りのフレームをダウンロードし続けます。これにより、プリローダーを作成できます。最初のフレームで再生を停止し、読み込まれたSWFファイルの量と100%再生が続行されたことを監視するonEnterFrameを作成します。

あなたの質問に答えると、Flash Playerが次のフレームをダウンロードするのを止めることはできません。目的に合わせて外部のSWFファイルを使用する必要があります。

2

外部ファイルを使用しないとできません。これを外部ファイルを使用して行うには、Shrillが言ったことを実行してください。

しかし、より良い質問はなぜですか?最初のフレームが10kbの場合、最初のフレームは、10kbがロードされているファイルの再生準備ができています。

最初のフレームがロードされるまで待ってから再生することができます(残りはバックグラウンドで目に見えないようにダウンロードされます)。次に、ユーザーがボタンをクリックすると、次の2つのうちのいずれかを行います。既に完了していない場合は続行し、残りのロードプロセスを監視してから続行してください。

swfファイルはストリーミング可能な形式ですが、それを利用する上で問題はありません。

関連する問題