まだロードせずにロードする予定のファイルのファイルサイズを見つける簡単な方法を探しています。私は基本的にロードする必要のあるファイルのバッチを作成しているので、合計ロードがどれくらいになるかを事前に決定できれば非常に便利です。
フラッシュ内のLoaderオブジェクトにはtotalBytesプロパティがありますが、これは、すでにファイルをロードしている場合にのみ値を返します。
まだロードせずにロードする予定のファイルのファイルサイズを見つける簡単な方法を探しています。私は基本的にロードする必要のあるファイルのバッチを作成しているので、合計ロードがどれくらいになるかを事前に決定できれば非常に便利です。
フラッシュ内のLoaderオブジェクトにはtotalBytesプロパティがありますが、これは、すでにファイルをロードしている場合にのみ値を返します。
から前にファイルのサイズを取得する方法はありませんActionscript 3
。簡単な解決策は、サーバーに小さなスクリプトを追加して、すべてのファイルをスキャンし、それらの名前とサイズを swf に (as または何でも) 返すことJSON
ですXML
。
別の (おそらくやり過ぎの) 方法は、サーバーにファイルのヘッダー (ファイルサイズを含む) を単に要求するものを作成することです。同じことは、ファイルのダウンロードを開始し、ファイルサイズがあるときにストリームを閉じるか (かなり高速である必要があります)、または (前に提案したように) サーバーにファイルのサイズを尋ねる別の方法を使用することで実現できます (次の場合に役立ちます)。複数のファイルをロードしていて、ロードする前にファイルサイズを知る必要がある場合)
特定のフォルダ内のすべてのファイルの合計サイズを取得し、データを閃光。
楽園をプリロードする旅で遭遇した大きな問題の 1 つは、Flash Player がファイル サイズに関して一貫性のない結果を生成するように見えることでした。まったく同じファイルを 2 回読み込んだとしても、Flash はそれらのサイズが異なることを教えてくれます。
これは、別の (PHP) メソッドでも問題を引き起こしました。PHP スクリプトは (一見) 正確なファイル サイズの結果を生成するため、Flash によって生成されたものとは一致せず、ローダーが 85% または 128% になり、キャッシュとフラッシュの気分:/
両方のメソッドを破棄して、bulk-loaderと呼ばれる優れたクラスを採用しました。これにより、複数のアイテムのキューロードと進行状況の追跡などが可能になります :D
swfファイルのサイズが大幅に増加することに注意してください...皮肉なことに
これを ActionScript で行う方法はありません。これを行うには、サーバー側のコードが必要です。ファイル名を受け取り、合計バイト数を返すメソッドを作成できます。
actionscript でこれを行う方法はわかりませんが (私は達人ではありません)、最初に推測するのは、PHP スクリプト (または選択した他のスクリプト言語) を使用してファイル サイズを取得し、値を返すことです。