FSCommand函數用法(一)

 fscommand(cmd_string, arg_string) 
 執行主機端指令。cmd_string指定所要執行的指令名,可爲FlashPlayer的 
 指令或瀏覽器javascript函數。arg_string聲明該指令所用到的參數。 
 FlashPlayer的指令有(只能在獨立播放器時使用): 
 "fullscreen" 是否全屏播放,參數爲true或false 
 "allowscale" 是否允許通過拉伸窗口縮放影片,參數爲true或false 
 "showmenu" 是否在播放器顯示菜單,參數爲true或false 
 "trapallkeys" 是否屏蔽播放器的快捷鍵(如Esc表示停止播放並恢復 
 "save" 隱藏屬性,作用是存變量到文本文件.
 視窗顯示),參數爲true或false。但Alt+F4系統快捷 
 鍵(關閉窗口)依然可用。 
 "exec" 運行arg_string所指定的文件。

 

FSCommand語句中的exec命令可以使swf 文件具有讀寫磁盤的功能 

 這部分內容說的是,FSCommand->exec命令與操作系統進行交互的用法,包括如何打開本地文件,存儲文件,建

 立目錄,打開瀏覽器窗口以及其它外部程序。針對MAC機和PC機使用不同的操作系統,FSCommand語句在實際寫

 法上不盡相同,本文以PC機爲例進行說明。(MAC機中的情況不作翻譯) 

 適用於Windows 9X的FSCommand->exec命令詳細說明: 
 (注:若要將以下命令句法移植到NT/2000/Me上,不能原封不動的照搬,需要略作改動,請自行實踐。) 

 

1、存儲文件到硬盤 

 有時我們想要在用戶的機子上留下cookie,或在用戶的硬盤上存儲一些其它類型的信息,唯一可行的方法就是

 藉助FSCommand,它通過調用用戶Windows系統的command.com命令打開MS-DOS窗口實現文件的存儲。因爲使用

 DOS命令行的方式生成文件,所以MS-DOS窗口是必然要出現的,但在高配置機子上,這個過程一閃而過,用戶

 不易察覺。使得該命令生效的前提是,含有這個FSCommand語句的swf文件必須是在本機上運行,而不是通過網

 絡來訪問。 

 舉例:將swf文件中文本輸入框(變量名爲:textbox)的內容存到一個新創建的和swf文件位於相同目錄下的名

 爲textfile.txt的文件中,並作爲值賦給新的變量var。如下書寫FSCommand 語句: 

 打開Action面板選擇Normal模式,在語句列表中選取FSCommand語句,轉到面板下部: 
 在Command框中填寫:exec (不要複選其後的Expression複選框) 
 在Arguments框中填寫:"command.com" add chr(9) add "/c" add chr(9) add "echo" add chr(9) add 

 "var=" add textbox add ">textfile.txt" (一定要將其後的Expression複選框打上鉤!) 
 若在Expert模式下編寫,則應寫成: 
 fscommand ("exec", "command.com" add chr(9) add "/c" add chr(9) add "echo" add chr(9) add "var=" 

 add textbox add ">textfile.txt"); 

 說明:一個chr(9) 表示一個空格;/c爲command.com的參數,加上這個參數其後的命令才能被執行;>是重定向

 符,我們正是靠它將變量值寫入textfile.txt中。另外,還可指定文件存放目錄,如要在用戶桌面上建立

 textfile.txt文件,那麼將">textfile.txt"改爲">c:\\windows\\desktop\\textfile.txt" 
 【注】:\\ 是轉意字符。在Flash中,“ \ ”被當成保留關鍵字,已失去了本來的意義,所以要想顯示斜槓 \ 

 ,必須加前綴轉意符 \ ,使之是還原本來的意義,連在一起寫就成了兩個斜槓的形式。又比如,要想表示單引

 號,須寫成 \’ 這樣的形式;實現回車的效果,須用轉意符號 \r 。 

 

 2、刪除硬盤上的文件 

 通過FSCommand->exec命令還可以刪除硬盤上的文件,下面的語法只適用於Windows 9X系統。 

 舉例:將前面創建的textfile.txt刪除 

 打開Action面板選擇Normal模式,在語句列表中選取FSCommand語句,轉到面板下部: 
 在Command框中填寫:exec (不要複選其後的Expression複選框) 
 在Arguments框中填寫:"command.com" add chr(9) add "/c" add chr(9) add "del" add chr(9) add 

 "textfile.txt" (一定要將Expression複選框打上鉤!) 
 若在Expert模式下編寫,則應寫成: 
 fscommand ("exec", "command.com" add chr(9) add "/c" add chr(9) add "del" add chr(9) add 

 "textfile.txt"); 

 警告:使用這個命令要慎重,因爲是採用DOS命令刪除文件,在回收站裏是看不到的被刪文件的。還有,萬勿用來做壞事。 

 

