我正在开发一款需要定位闪光/空气的应用,理想情况下是html5。此应用程序具有在文件系统中写入数据的功能。 我已经开始使用Haxe / OpenFL(这是我的第一次体验)。
据我所知,flash和html5无法访问本地用户的文件系统来写入和读取数据。因此,这些版本将通过在云中存储数据来交换此功能。
但AIR总是有可能操作文件系统。 所以我现在有两个问题:
答案 0 :(得分:2)
不同的平台具有不同的实现来保存/加载用户数据。您应该#if
所有目标平台的所有可能选项
例如: -
#if cpp
import haxe.io.Eof;
import sys.FileSystem;
import sys.io.File;
import sys.io.FileOutput;
import sys.io.FileInput;
#else if flash
import flash.net.SharedObject;
import flash.net.SharedObjectFlushStatus;
import flash.events.NetStatusEvent;
#end
class FileIO {
public function SaveData() : Void {
#if cpp
var Fout : FileOutput = null;
try {
myFout = sys.io.File.write("c:\mypath\myfile.name", false);
myFout.writeInt32(100);
[.....]
#else if flash
var shObj : SharedObject = null;
try {
shObj = SharedObject.getLocal("mySHODATA");
var ret : String = shObj.flush(MinFileSize);
[......]
#end
}
}
等等。 flash AIR,长话短说只是 - 很多 - 用于桌面执行的flash包装器。想象一下它是桌面的swf容器(而不是在Web浏览器中实例化swf容器)。所以AIR-wrapped app == flash / swf app。如果你想使用AIR实现进行文件访问,可以按照these steps进行操作。
如果使用haxe,它有自己的实现针对不同的目标,即“#if”会找到“flash” “分支是真的,即使你打算用AIR包装你的flash-app;所以你必须使用sharedobject
我认为将cpp编译为桌面目标更明智,而不是稍后用“flash +环绕AIR”。
答案 1 :(得分:1)
sys.FileSystem
和sys.io
。答案 2 :(得分:1)
本指南应引导您完成使用AIR http://www.openfl.org/archive/community/installing-openfl/building-air/
发布iOS和Android的过程