Приведенный ниже код прекрасно компилируется в Flex 4 SDK в Fedora 15. Щелчок мышью открывает диалоговое окно, я нажимаю «ОК», и файл сохраняется, , но файл пуст .Я запускаю тот же SWF-файл (который был скомпилирован на компьютере с Linux) на компьютере с Windows, и созданный файл содержит ожидаемые данные.
Затем я разбил объявление FileReference из функции на уровень класса,в надежде избежать известной ошибки , но та же проблема сохраняется.
В надежде настроить обходной путь, я добавил в свой путь отладочный проигрыватель Flash и запустил файл из Flash без пользыбраузера, и он работает .Так что теперь проблема с Flex стала проблемой Firefox, возможно, из-за теневой процедуры , которую я использовал для установки плагина , не понимая, что происходит.Я использую Firefox 5.0.
По сути, мой рабочий процесс исправлен, но, возможно, люди, выполнившие вышеперечисленное, не смогут использовать проекты с FileReference.save ()?Должен ли я беспокоиться об этом крайнем случае?
/*
WriteTheFile.as
Original code by Brian Hodge (brian@hodgedev.com)
Test to see if ActionScript/Flash can write files
*/
package{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.ByteArray;
import flash.net.FileReference;
public class WriteTheFile extends Sprite
{
private var _xml:String;
private var fr:FileReference;
public function WriteTheFile():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
//Calling the save method requires user interaction and Flash Player 10
stage.addEventListener(MouseEvent.MOUSE_DOWN, _onMouseDown);
}
private function _onMouseDown(e:MouseEvent):void
{
fr = new FileReference()
fr.save("<xml><test>data</test></xml>", "filename.txt");
}
}
}
РЕДАКТИРОВАТЬ: отсутствовала строка, зафиксированная выше
РЕДАКТИРОВАТЬ: адресный ответ в коде выше, но та же проблема существует.
РЕДАКТИРОВАТЬ: Это работает в той же системе, когда вызывается автономный игрок.Поэтому это проблема с плагином для браузера (FF 5.0).