1

私はペイントアプリを作成しました。ユーザーが自分の絵を保存したい場合は、保存ボタンを押すだけでダイアログがポップアップします。

開発マシンでローカルにテストする場合は問題ありませんが、アプリがブラウザーに読み込まれると機能しません。ブラウザにローカルSWFファイルをロードしても機能しません。

次のコードは私がファイルを保存するために使用するものであり、前述のようにローカルでは正常に機能しますが、ブラウザに入るたびに機能しません。保存ダイアログがポップアップすることはありません。

助言がありますか?

var bitmapData:BitmapData = new BitmapData(canvas.width, canvas.height);
bitmapData.draw(canvas);
var jpg:JPEGEncoder = new JPEGEncoder(100);
var ba:ByteArray = jpg.encode(bitmapData);

file = new FileReference();
file.addEventListener(Event.COMPLETE, fileSaveComplete);
file.addEventListener(IOErrorEvent.IO_ERROR, error);
file.save(ba, 'FileName.jpg');

FlashPlayer 11を実行し、10.2BTWにコンパイルします。

4

1 に答える 1

5

これはセキュリティの問題です。ファイルの保存ダイアログウィンドウは、クリックなどの直接ユーザーイベントの結果としてのみ開くことができるようになりました。1つの解決策は、イメージが作成されたときにユーザーに通知し、ファイルをローカルに保存するかどうかをユーザーに尋ねることです。そして、彼が[はい]をクリックすると、saveメソッドを呼び出します。

この変更の詳細は次のとおりです。

http://www.bogdanmanate.com/2010/05/12/flex-error-2176-when-using-filereference/

お役に立てれば。良い一日を過ごしてください。

于 2012-02-15T12:57:46.283 に答える