fscommand 命令详解

fscommand 命令部分用法.
[1]全屏播放指令:
fscommand("fullscreen","true");
效果:flashplayer播放器将以全屏方式进行影片播放。按键盘上的Esc键可跳转回窗口状态。
[2]屏蔽右键菜单指令:
fscommand("showmenu","false");
效果:当观众在flashplayer窗口中单击鼠标右键时,将不会出现快捷菜单。
[3]禁止影片缩放:
fscommand("allowscale","false");
效果:当影片中应用位图时,如果被放大或拉伸显示,将会出现图象模糊或锯齿,为了避免这些影响视觉的现象,使用此指令可以禁止影片尺寸被改变。
[4]使键盘出入无效的指令:
fscommand("trapallkeys","true");
效果:此指令用于锁定键盘输入,使所有设定的快捷键都失效,flashplayer播放器此时不识别任何键盘输入信号。(但注意:无法禁止Ctrl+Alt+Del三键组合)
[5]调用可执行文件指令:
fscommand("exec","需要打开的文件路径");
效果:直接打开一个可执行文件,文件类型可以是.exe\\.com\\.bat。路径最好选用相对路径。
[6]关闭播放器指令:
fscommand("quit");
效果:结束放映,播放器窗口自动关闭,此ACTION适合添加到影片的最后一贞,当然也可以放到一个按钮上来实现“终止影片播放”功能。
FSCommand功能详解
因为很多人对FSCommand的某些功能都不是很了解
经常发贴而又得不到有效的回答
因此我整理了一些资料希望对大家有帮助
fscommand(cmd_string,arg_string)
执行主机端指令。cmd_string指定所要执行的指令名,可为FlashPlayer的
指令或浏览器javascrīpt函数。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机中的情况不作翻译)
适用于Windows9X的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"addchr(9)add"/c"addchr(9)add"echo"addchr(9)add
"var="addtextboxadd">textfile.txt"(一定要将其后的Expression复选框打上钩!)
若在Expert模式下编写,则应写成:
fscommand("exec","command.com"addchr(9)add"/c"addchr(9)add"echo"addchr(9)add"var="
addtextboxadd">textfile.txt");
说明:一个chr(9)表示一个空格;/c为command.com的参数,加上这个参数其后的命令才能被执行;>是重定向
符,我们正是靠它将变量值写入textfile.txt中。另外,还可指定文件存放目录,如要在用户桌面上建立
textfile.txt文件,那么将">textfile.txt"改为">c:\\windows\\desktop\\textfile.txt"
【注】:\\是转意字符。在Flash中,“\”被当成保留关键字,已失去了本来的意义,所以要想显示斜杠\
,必须加前缀转意符\,使之是还原本来的意义,连在一起写就成了两个斜杠的形式。又比如,要想表示单引
号,须写成\’这样的形式;实现回车的效果,须用转意符号\r。
2、删除硬盘上的文件
通过FSCommand->exec命令还可以删除硬盘上的文件,下面的语法只适用于Windows9X系统。
举例:将前面创建的textfile.txt删除
打开Action面板选择Normal模式,在语句列表中选取FSCommand语句,转到面板下部:
在Command框中填写:exec(不要复选其后的Expression复选框)
在Arguments框中填写:"command.com"addchr(9)add"/c"addchr(9)add"del"addchr(9)add
"textfile.txt"(一定要将Expression复选框打上钩!)
若在Expert模式下编写,则应写成:
fscommand("exec","command.com"addchr(9)add"/c"addchr(9)add"del"addchr(9)add
"textfile.txt");
警告:使用这个命令要慎重,因为是采用DOS命令删除文件,在回收站里是看不到的被删文件的。还有,万勿用
来做坏事。
3、在硬盘上新建目录
通过执行FSCommand->exec生成的cookie若置于和所属swf文件位于同一目录下,容易被识别,用户在清理系统
垃圾时极有可能将其清除,那样的话就失去意义了,考虑到用户一般不会轻易删除文件夹,我们专门新建一个
目录存放cookie不失为一个好计。
举例:在swf文件所在目录下新建一个名为textfile的子目录
打开Action面板选择Normal模式,在语句列表中选取FSCommand语句,转到面板下部:
在Command框中填写:exec(不要复选其后的Expression复选框)
在Arguments框中填写:"command.com"addchr(9)add"/c"addchr(9)add"md"addchr(9)add
"textfile"(一定要将Expression复选框打上钩!)
若在Expert模式下编写,则应写成:
fscommand("exec","command.com"addchr(9)add"/c"addchr(9)add"md"addchr(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"addchr(9)add"fs.htm")
执行后,如果用户机子默认的浏览器是IE,则自动调用IE打开这个网页文件。
●指定程序打开一个一般文件:Windows并未规定一种类型的文件只能由一种程序打开(比如.txt文件既可以
用记事本打开,也可以用写字板阅读),这就使我们可以任意选择可用于打开一般文件的可执行程序。当然前
提是在大多数用户机子上都能够找到我们所指派的可执行程序,因此实际上能选取的是那些常用的、随windows
9X预装的程序,像记事本(notepad)、写字板(write)、IE浏览器(iexplorer)、command命令等等。如我们希望
调用客户机上的“写字板”程序,打开一个和该swf文件本身在同一个目录下的名为fs.txt的文本文件,可以这
么写命令:
fscommand("exec","c:\\windows\\write.exe"addchr(9)add"fs.txt")
前已述及,凡是在c:\windows目录下的可执行程序,在书写FSCommand->exec命令时都可以省略路径,简写成:
fscommand("exec","write"addchr(9)add"fs.txt")也是正确的。
以上只对FlashMX以下版本才有效
----------------------------------------------
FlashMX中增强了安全性,它虽然也可以调用exe文件,但它是有条件的。
1.你的flash文件不能是swf,而应该是exe文件,比如jimsons.exe;
2.要在jimsons.exe同一目录中新建一命名fscommand目录,你要调用的外部可执行文件要在fscommand目录下,
且不能在子目录下,比如是notepad.exe,请copynotepad.exe到fscommand目录下;
3.action的写法为:
on(release){
fscommand("exec","notepad.exe");
}
4.导出exe格式
发布方法如下:
选中File->PublishSettings或按ctrl+shift+F12
它默认的发布类型为HTML(.html)与Flash(.swf),
你将这两项取消,选中WindowsProjectors(.exe)
即可将你的Flash文件直接发布为exe可执行文件
按ctrl+F12即可发布
若你的文件尚未保存则它会发布在你flash的安装目录中
若你的文件已保存则会发布在你的文件同一目录下
还有一种比较简便的方法是:
先用File->ExportMovie...或按Ctrl+Alt+Shift+S导出swf文件
再打开这个文件,通过文件->创建播放器即可产生EXE可执行文件
关于Fscommand和javascrīpt的配合
在网页里面,flash播放器是可以和浏览器通讯的。你可以在flash里面用Fscommand()发送参数给浏览器,
然后在浏览器里面用Movie1_DoFscommand()获得参数。movie1是你在html里面给这个swf文件的ID名。
?新建一个flash,插入一个按钮
在按钮上添加AS
on(release){
fscommand("press");
}
?作用为当鼠标按下这个按钮时,发出一个名字叫"press"的FSCommand
?然后把它插进网页中,给它起一个ID的名字,如"jimsons";
?然后在中加进如下的代码:
functionjimsons_DOFSCommand(command,args)
//上面的一般是调用FSCommand所需要的格式,其中"jimsons"就是给插入网页中的FLASH动画的ID名字
{
if(command=="press")
//当fscommand="press"时(按钮被按下时发出这个FSCommand)
alert("呵呵,不要碰我啦!");
//弹出警告菜单,这是属于javascrīpt里的语句
}
Subjimsons_FSCommand(ByValcommand,ByValargs)
calljimsons_DoFSCommand(command,args)
endsub
//运用VBscrīpt,当FLASH发出FSCommand时,执行flash1_DoFSCommand(command,args);
//flash1为FLASH动画的id,这也是运用FSCommand时一般所需要的格式
?将flash插入到网页中,将其ID号命名为jimsons如下
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"
name="jimsons"width="300"height="300"id="jimsons">
pluginspage="<A href='http://www.macromedia.com/go/getflashplayer";;;;
name="jimsons">
□■FlashMethods函数集
  看了上面的例子,你一定对FlashMethods有所了解了吧!下面我来介绍一下FlashMethods的全部函数:
FlashMethod函数函数解释
Play()使已停止了的FLASH动画在停止处开始播放
格式:YourMovieName.Play()
StopPlay()停止正在播放的FLASH文件
格式:YourMovieName.StopPlay()
IsPlay()如果FLASH文件正在播放中,此函数值为true
例如:if(YourMovieName.IsPlaying)
alert("Playing")
如当动画正在播放,就会弹出一个警告条。
GotoFrame(intframeNum)控制FLASH跳到指定的frame
格式:YourMovieName.GotoFrame(10)
TotalFrames()传回FLASH动画的总帧数

格式:YourMovieName.TotalFrames()
CurrentFrame()传回FLASH动画目前所在的帧数减一
FSCommand控制的帧都是由0开始的
格式:YourMovieName.CurrentFrame()+1
Rewind()控制FLASH动画条会第一帧并停止
格式:YourMovieName.Rewind()
SetZoomRect(intleft,
inttop,intright,intbottom)放大指定的坐标区域(intleft=左坐标的整数;intright为右坐标的整数
;inttop和intbottom分别表示上坐标和下坐标的整数)

Zoom(intpercent)改变FLASH动画的大小。这函数只允许你将放大后的图片缩小到原图片的大小
YourMovieName.Zoom(50)放大一倍
YourMovieName.Zoom(200)缩小一倍
YourMovieName.Zoom(0)恢复原始尺寸
Pan(intx,inty,intmode)平移放大后的FLASH动画。x,y表示移动目的地的x轴和y轴的坐标;intmode表示
表示坐标的单位,但其值为"0"时,以象数为单位,为"1"时,以百分比为单位。

PercentLoaded()回传0~100的值,此值为浏览器载入FLASH的百分比程度。可用此功能制作loading画面
如:if(YourMovieName.PercentLoaded()<100)
YourMovieName.GotoFrame(YourMovieName.PercentLoaded())
LoadMovie(intlayer,Stringurl)载入其他的FLASH动画,"intlayer"为level的值,数值越大,动画就放得
越上;"stringurl"为要栽入的动画的路径和名称
如:LoadMovie(1,"yourmovie.swf")表示把yourmovie.swf的动画加载到原来的动画上,level为1
LoadMovie("","yourmovie.swf")表示卸载yourmovie.swf动画
TGotoFrame(Stringtarget,intframeNum)控制动画跳到指定的movieclip的第几帧
TGotoFrame("_flash0/mm",10)表示跳到instancename为mm的movieclip的第十帧
TGotoLabel(Stringtarget,Stringlabel)控制动画跳到指定的movieclip的指定的label
TGotoFrame("_flash0/mm","ten")
TCurrentFrame(Stringtarget)传回指定的movieclip的当前所在帧减一
fras=YourMovieName.TCurrentFrame("_flash0/mm")+1
TCurrentLabel(Stringtarget)传回指定的movieclip当前所在的label
label=play_movie.TCurrentLabel("_flash0/mm")
TPlay(Stringtarget)控制指定的movieclip从停止出开始播放
YourMovieName.Play("_flash0/mm")
TStopPlay(Stringtarget)控制指定的movieclip停止播放
YourMovieName.Play("_flash0/mm")
GetVariable(variable_name)获取变量
SetVariable(variable_name,value)变量赋值
TCallFrame(movie_clip,frame_number)call指定帧上的action
TCallLabel(movie_clip,label)call指定标签上的action
TGetProperty(movie_clip,property)获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)设置movie_clip的指定属性
  需要说明的是:最后两个函数在获取movie_clip的属性时,是以0到18的数字来表示的。下面列出它们分别
代表的意思:
属性作用数字使用方式
XPositionX坐标0Get,Set
YPositionY坐标1Get,Set
XScaleX方向缩放比率2Get,Set
YScaleY方向缩放比率3Get,Set
CurrentFramemovie_clip当前所在帧数4Get
TotalFramesmovie_clip总帧数5Get
Alphamovie_clip的透明度6Get,Set
Visibilitymovie_clip是否可见7Get,Set
Widthmovie_clip的宽度8Get
Heightmovie_clip的高度9Get
Rotationmovie_clip的旋转度10Get,Set
Targetmovie_clip的路径11Get
Framesloadedmovie_clip已载入的帧数12Get
Namemovie_clip的实体名字13Get,Set
DropTargetmovie_clip的拖拽14Get
Url包含movie_clip的动画的url15Get
HighQuality设置画面质量为高质量16Get,Set
FocusRect显示按钮边框17Get,Set
SoundBufTime预设声音缓冲时间18Get,Set
  我们可以看到,FSCommand为Flash打开了一个使用脚本语言的接口,这可以弥补Flash在函数上的不足。
所以,利用好这个方法,将使我们在制作Flash动画时如虎添翼!
□■最后,我想说说在FLASH中如果想调用javascrīpt(或VBscrīpt)的另外一种方法,不需要用FSCommand,
只需要运用getURL.
?这做法为先在与之间写如下javascrīpt代码:
functionjimsons(theURL,winName,features){
window.open(theURL,winName,features);
}
?意思是定义一个jimsons()的函数,若被调用时,就打开一个新的窗口。
函数里面有三个参数theURL是网址,winName是网页的标题,features是用来设置一些窗口特性如是否显示状态
栏,滚动条等
?然后就用FLASH做一个按钮,把它拖到场景后,在按钮上写入AS
on(release){
getURL("javascrīpt:jimsons('http://bbs.flash8.net'/;,'Jimsons制作
','scrollbars=no,width=550,height=400')");
}
?作用是,当按下按钮时,就从本网页中的javascrīpt获取jimsons()这个函数。
下面压缩包中有两个例子分别FScommand与javascrīpt的结合
与getURL与javascrīpt的结合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值