本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2006-07-08 · 原址 http://www.flash8.net/teach/4182.htm ← Flash 保存计划

如何使swf 文件具有读写磁盘的功能?

作者:闪吧   类型:原创   来源:闪吧

  如何使swf 文件具有读写磁盘的功能? 
这部分内容说的是,【fscommand】|【exec】命令与操作系统进行交互的用法,包括如何打开本地文件,存储文件,建立目录,打开浏览器窗口以及其它外部程序。针对MAC机和PC机使用不同的操作系统,FSCommand语句在实际写
法上不尽相同,本文以PC机为例进行说明。(MAC机中的情况不作翻译) 
适用于Windows 9X的FSCommand->exec命令详细说明: 
(注:若要将以下命令句法移植到NT/2000/Me上,不能原封不动的照搬,需要略作改动,请自行实践。) 
□存储文件到硬盘 
有时我们想要在用户的机子上留下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 。 
□删除硬盘上的文件 
通过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命令删除文件,在回收站里是看不到的被删文件的。还有,万勿用来做坏事。 
□在硬盘上新建目录 
通过执行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则可以删除硬盘上已存在的目录,提醒诸位三思
而后行。  
   责任编辑:kissall    时间:2005年8月29日

正在加载评论...