FLASH fscommand 详解
fscommand 可用性 Flash Player 3。 用法 "" ""fscommand(command,parameters) 参数
返回 无。 说明 动作;使 Flash 影片能够与 Flash Player 或承载 Flash Player 的程序(如 Web 浏览器)进行通讯。还可使用 用法 1:若要将消息发送给 Flash Player,必须使用预定义的命令和参数。下表显示可为
用法 2:若要在 Web 浏览器中使用 在 Web 浏览器中, 用法 3: 用法 4:在 Visual Basic、Visual C++ 和可承载 ActiveX 控件的其他程序中, 示例 用法 1:在下面的示例中, on(release){ fscommand("fullscreen",true); } 用法 2:下面的示例使用应用到 Flash 中按钮的 必须将一个函数添加到包含 Flash 影片的 HTML 页。此函数 function myMovie_DoFSCommand(command,args) { if (command == "messagebox") { alert(args); } } 在 Flash 文档中,将 fscommand("messagebox","This is a message box called from within Flash.") 也可以为 fscommand("messagebox","Hello," + name + ",welcome to our Web site!") 若要测试影片,请选择“文件”>“发布预览”>“HTML”。 注意:如果在 HTML“发布设置”中使用具有 FSCommand 模板的 Flash 发布影片,则自动插入 ? 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以下版本才有效 ---------------------------------------------- Flash MX中增强了安全性,它虽然也可以调用exe文件,但它是有条件的。 1.你的flash文件不能是swf,而应该是exe文件,比如jimsons.exe; 2.要在jimsons.exe同一目录中新建一命名fscommand目录,你要调用的外部可执行文件要在fscommand目录下, 且不能在子目录下,比如是notepad.exe,请copy notepad.exe到fscommand目录下; 3.action的写法为: on (release) { fscommand("exec","notepad.exe"); } 4.导出exe格式发布方法如下: 选中 File -> Publish Settings 或按ctrl+shift+F12 它默认的发布类型为HTML(.html)与Flash(.swf),你将这两项取消,选中Windows Projectors(.exe) 即可将你的Flash文件直接发布为exe可执行文件 按ctrl+F12即可发布 若你的文件尚未保存则它会发布在你flash的安装目录中 若你的文件已保存则会发布在你的文件同一目录下 还有一种比较简便的方法是: 先用 File -> Export Movie...或按Ctrl+Alt+Shift+S 导出swf文件 再打开这个文件,通过 文件 -> 创建播放器 即可产生EXE可执行文件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |