`
happear
  • 浏览: 47178 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

FSCommand函数用法(一)

    博客分类:
  • AS3
阅读更多

 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以下版本才有效

分享到:
评论
2 楼 ezwuhai 2013-05-18  
我也想问楼上的问题,求大牛讲解下。
我的邮箱ezwuhai@163.com
1 楼 wuyuanjiayan 2012-08-12  
Hi Hapear,

看了你的这几篇文章, 收获很多,看的出来, 你是web编程, 数据库和flash方面的专家。 我最近需要一个辅助功能, 用flash来完成, 但是我自己对于flash一窍不通,能得到你的帮助吗?

我的需求是将数据库中取出的数据在flash中展示出来,然后从flash中录入数据存入数据库。我能想到的是将数据库中的数据生成xml传入flash,但是不知道怎么从flash中将数据返回。

我的邮箱wuyuanjiayan@163.com, qq:276158128
期待你的回复。

相关推荐

    fsCommand的用法

    这个是在flash在vc里面使用,极为方便。就是在上面加载一个控件就可以直接用了。

    fscommand命令控制

    fscommand命令控制Flash课件的播放

    在ActinScript中fscommand的实现全屏和退出以及关闭功能

    在ActinScript3.0中fscommand的实现全屏和退出以及关闭功能,这是实现了基本功能,很重要呀。

    Flash(AS3)与JS相互调用

    自制的,两个简单实例实现Flash与JS的相互调用与传值,仅实现基本功能,可在此原理基础上对函数进行拓展,例如使用Flash封装网页数据等。 在AS代码中附有简单注释解释程序。 ======== 简 单 介 绍 ======== 1、...

    vb6.0与as3.0互交 双向

    vb动态加载ShockwaveFlash控件,解决了静态加载无法保存问题 flash利用ExternalInterface类创建外部函数以及通过fscommand发送参数 vb使用带事件定义变量。 完成 flash与vb的双向通信。

    全国计算机等级考试上机考试题库(完全版)\fscommand\cpp_setup.exe

    全国计算机等级考试上机考试题库(完全版)\fscommand\cpp_setup.exe

    易语言与FLASH交互

    易语言与FLASH交互源码,与FLASH交互,回应数据,取左边的文本,取右边的文本

    首页滚动新闻栏目下载

     - delete 删除一个物件(Object)中的变量  - do while do while循环  - duplicateMovieClip 复制MC  - else 否则(与if联用)  - else if 否则如果(与if联用)  - evaluate 调用自己写的函数(Function...

    flash javascript之间的通讯方法小结

    不用getURL和fsCommand方法 flash使用的actionscript跟javascript是非常相通的,下面描述如何互相调用函数: 1:javascript调用flash中的函数 在flash的脚本中增加 import flash.external.ExternalInterface;...

    自己写的VC与Flash通信方案(顺便包含Delphi Flash测试案例)

    分数就这么多吧,代码其实很简单。但能给你一些想法,还是有点价值的,如果你还不知道怎么用VC与flash通信,那么本...flash端采用fscommand函数 VC端采用xml方式 备注: 因为是activex控件,因此也给出delphi的测试。

    flash与c++交互的方法

    VC的做法: 1 添加一个控件 shockwave flash ...3 添加调用flash内部函数的方法 Flash的做法: 1 添加脚本显示效果 2 添加fscommand测试 3 添加可以提供外部调用的函数 代码如下,可以提供参考:

    flash打包工具

    设置exe图标不受图标格式的限制,并且支持从其他exe/dll文件中提取图标使用。 可选择是否加密被打包的文件,防止文件被破解提取。 支持FLV视频文件。 支持外调exe或打开其他文件,且不受目录限制。 标准版支持...

    Javascript与flash交互通信基础教程

    使用Flash的fscommand Flash 到 Flash的通信———-使用本地连接对象或综合上2种技术 并不是所有的浏览器都很重视脚本.为了和Flash播放器通信,浏览器必须有内置的钩子以便Flash播放器可以’监听’.浏览器必须是...

    AS3与JS交互通信(使用swfObject插入Flash)

    3、使用Flash中的ExternalInterface.call方法和fscommand方法对JS进行调用与传送数据。 4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的函数。 包含swfobject.js与fla源文件。 (*...

    ActionScript开发技术大全

    24.4.1使用fscommand()函数 535 24.4.2fscommad()函数示例 537 24.5小结 539 第25章FlashPlayer的安全特性 540 25.1安全性概述 540 25.1.1权限管控模型 540 25.1.2安全沙箱模型 541 25.2系统管理员管控 543 25.2.1...

    我的第一个as3应用

    NULL 博文链接:https://shake863.iteye.com/blog/364804

    flash shiti

    如果X为一字符串,则函数将X解释为一个指数形式的十进制数; D. 如果X未定义,则返回0。 41.按钮的属性有那些? A. 按钮的属性有UP; B. 按钮的属性有UP和OVER; C. 按钮的属性有DOWN; D. 按钮的属性有HIT. ...

    FLASH QQ与VBPBCS等通讯

    用FLASH做的QQ界面 可以读取同名XML文件 支持发参数给主程序,如PB,VB,C#等 请用fscommand(cmd,args)函数接收 主应用程序可以用它美化界面 包含flashqq.as,flashqq.swf,flashqq.xml几个文件

    VB和flash交互.rar

    VB和flash交互改善vb界面 核心代码 flash中 用AS2 新建一个文档 一个名称为myvar的动态文本(动态文本用来显示VB传来的命令)一个名称为mytext的输入文本(输入文本用来输入传递给VB的命令) 一个按钮 ,按钮上写代码 ...

    网页制作中动画制作常见问题及解答

    动画制作常见问题及解答 1. 论坛上常说的MC、FS、AS代表什么意思?  MC=Movie Clip(动画片断);FS=FSCOMMAND,是Flash的一个非常重要的一个命令集合;AS=Action Script是Flash的编程语言。

Global site tag (gtag.js) - Google Analytics