0
A
回答
6
的URLRequest和URLLoader将允许您从互联网上获取一些数据文件流允许你保存在本地(一个FileReference如果你希望他们选择在哪里保存它)在
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="windowedapplication1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, complete_handler);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(new URLRequest("http://www.shaunhusain.com/CheckboxList/CheckboxList.swf"));
}
private function complete_handler(event:Event):void
{
var data:ByteArray = event.target.data;
var fr:FileReference = new FileReference();
fr.save(data, 'test.swf');
var fileStream:FileStream = new FileStream();
trace(File.applicationDirectory.nativePath);
fileStream.open(new File(File.applicationDirectory.nativePath+"\\test.swf"),FileMode.WRITE);
fileStream.writeBytes(data, 0, data.length);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:WindowedApplication>
编辑: AS3移动项目版本:
package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.net.FileReference;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.utils.ByteArray;
public class DownloadFileMobileAS3 extends Sprite
{
public function DownloadFileMobileAS3()
{
super();
// support autoOrients
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
createLoader();
}
protected function createLoader():void
{
// TODO Auto-generated method stub
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, complete_handler);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(new URLRequest("http://www.shaunhusain.com/CheckboxList/CheckboxList.swf"));
}
private function complete_handler(event:Event):void
{
var data:ByteArray = event.target.data;
var fr:FileReference = new FileReference();
fr.save(data, 'test.swf');
var fileStream:FileStream = new FileStream();
trace("something");
trace(File.applicationDirectory);
trace(File.applicationDirectory.nativePath);
trace(File.applicationStorageDirectory.nativePath);
fileStream.open(new File(File.applicationStorageDirectory.nativePath+"\\test.swf"),FileMode.WRITE);
fileStream.writeBytes(data, 0, data.length);
}
}
}
我在上面的代码中都包含了两个选项,您可能要么取出文件引用部分,要么取出文件流部分,否则会保存两次。
我刚刚添加了移动部分,它实际上确实有一些对话框,它会提示您在Android上保存文件,虽然这是一个我以前从未见过的对话框,只是让您可以选择在何处将其保存为音频文件,图像文件和视频文件作为选项或默认位置/mnt/sdcard/test.swf。我让它保存在那里,并能够使用ES Explorer查看它(尽管我没有很好的方法来验证数据是否完整,但通常是正确的)。一个使用applicationDirectory的人对我失败了,追踪出来我没有看到nativePath,所以我把它切换到了applicationStorageDirectory,它有一个值,它似乎保存了没有错误,不幸的是它在我的根/数据文件夹中,我的手机根深蒂固,我无法完全确认文件是否存在,但没有错误。让我知道你是否已经尝试了这个以及你还遇到了什么具体问题。
相关问题
- 1. 使用Adobe AIR下载和保存多个文件(Flash CS4 Dev)
- 2. 使用Adobe Air保存本地文件
- 3. 使用Adobe AIR下载文件
- 4. 如何使用Adobe Air下载和解压缩.ZIP文件夹?
- 5. 下载保存在目录下自动文件中使用AIR
- 6. 可以在Adobe AIR应用程序中剖析CPU /内存吗?
- 7. 使用Adobe AIR for mobile可以在后台播放音乐吗?
- 8. 我在哪里可以下载适用于Android和Adobe AIR开发的air.app.AppEntry?
- 9. 用动态名称保存文件adobe flex air
- 10. 从Adobe AIR调用nodeJS javascript文件可能吗?
- 11. 使用REST API和Adobe Air
- 12. 使用jQuery,onclick事件和Adobe AIR
- 13. 使用Adobe AIR创建.as文件
- 14. 如何使用adobe AIR隐藏文件?
- 15. 使用下的Adobe AIR应用程序
- 16. TestComplete和Adobe Air
- 17. Dashcode和Adobe Air
- 18. 您可以解压缩Adobe AIR应用程序吗?
- 19. 同一个Adobe AIR应用程序可以运行多次吗?
- 20. Android硬件和Adobe AIR
- 21. Android硬件和Adobe AIR cont
- 22. 模块可以下载文件吗?
- 23. 我可以将下载的文件保存到iphone中的NSCacheDictionary中吗?
- 24. 可以下载tgz文件而不受IE保存对话框的干扰吗?
- 25. LoaderContext和ApplicationDomain随Adobe AIR改变了吗?
- 26. 使用Adobe AIR在iOS上保存位图
- 27. 使用ASP.NET MVC,我可以使用jQuery GET和FilePathResult下载文件吗?
- 28. 在Adobe AIR中无法使用的下载链接app
- 29. 可以通过代码使用Android Adobe Air下载并运行SWF文件吗?
- 30. 使用three.js保存和加载文件
感谢您的帮助,但我使用这段代码的闪光我做了一切,以适应闪光,但没有working.If你知道如何使这个代码闪存请帮助.. – 2012-03-25 07:45:53
嘿Pabo,除了应用程序作为容器并使用创建完成事件我不认为我真的依赖于Flex中的任何工作,它应该都在Flash中可用...我将制作一个Flash移动项目并将其扔掉在那里看看我是否遇到任何问题,但我能想到的唯一的问题可能是使用文件引用,因为我不知道它在移动平台上如何工作,通常它会请求特定于操作系统的弹出窗口选择一个文件或一个位置来保存,但没有内置的文件系统浏览器,我知道在Android或iOS上。 – shaunhusain 2012-03-25 23:26:19
我更新了我的答案,同时注意到我在创建项目时选中了允许写入外部存储器,以便将其添加到-app.xml文件并最终在设备上安装apk。 – shaunhusain 2012-03-26 00:23:17