Написал простенькое приложение для проверки сохранения файла на Android устройстве, проверяю на эмуляторе - не работает.Хотя при тестировании в самой Flash - все работает и создает и записывает и читает файл.Вот код:
Код AS3:
package
{
import flash.display.MovieClip;
import com.adobe.serialization.json.JSON;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
/**
* ...
* @author Mihael
*/
public class Main extends MovieClip
{
public var im:String = "Миру";
public var im1:String = "Мир!";
public var inf:Object = {"first":[{t:im.toString()},{t:im1.toString()}]};
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
saveFile();
}
public function saveFile():void
{
var prefsFile:File = File.userDirectory;
prefsFile = prefsFile.resolvePath("preferences.txt");
var ss = JSON.encode(inf);
var fileStream:FileStream = new FileStream();
fileStream.open(prefsFile, FileMode.WRITE);
fileStream.writeObject(ss);
fileStream.close();
readObjectFromFile();
}
public function readObjectFromFile():void
{
var prefsFile:File = File.userDirectory;
prefsFile = prefsFile.resolvePath("preferences.txt");
var obj:Object;
var fileStream:FileStream = new FileStream();
fileStream.open(prefsFile, FileMode.READ);
obj = JSON.decode(fileStream.readObject());
fileStream.close();
var test:Array = [];
var mapWalls:Array = obj.first;
var len_wall:int = mapWalls.length;
for (var i:int = 0; i < len_wall; i++ )
{
var bd:Object = mapWalls[i];
trace(bd.t);
test.push(bd.t);
}
lName.text = test+'';
fName.text = "123456";
}
}
}
Подскажите, пожалуйста, что я делаю не так? может проблема в "
File.userDirectory"?
Проверяю то же приложение но без создания файла - на эмуляторе работает, в текстовое поле все выводится.