FLASH METHODS大全    作者:newfish
Flash Methods 是指能运行在脚本语言中并能与Flash沟通的一组特定函数。是 FS Command 运用的核心部分。使用 FS Command 时,经常要使用 Flash Methods 中的函数。它能控制 Flash 动画的跳转,能向 Flash 发送和接受变量而且能获取和设置 Flash 中的电影夹子属性等。全部这些语句足以能涵盖 Flash 的各项功能。
以前我在介绍 FS Command 时,曾提及到一些 Flash Methods,如 Play(),TGotoFrame() 等。但至 FLASH4 推出后,新增了一些非常实用的 Flash Methods,,适当使用,可以使 Flash 4 的功能大大加强,如何以使 Flash 向 JavaScript 中发送变量或从 JavaScript 中接受变量,还可以在 JavaScript 中接控制 Flash 中的电影夹子属性。由于在 Flash 3 中可支持的 Flash Methods 我已经在前面的教程中有所介绍,所以本章将主要介绍 Flash 4 新增的 Flash Methods 。
Play()使已停止了的 FLAS H动画在停止处开始播放
格式:YourMovieName.Play()
StopPlay()停止正在播放的FLASH文件
格式:YourMovieName.StopPlay()
IsPlay()如果FLASH文件正在播放中,此函数值为true
例如:if (YourMovieName.IsPlaying)
    alert("Playing")
如当动画正在播放,就会弹出一个警告条。
GotoFrame(int frameNum)控制FLASH跳到指定的frame
格式:YourMovieName.GotoFrame(10)
TotalFrames()传回FLASH动画的总帧数
格式:YourMovieName.TotalFrames()
CurrentFrame()传回FLASH动画目前所在的帧数减一
FS Command控制的帧都是由0开始的
格式:YourMovieName.CurrentFrame()+1
Rewind()控制FLASH动画条会第一帧并停止
格式:YourMovieName.Rewind()
SetZoomRect(int left,
int top,int right,int bottom)
放大指定的坐标区域(int left=左坐标的整数;int right为右坐标的整数;int top和int bottom分别表示上坐标和下坐标的整数)
Zoom(int percent)改变FLASH动画的大小。这函数只允许你将放大后的 图片缩小到原图片的大小
YourMovieName.Zoom(50)放大一倍
YourMovieName.Zoom(200)缩小一倍
YourMovieName.Zoom(0)恢复原始尺寸
Pan(int x,int y,int mode)平移放大后的FLASH动画。x,y表示移动目的地的x轴和y轴的坐标;int mode表示表示坐标的单位,但其值为"0"时,以象数为单位,为"1"时,以百分比为单位。
PercentLoaded()回传0~100的值,此值为浏览器载入FLASH的百分比程度。可用此功能制作loading画面
如:if (YourMovieName.PercentLoaded()<100)
 YourMovieName.GotoFrame(YourMovieName.PercentLoaded())
