0

現在Flex3.0で作業していますが、エラーが発生します(スクリーンショットを以下に示します)。FlashPlayerバージョン10.0を使用しています

現在、HTTPServiceを呼び出していますが、そのHTTPServiceのresultHandlerで、メソッドfilereference.save()でエラーが発生しています。このメソッドは、MouseEventまたはKeyboardイベントが発生したときにのみ呼び出されるためです。

この状況を克服するための解決策はありますか、言い換えれば、ResultHandlerでfilereference.saveメソッドを呼び出すことです。

ここに画像の説明を入力してください

4

3 に答える 3

5

これは、ユーザーが実際にこれを要求した場合を除き、ユーザーが生成したイベントを介して、ファイル保存ポップアップの表示を自動的にトリガーすることができなくなったためです。この件に関する詳細情報は次のとおりです。http ://www.bogdanmanate.com/2010/05/12/flex-error-2176-when-using-filereference/

この問題は、投稿で説明されている解決策を使用して、つまり、はい/いいえアラートを使用して、ファイルの読み込みが完了し、ダウンロードの準備ができていることをユーザーに示し、最後に、ファイルの読み込みを確認するように依頼することで回避しました。ローカルに保存します。シンはユーザーフレンドリーではないと考えるかもしれませんが、それは本当にセキュリティに関するものです。そして、イベントをトリガーする方法がわかれば、このUIの問題を回避する方法を理解できます。

すてきな一日を!

于 2012-01-10T12:30:06.973 に答える
1

それはいけません。それを行うには、ユーザーのクリックボタンが必要です。MouseEventのディスパッチは役に立ちません。ロミアプローチはあなたを助けます。ただし、セキュリティ上の理由から、ボタンをクリックする必要があります。

私がしたことは、結果としてファイルの場所を取得し、htmlページのように開くことでした。その後、ダウンロードできます。ロミが言ったように、ユーザーにボタンをクリックさせる以外に解決策はありません。

var u:URLRequest = new URLRequest(event.result); 
navigateToURL(u, "_blank");
于 2012-01-10T21:15:46.540 に答える
0

別の解決策は、ファイルをサーバーに送信してから、サーバーにクライアントに返送させることです。これにより、ブラウザーの[保存/開く]ダイアログボックスが表示されます。ただし、ファイルがflexによって作成されている場合、これは帯域幅に関して理想的ではありません。

于 2012-01-10T15:59:37.207 に答える