3、在硬盤上新建目錄 

 通過執行FSCommand->exec生成的cookie若置於和所屬swf文件位於同一目錄下,容易被識別,用戶在清理系統

 垃圾時極有可能將其清除,那樣的話就失去意義了,考慮到用戶一般不會輕易刪除文件夾,我們專門新建一個

 目錄存放cookie不失爲一個好計。 

 舉例:在swf文件所在目錄下新建一個名爲textfile的子目錄 

 打開Action面板選擇Normal模式,在語句列表中選取FSCommand語句,轉到面板下部: 
 在Command框中填寫:exec (不要複選其後的Expression複選框) 
 在Arguments框中填寫:"command.com" add chr(9) add "/c" add chr(9) add "md" add chr(9) add 

 "textfile" (一定要將Expression複選框打上鉤!) 

 若在Expert模式下編寫,則應寫成: 
 fscommand("exec","command.com" add chr(9) add "/c" add chr(9) add "md" add chr(9) add "textfile" 

 說明:md是DOS命令集中用來建立目錄的專用命令;如果換成rd則可以刪除硬盤上已存在的目錄,提醒諸位三思而後行。 

 

 

用FSCommand調用EXE可執行程序

 我們都知道,調用一個可執行程序(擴展名爲.exe或.bat或.com) 和打開一個一般文件是不同的,前者可自動運

 行,而後者需要相應的可執行程序支持打開,像擴展名爲doc和pdf的文件必須由相應的可執行程序才能打開閱

 讀。分三種情況考慮: 
 ● 開啓一個外部可執行程序:擴展名.exe可以省略。具體來說,若一個exe文件(假設爲another.exe)和該

 swf文件本身在同一個目錄下,則直接鍵入程序文件名即可。如: 
 fscommand("exec","another") 
 否則,應寫明路徑。如打開IE瀏覽器窗口: 
 fscommand("exec","c:\\progra~1\\intern~1\\iexplore") 
 //注意DOS下對長文件(夾)名的處理形式。 
 下面兩種情況也可以不寫路徑—— 
 (1)當可執行程序是在c:\windows目錄下時,可以不寫路徑。如調用windows的計算器,下面三種寫法均可: 
 fscommand("exec","c:\\windows\\calc.exe") 
 fscommand("exec","c:\\windows\\calc") 
 fscommand("exec","calc") 
 (2)調用DOS命令也可省略路徑。如下例打開MS-DOS下的Edit編輯器: 
 fscommand("exec","edit.com") 
 如果熟悉批處理文件寫法,通過FSCommand->exec命令執行批處理文件可以一舉多得。 

 ● 調用默認程序打開一般文件:這種情況不能省略擴展名,同樣要注意文件路徑。比如我們要打開和該swf文

 件本身在同一個目錄下的名爲fs.htm的文件,則命令寫作: 
 fscommand("exec","start" add chr(9) add "fs.htm") 
 執行後,如果用戶機子默認的瀏覽器是IE,則自動調用IE打開這個網頁文件。 

 ● 指定程序打開一個一般文件:Windows並未規定一種類型的文件只能由一種程序打開(比如.txt文件既可以

 用記事本打開,也可以用寫字板閱讀),這就使我們可以任意選擇可用於打開一般文件的可執行程序。當然前

 提是在大多數用戶機子上都能夠找到我們所指派的可執行程序,因此實際上能選取的是那些常用的、隨windows 

 9X預裝的程序,像記事本(notepad)、寫字板(write)、IE瀏覽器(iexplorer)、command命令等等。如我們希望

 調用客戶機上的“寫字板”程序,打開一個和該swf文件本身在同一個目錄下的名爲fs.txt的文本文件,可以這

 麼寫命令: 
 fscommand("exec","c:\\windows\\write.exe" add chr(9) add "fs.txt") 

 前已述及,凡是在c:\windows目錄下的可執行程序,在書寫FSCommand->exec命令時都可以省略路徑,簡寫成:

 fscommand("exec","write" add chr(9) add "fs.txt") 也是正確的。

 以上只對FlashMX以下版本纔有效

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章