LoadMovie(int layer,
String url)
载入其他的FLASH动画,"int layer"为level的值,数值越大,动画就放得越上;"string url"为要栽入的动画的路径和名称
如:LoadMovie(1, "yourmovie.swf")表示把yourmovie.swf的动画加载到原来的动画上,level为1
LoadMovie("", "yourmovie.swf")表示卸载yourmovie.swf动画
TGotoFrame(String target,
int frameNum)
控制动画跳到指定的movie clip的第几帧
TGotoFrame("_flash0/mm",10)表示跳到instance name为mm的movie clip的第十帧
TGotoLabel(String target,
String label)
控制动画跳到指定的movie clip的指定的label
TGotoFrame("_flash0/mm","ten")
TCurrentFrame(String target)传回指定的movie clip的当前所在帧减一
fras=YourMovieName.TCurrentFrame("_flash0/mm")+1
TCurrentLabel(String target)传回指定的movie clip当前所在的label
label=play_movie.TCurrentLabel("_flash0/mm")
TPlay(String target)控制指定的movie clip从停止出开始播放
YourMovieName.Play("_flash0/mm")
TStopPlay(String target)控制指定的movie clip停止播放
YourMovieName.Play("_flash0/mm")
flash 4 新增
GetVariable(变量名)从Flash动画中获取指定变量的值
var myvar=Movie.GetVariable("/:a"); (使变量"myvar"等于动画的主时间场景中的变量"a"的值)
SetVariable(变量名,变量值)给Flash中指定的变量赋予一个指定的变量值
Movie.SetVariable("/:months", 12);(定义动画主场景中的变量"months"的值为12)
TCallFrame(电影夹子,帧数)调用动画夹子中指定的帧数上的Actions。作用与Flash中的Call命令相同
Movie.TCallFrame("/", 4);(运行主时间线上的第3帧上的Actions)
TCallLabel(电影夹子,标签)调用动画夹子中指定的标签上的Actions
movie.TCallLabel("/", "mylabel");(运行主时间线上标签名为"mylabel"的帧上的Actions)
下面三个是关于获取和设置Flash中电影夹子的属性函数,用法比较特殊。它们所指定的属性要用整数表示,由0-18,每个整数代表一种属性。这些整数的意义在往后的表格中有所介绍。
TGetProperty(电影夹子,属性)以字符串的形式获取电影夹子的指定属性。该属性以1至18的整数代表
var url = Movie.TGetProperty("/MovieClip", 15); (获取电影夹子的完整URL地址)
TGetPropertyAsNumber(电影夹子,属性)以数字的形式获取电影夹子的指定属性。该属性以1至18的整数代表
var Loaded = Movie.TGetPropertyAsNumber("/", 12); (获取电影已加载的百分比)
TSetProperty(电影夹子,属性,变量值)设置电影夹子中的指定属性。与Flash中SetProperty命令相同效果
Movie.TSetProperty("/MovieClip", 13, "Newname"); (改变实体名为MovieClip的电影架子的实体名为"Newname)
上述三个Flash Methods函数都要涉及到电影夹子的属性,而它表示属性的方法是以整数来表示的,每一个属性对应一个整数。全部的属性和对应整数请见下表。其中"使用范围"中的Get代表可以使用GetProperty或GetPropertyAsNumber函数获取,Set代表可以用SetProperty函数设置。
代表数字属性作用使用范围
0X Position电影夹子的X坐标Get和Set
1Y Position电影夹子的Y坐标Get和Set
2X Scale电影夹子的X坐标方向的伸缩比率Get和Set
3Y Scale电影夹子的Y坐标的伸缩比率Get和Set
4CurrentFrame当前正电影夹子所在的帧数Get
5TotalFrames电影夹子的总帧数Get
6Alpha电影夹子的透明度Get和Set
7Visibility电影夹子是否为可见Get和Set
8Width电影夹子的宽度。以坐标单位为准Get
9Height电影夹子的高度。以坐标单位为准Get
10Rotation电影夹子的旋转角度Get和Set
11Target电影夹子的完整路径Get
12Framesloaded电影夹子的已载入的帧数Get
13Name电影夹子的实体名字Get和Set
14DropTarget当电影夹子可被拖动时,与另一个电影夹子相交,便改变该电影夹子的实体名字Get
15Url包含该电影的动画的完整路径Get
16HighQuality设置电影夹子为画面为高质量Get和Set
17FocusRect显示按钮的边框Get和Set
18SoundBufTime预设声音的缓冲时间Get和Set
● 上面的Flash Method必须和FS Command配合使用才能生效。也就是当网页中的脚本语言接收到来自Flash的FS Command后,才会执行相应指定的Flash Methods。如不懂Javascript的读者,只要在HTML的<head>和</head>之间直接引用下面的格式便可以了。
<SCRIPT LANGUAGE="JavaScript"> 
var InternetExplorer = navigator.appName.indexOf("Microsoft") == 0; 
function MovieId_DoFSCommand(command, args) {
var movie= InternetExplorer ? MovieID.document.MovieID; 
if (command="commandname" ) {
movie.FlashMethods(); 

}
</SCRIPT>
<SCRIPT LANGUAGE="VBScript"> 
Sub MovieID_FSCommand(ByVal command, ByVal args) 
call MovieID_DoFSCommand(command, args) 
end sub
</SCRIPT>
● 在使用时,只要把MovieID,commandname和Flash Methods改为自己的相应的名字就可以了。