[Flash] 寫入txt
呼...找齊這些資料外加Debug耗了我快整整兩天的時間,
希望能對大家有幫助囉!
===========================前言===========================
相信有在寫Flash的朋友們應該都知道它的一大缺點,
就是 - 只能讀取外部資料,不能寫入!!
這樣的限制著實讓人傷透腦,一個無法存檔的遊戲有誰要玩?
一個很弱的替代方案是利用sharedObject來做本機儲存,
然而它不會產生出一個儲存檔,無法帶著走,
也就是說只有在同一台電腦才有辦法讀取進度:(
既然本身做不到,看來唯一的辦法是與其他軟體結合,
在Flash5以前可以利用cmd來幫我們做寫入的動作,
之後的版本fscommand只能傳兩個參數,
fscommand("exec","cmd.exe");
結束了,沒多餘欄位將打算儲存的值給傳出去:(
也因為這樣,所以利用Flash呼叫exe檔看來是條死路,
asp等其他介面是一個方法,
而今天要教的則是一個反向思考的解.
如果...不是從Flash呼叫,而是Flash被呼叫呢?
===========================教學===========================
1)安裝VB6.0
2)進入VB6.0,開啟一個新的"標準執行檔"
3)在左手邊工具列按下右鍵,選取"設定使用元件"
4)控制項中,找到"Shockwave Flash"並打勾
5)此時左手邊工具列會多出一個按鈕"ShockwaveFlash",點下它並在Form1中圍出一個矩形
**待會就要把Flash載入這個矩形播放,自己調想要的大小**
6)點選矩形,右手邊的"屬性"視窗,找"(Name)",右邊那格改成想要的名字(這邊我使用abc)
7)右手邊的"專案"視窗中,選取Form1並按下它左上方的"檢視原始碼"
8)輸入
Private Sub Form_Load()
Call abc.LoadMovie(0, "URL")
End Sub
**其中第一行跟第三行本來就會幫你設好,只要插入中間那行即可**
**將URL改成你要載入的Flash檔的路徑,記得要先發佈成swf檔**
9)AS的部分,則是利用fscommand(A,B);來傳值給VB!
將A跟B改成你想傳的變數,
傳到VB以後,command=A;args=B;(並且這兩個變數都是string型別)
10)fscommand(A,B);相當於是呼叫了VB中的
Private Sub abc_FSCommand(ByVal command As String, ByVal args As String)
End Sub
所以只要在中間插入存檔這個動作就大功告成了!
而假如我存成txt檔,整個程式碼會長這樣↓
Private Sub abc_FSCommand(ByVal command As String, ByVal args As String)
Open "123.txt" For Output As #1 '創造一個名為123的txt檔,並設定其變數為#1
Print #1, command '將command(也就是當初傳來的A)的值寫入123.txt
Print #1, args '將args(也就是當初傳來的B)的值寫入123.txt
Close
End Sub
'下面那段是步驟8裡面輸入的
Private Sub Form_Load()
Call abc.LoadMovie(0, "URL")
End Sub
**執行的結果,創造出(或覆寫)一個叫123.txt的文字檔,裡面第一行是A的值,第二行是B的值**
**建議若是做存檔用,可把兩行Print那兩行改成以下:
Print #1, "&A=" & command & "&"
Print #1, "&B=" & args & "&"
以利之後的讀取**
11)選擇左上方"檔案"裡的"製成xxx.exe"(xxx是檔名可自訂),完成!

無標題
Sealed (Nov 10)
1樓
1樓搶頭香
不好意思我是flash的新手,最近也急需要把flash cs4中的一些變數值存
到一個文件檔做處理,有一點不太懂你的教學文章:
9)AS的部分,則是利用fscommand(A,B);來傳值給VB!
將A跟B改成你想傳的變數, ====>這裡是指一次指令可以傳兩個值嗎,
那如果我有1x個值需要傳送而且不是同時間傳送,而是我falsh裡面有
fscommand時才傳送,如何讓他文件檔裡面有超過2行的變數儲存呢? 一個
變數存一個文件檔也可,不知道方法是?
傳到VB以後,command=A;args=B; ==>這裡的意思是?
10)fscommand(A,B);相當於是呼叫了VB中的
Private Sub abc_FSCommand(ByVal command As String, ByVal args As
String) ===>這行是在vb中的程式碼嗎? vb可知道載入的flash中的
fscommand這個意思嗎
可是在flash中要將fscommand指令寫在哪呢而且怎麼用呢。
例如我有個小遊戲 裡面有個killnum(殺怪數)的int變數,想要呼叫
fscommand時把該變數存到txt檔,那利用你的方法該如何寫這段code呢?..
不好意思或許我問的問題很呆><但是這個問題亟需解決 懇請回答
或是加msn跟你請教,一定會答謝你的QQ