我正在android中使用actionscript 3制作Android应用程序。我需要从服务器下载一个文件并将其保存到移动sdcard。以下是我的代码,该文件从服务器上加载,但我如何将其保存在SD卡?
import flash.filesystem。 *; var urlString:String =www.mywebsite/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 = "www.mywebsite/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
发布评论