android - as3 android保存从服务器下载的文件

标签 android actionscript-3 flash air

以下代码在桌面上运行时有效,但在 Android 设备上不起作用。我认为它与下面的 FileStream 有关。

关于如何将它也保存到 Android 设备有什么想法吗?

import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.events.Event;

import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;


var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, complete_handler);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(new URLRequest("http://massmediamail.com/mp3s/Why%20a%20Protestant%20Pastor%20Beacame%20Catholic.mp3"));
//any file type;


function complete_handler(event:Event):void
{
    var data:ByteArray = event.target.data;

    var fr:FileReference = new FileReference();
    trace(File.applicationDirectory.nativePath);
    fr.save(data, 'Catholic.mp3');

    var fileStream:FileStream = new FileStream();
    trace(File.applicationDirectory.nativePath);
    fileStream.open(new File (File.applicationStorageDirectory.nativePath+"\\Catholic.mp3"),FileMode.WRITE);
    fileStream.writeBytes(data, 0, data.length);
}

这里是错误:

    Error #2044: Unhandled IOErrorEvent:. text=Error #2038: File I/O Error.
    at Untitled_fla::MainTimeline/complete_handler()[Untitled_fla.MainTimeline::frame1:25]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/onComplete()

这也是它引用的行:

fileStream.open(new File (File.applicationStorageDirectory.nativePath+"\\Catholic.mp3"),FileMode.WRITE);

最佳答案

它适用于 Android 版 Air。是的,您以后可以用它做更多事情,但这是基本的开始。

import flash.net.FileReference;

/// It can be an mp3,jpg, png, etc... just change the url
/// and the extension name. nice huh?
var yourFileLocation = "http://YourWeb.com/YourSong.mp3";
var yourFileName = "YourSong.mp3";

var daFile:FileReference = new FileReference();
daFile.download(new URLRequest(yourFileLocation), yourFileName);

我一直在努力......找到这个。我希望它能帮助很多人。为什么这不是更多的常识?有时无法找到 ActionScript 中的内容。

关于这个我有一个问题。我怎样才能让代码直接下载到设备上的某个位置,而不是用户必须选择位置。非常感谢!

关于android - as3 android保存从服务器下载的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12016090/

相关文章:

android - 将 MySurfaceView 与 main.xml (android) 一起使用

android - 如何迭代具有多个结果的连接表?

android - Adobe Air AS3 向用户显示通知

facebook - 七层 hell (Feed 问题、照片发布问题等)

flash - 如何使用 AS3 SoundMixer.computeSpectrum 找出歌曲的模式(节奏)?

JavaScript 到 Flash 并返回?

android - 禁止在 Android 中下载我的付费应用

Android 项目生命周期 - 在 Activity 生命周期 (Activity.onCreate()) 之前

javascript - 如何高效地将html5 canvas的内容导入到flash中?

javascript - 从 flash 调用 jQuery 函数