首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将文件保存到SD卡as3 Air for Android

将文件保存到SD卡as3 Air for Android
EN

Stack Overflow用户
提问于 2014-07-14 15:18:55
回答 1查看 1.7K关注 0票数 0

我正在使用ActionScript3在Air for android中制作一个android应用程序。我需要从服务器下载一个文件并将其保存到移动SD卡。以下是我的代码,文件从服务器加载,但我如何将其保存到sdcard?

代码语言:javascript
复制
import flash.filesystem.*;
var urlString:String = "http://www.mywebsite.com/xyz/myswftodownload.swf";
var urlReq:URLRequest = new URLRequest(urlString);
var urlStream:URLStream = new URLStream();
var fileData:ByteArray = new ByteArray();
urlStream.addEventListener(ProgressEvent.PROGRESS, onProgress);
urlStream.addEventListener(Event.COMPLETE, loaded);
urlStream.load(urlReq);

function loaded(event:Event):void
{
    urlStream.readBytes(fileData, 0, urlStream.bytesAvailable);
    trace("Loaded");
    urlStream.removeEventListener(ProgressEvent.PROGRESS, onProgress);
    urlStream.removeEventListener(Event.COMPLETE, loaded); 
    //NOW HOW TO SAVE THE LOADED FILE ON SDCARD??
}

function onProgress(evt:ProgressEvent):void {
var nPercent:Number = Math.round((evt.bytesLoaded / evt.bytesTotal) * 100);    
//loadingAnim.bar.scaleX = nPercent / 100;
status.text = nPercent.toString() + "%";
} 
EN

回答 1

Stack Overflow用户

发布于 2014-07-14 17:17:15

你可以这样做

代码语言:javascript
复制
//NOW HOW TO SAVE THE LOADED FILE ON SDCARD
var file:File = File.userDirectory.resolvePath("myswftodownload.swf");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();

File.userDirectory通常指向SD卡(外部存储)。但请注意,外部存储不必总是可用的(例如,当设备通过usb作为大容量存储连接时)。

在你的情况下,我会考虑使用内部存储,并使用File.applicationDirectory或File.applicationStorageDirectory来保存你的swf文件。外部存储更适合保存图像、音乐、文档等文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24731404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档