Re: [心得] AIR 存TXT檔,使用相對路徑。

作者: kochli (自由自在)   2014-05-24 22:55:09
不好意思~請問這一套方法可以套用到製作android app嗎?
有將下列程式碼更改為如下:
import idv.cjcat.filesystem.CJFile;
import flash.filesystem.*;
//預設值
var file:File = new File("app:/1.txt");
T1.text = file.nativePath;
T2.text = "科科";
//瀏覽存檔路徑
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
function B1Click(e:TouchEvent) {
file.browseForSave("存檔路徑");
}
B1.addEventListener(TouchEvent.TOUCH_TAP, B1Click);
//儲存位置選擇
function fileSelect(e:flash.events.Event)
{
T1.text = e.target.nativePath;
}
file.addEventListener(flash.events.Event.SELECT,fileSelect);
//儲存檔案
function B2Click(e:TouchEvent) {
saveTXT(T2.text,T1.text);
}
B2.addEventListener(TouchEvent.TOUCH_TAP, B2Click);
function saveTXT(str:String , path:String)
{
var file:File = new File(path);
file = new File(file.nativePath);
CJFile.saveTXT(str,file);
}
匯出成apk檔安裝在手機上後觸控功能都正常
但就是找不到目標路徑的txt檔
是這個方法只能用在windows嗎
煩請先進解惑
感謝~
※ 引述《etrexetrex (moonet)》之銘言:
: 原始檔案 & 範例檔案下載:
: http://et284vu065k3.googlepages.com/AIRSaveFlie.rar
: 此範例使用了 CJ 的 API ( CJFile )
: 在這裡謝謝 CJ 教我如何安裝AIR環境,以及如何使用 CJFile
: 這個範例包含了:
:  1.基本事件處理
:  2.File類別使用
:  3.破解 AIR 在使用相對路徑時無法寫入檔案的方法
: 1.基本事件處理
:  就是按鈕按下時要作什麼事那些
: ex:
: //瀏覽存檔路徑
: function B1Click(e:MouseEvent) {
: file.browseForSave("存檔路徑");
: }
: B1.addEventListener(MouseEvent.CLICK, B1Click);
: 2.File類別使用
:  file.browseForSave 這個函數...
: 當你選擇完存檔路徑並按下儲存時會用到事件處理
: ex:
: //儲存位置選擇
: function fileSelect(e:flash.events.Event){
: T1.text = e.target.nativePath;
: }
: file.addEventListener(flash.events.Event.SELECT,fileSelect); 
: 3.破解 AIR 在使用相對路徑時無法寫入檔案的方法
: 如果你想取得相對路徑你必須寫:
: var file:File = new File("app:/1.txt");
: 但從 app:/ 路徑產生的 File 物件是不支援寫入的
: 而從絕對路徑產生的 File 物件可以支援寫入,因此
: 我們可以利用 app:/ 取得相對路徑的絕對路徑
: 再利用絕對路徑建立一個新的 File 物件
: ex:
: var file:File = new File("app:/1.txt");
: file = new File(file.nativePath);
: == 最後附上完整程式碼 (給不想下載檔案的人看的) ==
: import idv.cjcat.filesystem.CJFile;
: import flash.filesystem.*;
: //預設值
: var file:File = new File("app:/1.txt");
: T1.text = file.nativePath;
: T2.text = "科科";
: //瀏覽存檔路徑
: function B1Click(e:MouseEvent) {
: file.browseForSave("存檔路徑");
: }
: B1.addEventListener(MouseEvent.CLICK, B1Click);
: //儲存位置選擇
: function fileSelect(e:flash.events.Event)
: {
: T1.text = e.target.nativePath;
: }
: file.addEventListener(flash.events.Event.SELECT,fileSelect);
: //儲存檔案
: function B2Click(e:MouseEvent) {
: saveTXT(T2.text,T1.text);
: }
: B2.addEventListener(MouseEvent.CLICK, B2Click);
: function saveTXT(str:String , path:String)
: {
: var file:File = new File(path);
: CJFile.saveTXT(str,file);
: }
作者: mucoci (奇寶~)   2014-05-25 12:01:00
只會用shareobject存檔...在android上正常...
作者: scars (scars)   2014-05-25 12:06:00
記得android上只能用.url 不能用.nativePath
作者: scars (scars)   2014-05-25 12:07:00
用new File(f.nativePath)來規避寫入限制的撇步 只在win有效
作者: kochli (自由自在)   2014-05-25 12:35:00
我試了.url還是無法存入txt檔

Links booklink

Contact Us: admin [ a t ] ucptt.com