[心得] 用VB6解決flash存檔問題
使用軟體: VB6 , Flash MX
目的:
我要做一個flash的調查表,我希望每個使用者輸入資料以後,可以以他資料為名
開一個txt檔,然後使用者之候選的選項都會被存在該txt檔中以利整理
困難:Flash是有名的沒有存檔功能,在flash 5以前,可以用fscommand外部呼叫
cmd,由cmd的DOS指令去新增txt檔並儲存修改之,可是因為這功能被人拿去做病毒..
所以在flash MX以後就把這功能給縮減成很小了
flash可開出cmd,但無法輸入指令進去,使用者還得自行輸入
有人說可以用flash MX的SharedObject,不過我的MX裡找不到 囧>
而且這個東西不太直觀..好難學,外加又只能存100kB(好像可以變大)
然後也有人說可以用MMSave這指令, MMSave(變數,路徑)
可是後來發現...這功能只用在test時才有用,輸出output後就不能用了
原因可能是這個MMSave只是為了debug而存在,很像trace()
XML...我太弱了不會寫T____T
相關文章在這
fscommand http://0rz.tw/3f3dV
shareobject http://blog.xuite.net/ben19770209/ASBeginner/3514766
MMSave http://0rz.tw/653fB
存檔這種東西,在VB或C中是超簡單的,可是用這兩個寫漂亮的圖太困難...
VB又是比較淺顯易懂的物件導向,所以我就使用他叫flash試試
解決:
在經歷了一堆挫敗之後,我發現這個網頁
http://www.adobe.com/devnet/flash/articles/flash_vb.pdf
這個adobe官方網頁,很詳細的說明了存檔的方法,
使不會VB如我也可以在一個晚上就學會我的要求~
首先,去抓下VB6...(謎)
然後呢,新開一個檔案,並且在左邊的工具列中按右鍵新增component
裡面有一個Shockwave Flash,按確定,工具列上會多一個東西
把這東西拉進Form裡,會出現一方格,這方格就是你之後call flash的大小~
接著,點這個東西,在右邊有一個(Name) 把他裡面改成呼叫swf在這VB的名稱
我叫他test1好了
點兩下form,輸入以下程式碼
Private Sub Form_Load() //程式一開啟就做的事
Call test1.LoadMovie(0, "C:\flash\TEST.swf") //後面是路徑名,輸入我要的swf
End Sub
此時flash就會被抓到VB裡播放囉!
再來,flash要怎麼把資訊傳給VB咧? 用fscommand(x,y) !
當flash在VB中播放時,fscommand裡可以傳兩個值給VB,
Vb使用方法是輸入程式碼
Private Sub test_FSCommand(ByVal command As String, ByVal args As String)
此時就會定義你在flash中的x跟y,在VB中會變成變數command與args
當VB得到變數以後,就可以做很多事啦..嘿嘿嘿
就我需要的功能來說,我flash表單第一頁是給使用者輸入班級座號姓名,用這個
來命名新的txt檔,然後之後會有選項給他們選yes or NO,再把這存進txt檔中
所以程式碼如下
Private Sub forac_FSCommand(ByVal command As String, ByVal args As String)
Open command & ".txt" For Append As #1 //以command命名的txt,找不到就新創,
//Append是指說加在後面,假如是Output
Print #1, args //代表複寫,#1是這txt的暫時變數
Close
End Sub
接著把這VB發佈成exe檔就完成囉~~~
花了14天,我從不會flash不會VB變成這樣...雖然有點累但學到很多東西說:)
flash真的很好玩XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.251.57
推
11/01 16:55, , 1F
11/01 16:55, 1F