【转载】NME不同平台上读写文件的处理

原文:http://www.idearadar.org/?p=71

NME’s Pitfalls and workarounds(1): Use SharedObject over ByteArray IO

 

在nme 3.4.3中,它的ByteArray IO与filesystem相关类在不同target中表现不同,如下段代码所示,你需要用条件编译来处理它:

 

loader.data.writeFile(“xlibrary.swf”);//on iphone, it writes to app Documents/assests folder

#if iphone

var swf = new SWF(ByteArray.readFile(File.documentsDirectory.nativePath + “/assets/xlibrary.swf”));

#elseif mac

var swf = new SWF(ByteArray.readFile(“xlibrary.swf”));

#end

 

这个也可从nme带的sample 14-WriteByteArrayToFile运行有问题中体现:

On Mac, it will throw “Critical Error: Null Object Reference” when you pass the file path with a folder inside (like writeFile(“DATA/README.txt”)).
On iOS6 simulator, it keeps throws the error.
 
避免上面陷阱的方法是使用sharedobject,主要原因有二点:
1、sharedobject是标准的flash api,nme的各个target应该最优支持,filesystem不是标准的flash api,只是部分target支持。
2、目前我们的测试显示sharedobject在flash\mac\ios\android等平台target上工作正常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值