将文件保存到sdcard as3 Air for Android [英] Save file to sdcard as3 Air for Android

查看:263
本文介绍了将文件保存到sdcard as3 Air for Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



  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);

函数加载(event:Event):void
{
urlStream.readBytes(fileData,0,urlStream.bytesAvailable);
trace(Loaded);
urlStream.removeEventListener(ProgressEvent.PROGRESS,onProgress);
urlStream.removeEventListener(Event.COMPLETE,loaded);
//现在如何在SD卡上保存加载的文件?


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


解决方案

  //现在如何将加载的文件保存到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通常指向sdcard(外部存储)。但是请注意,外部存储不必一直都可用(例如,当设备通过USB连接成大容量存储设备时)。在你的情况下,我会考虑使用内部存储,而不是使用File.applicationDirectory或File.applicationStorageDirectory来保存你的swf文件。外部存储是更好的保存文件,如图像,音乐,文件..

I am making an android application in Air for android using actionscript 3. I need to download a file from the server and save it to mobile sdcard. Following is my code, the file gets loaded from the server but how do I save it on sdcard?

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() + "%";
} 

解决方案

You can do something like this

//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 usually points to the sdcard (external storage). But beware of the fact that external storage doesn't have to be available at all time (for example when device connected as mass storage by usb).

In your case i would consider using internal storage instead and use File.applicationDirectory or File.applicationStorageDirectory for saving your swf files. External storage is better for saving files like images, music, documents..

这篇关于将文件保存到sdcard as3 Air for Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