![](/img/trans.png)
[英]Actionscript 3 for Android - is there a mobile ready list view control available in Flash Builder 4.5 using Actionscript Mobile project
[英]Saving and Loading files from an Android mobile Device using Flash Actionscript 3.0
我正在为台式机和Android开发Test Maker应用。 我可以在桌面上保存和加载,但在Android上失败。 我只能保存文件,但是无法加载保存的文件。 Android设备显示“未找到文件”。 它甚至没有打开文件浏览器。 我正在执行的保存和加载类型是用户实际上可以查找并打开其项目的类型。 我目前正在使用FileReference来执行此操作。 它适用于台式机,但不适用于Android Mobile。 有人可以帮我吗?
我很确定您不能在移动设备上使用FileReference
(尽管有人错误地改正了我)。
在移动设备上,应使用File
& FileStream
类来加载/保存本地文件。
这是一个示例,您可以使用一个编译时间常数来创建(以确定是桌面还是AIR)并适当地加载到称为textfield
的文本textfield
或从中加载:
CONFIG::air {
var file:File = File.applicationStorageDirectory.resolvePath("myFile.txt");
if(file.exists){
var stream:FileStream = new FileStream();
stream.open(file, FileMode.READ);
textfield.text = stream.readUTF(); //this may need to changed depending what kind of file data you're reading
stream.close();
}else{
data = "default value"; //file doesn't exist yet
}
}
CONFIG::desktop {
//use your file reference code to populate the data variable
}
并保存:(假设您有一个要保存其文本的文本字段)
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTF(textfield.text);
fileStream.close();
除了writeUTF
(用于纯文本)外,还有其他保存方法,当与flash.net.registerClassAlias
结合使用时, writeObject
可用于保存自定义对象
文件类在flash.filesystem
包中
编辑
您可以尝试以下操作来让用户选择AIR上的位置。
var file:File = File.applicationStorageDirectory;
file.addEventListener(Event.SELECT, onFileSelected);
file.browseForOpen("Open Your File", [new FileFilter("Text Files", "*.txt")]);
function onFileSelected(e:Event):void {
var stream:FileStream = new FileStream();
stream.open(e.target as File, FileMode.READ);
textField.text = stream.readUTF();
}
var saveFile:File = File.applicationStorageDirectory.resolvePath("myFile.txt");
saveFile.addEventListener(Event.SELECT, onSaveSelect);
saveFile.browseForSave("Save Your File");
function onSaveSelect(e:Event):void {
var file:File = e.target as File;
var stream:FileStream = new FileStream();
stream.open(file, FileMode.WRITE);
stream.writeUTF(textField.text);
stream.close();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.