AS3 FileReference.save () работает при локальном тестировании, но не в браузере - PullRequest
1 голос
/ 15 февраля 2012

Я создал приложение для рисования, и когда пользователь хочет сохранить свой чертеж, он просто нажимает кнопку «Сохранить», и появляется диалоговое окно - или оно должно быть выполнено.

При локальном тестировании на компьютере разработчика это не проблема, новсякий раз, когда приложение загружается в браузер, оно не будет работать.Даже если я загружу локальный SWF-файл в браузер, он не будет работать.

Следующий код - это то, что я использую для сохранения файла, и, как было сказано, он отлично работает локально, но всякий раз, когда он входит в браузер, он не работает.'t. Диалоговое окно сохранения просто никогда не появляется.

Есть предложения?

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,2 BTW.

1 Ответ

5 голосов
/ 15 февраля 2012

Это проблема безопасности.Диалоговое окно сохранения файла теперь может быть открыто только в результате прямого пользовательского события, такого как щелчок.Одно из решений - уведомить пользователя о создании изображения и спросить, хочет ли он сохранить файл локально.И если он нажимает «да», вы вызываете метод save .

Подробнее об этом изменении:

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

Надеюсь, это поможет.Хорошего дня.

...