December 6, 2008

[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是檔名可自訂),完成!





Today's Visitors: 0 Total Visitors: 497
Personal Category: 工具文 Topic: technology / tech info / programming
[Trackback URL]

Reply
  • 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

  • kidgot at April 27, 2010 01:40 AM comment | prosecute
Post A Comment









Yes No



Please input the magic number:

( Prevent the annoy garbage messages )
( What if you cannot see the numbers? )
Please input the magic number

誰來收藏
Loading ...
unlog_NVPO 0