• 締切済み

FlashActionScriptの『bytesLoaded』について

FlashActionScriptの『bytesLoaded』について質問です。 現在、PHP+FLASHで プログレスバーを使って進捗状況を表示するアップローダーを作っています。 とりあえず完成して プログレスバーが100%になったときにアップロードが完了するようになったのですが アップローダーをテストサーバーから 本サーバーに移動したら プログレスバーと実際のアップロード完了のタイミングに 誤差が生じるようになってしまいました。 そこで質問なのですが bytesLoaded というプロパティは サーバー側にアップロードされた一時ファイルのサイズなのでしょうか? それともクライアントが送信したバイト数なのでしょうか? 分かる方いらっしゃいましたら教えてくださいませ。 よろしくお願い致します。

みんなの回答

  • mahny
  • ベストアンサー率74% (57/77)
回答No.2

クライアントが送った、または受け取ったバイト数ですので この質問への回答としては >それともクライアントが送信したバイト数なのでしょうか? ですね。 で、 >プログレスバーと実際のアップロード完了のタイミングに >誤差が生じるようになってしまいました。 については、プログレスの100%はあくまで通信だけですので クライアントから見た送受信データの後処理まで含めた完了は Event.COMPLETE で仕掛けたイベントハンドラ内です。 サーバサイドの完了を待つ場合は、 HTTPStatusEvent.HTTP_RESPONSE_STATUS で仕掛けた イベントハンドラ内でチェックします。(HTTPStatusEvent.status=200等)

ogakky
質問者

お礼

ご回答ありがとうございます。 なるほど 送信バイト数もとれるんですね。 完了時のイベントまで教えていただいて ありがとうございました!

すると、全ての回答が全文表示されます。
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.1

んあ? bytesLoadedって、一般にSWFダウンロード待ちのNowLoadingなんかに使われる値ですよね。 SWFが何バイトダウンロードされたかであって、アップロードとは何ら関係がない。 仮にファイルのアップロードに3分掛かろうが、SWFの読み込みが10秒なら、10秒でプログレスは100%に達する。 というか、アップロードされたバイト数やら、一時ファイルサイズなんてASで取れないだろ。

ogakky
質問者

お礼

ご回答ありがとうございます。 そうなんです。 調べてみると どれだけ読み込んだかという事ばかり書いてあります。 しかし アップローダーのサンプルプログラムをいろいろ覗いてみると totalとloadedのプロパティ値から現在の進捗を計算しているので あれ?サーバーサイドでどれだけ読み込んだかをとってる? と混乱してきたので質問しました。

すると、全ての回答が全文表示されます。

関連するQ&A