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爲iOs下載和保存文件
- 6. 下載保存在目錄下自動文件中使用AIR
- 7. 無法使用Safari下載Adobe AIR SDK
- 8. 使用Adobe AIR下載文件的最佳方式
- 9. 可以在Adobe AIR應用程序中剖析CPU /內存嗎?
- 10. 使用Adobe AIR for mobile可以在後臺播放音樂嗎?
- 11. 我可以使用Adobe AIR創建Windows屏幕保護程序嗎?
- 12. 保存和加載iOS版本的Adobe Air中的遊戲
- 13. 我在哪裏可以下載適用於Android和Adobe AIR開發的air.app.AppEntry?
- 14. 保存所有用戶輸入到一個文件adobe flex air
- 15. 用動態名稱保存文件adobe flex air
- 16. 從Adobe AIR調用nodeJS javascript文件可能嗎?
- 17. 使用REST API和Adobe Air
- 18. 如何禁用Adobe Reader將PDF文件保存在下載中?
- 19. 使用jQuery,onclick事件和Adobe AIR
- 20. 使用Adobe AIR創建.as文件
- 21. 使用Java jar文件構建Adobe Air
- 22. 如何使用adobe AIR隱藏文件?
- 23. 使用下的Adobe AIR應用程序
- 24. Dashcode和Adobe Air
- 25. TestComplete和Adobe Air
- 26. 同一個Adobe AIR應用程序可以運行多次嗎?
- 27. 您可以解壓縮Adobe AIR應用程序嗎?
- 28. 使用Java下載並保存文件
- 29. Android硬件和Adobe AIR cont
- 30. Android硬件和Adobe AIR
感謝您的幫助,但我使用這段代碼的閃光我做了一切,以適應閃光,但沒有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