アップロードの進行状況を表示しながら、複数のクライアント側で生成された画像 (ファイルではないため、FileReference を使用できません) をアプリケーションにアップロードさせようとしています。これは、本来よりもはるかに難しいことが証明されています。Cairngorm Task ライブラリを使用して、クライアントで生成されたイメージに対して次の手順を実行しています。
- ステージの領域のコンテンツを描画する BitmapData オブジェクトを生成します
- プログレスバーを表示するために、画像を JPEG として非同期的にエンコードします ( http://dgrigg.com/blog/2009/03/05/as3-jpegencoder-and-big-images/を参照) 。
- 進行状況を表示するために、イメージを非同期的にアップロードします (チャンク、http: //soenkerohde.com/2010/01/chunk-file-upload/ を参照)。
ユーザーがボタンをクリックすると、SequenceTask が開始され、エンコーディングは魅力的に機能しますが、アップロード タスクが発生すると、次のエラーで炎上します。
SecurityError: エラー #2176: ポップアップ ウィンドウを表示するアクションなど、特定のアクションは、マウスのクリックやボタンの押下など、ユーザーの操作によってのみ呼び出される場合があります。
ユーザーの介入なしに URLLoader.load アクションを開始できないため、これが発生していると思います。ユーザーがボタンをクリックしていても、物事が非同期的に発生し始めるため、このクリック イベントはオリジネーターとは見なされなくなっていると思います。
これがマウス クリックの結果であることを URLLoader に知らせる方法はありますか? これは、チャンクアップロードが機能するために不可欠です。後続のチャンクはすべて新しい URLLoader も開始するため、リファレンスのチャンクアップローダーが実際に機能するかどうかは 100% 確信が持てません。最初は単純なコードだけを実行してみるかもしれません。
アイデアをありがとう。