flash动作脚本教程.docx
- 文档编号:23369636
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:108
- 大小:786.93KB
flash动作脚本教程.docx
《flash动作脚本教程.docx》由会员分享,可在线阅读,更多相关《flash动作脚本教程.docx(108页珍藏版)》请在冰豆网上搜索。
flash动作脚本教程
FlashMX中的动作函数命令
8.1基本动作函数
(2)
8.1.4 图像质量切换函数
ToggleHighQuality(切换高质量)动作切换消锯齿功能,它影响视觉效果和重放速度。
打开消锯齿功能,视觉质量提高,而较早计算机上的重放速度较慢。
关闭消锯齿功能,则出现相反的效果。
此动作不能影响单个目标。
它影响当前在FlashPlayer中播放的所有电影和电影剪辑。
1.参数
此动作没有参数。
如果已经打开消锯齿功能,设置此动作就会将它关闭,否则便打开此功能。
2.脚本范例
以下脚本展示了一个鼠标事件,它切换当前在FlashPlayer中播放的所有电影的消锯齿功能:
On(Release)
ToggleHighQuality
EndOn
3.实际应用
用于确定视觉质量,并关闭电影中动画较集中部分的消锯齿功能。
8.1.5 停止声音播放函数
StopAllSounds(停止所有音轨)动作停止当前在FlashPlayer中播放的所有声音。
此动作不影响电影的视觉效果。
1.参数
此动作没有参数。
2.脚本范例
以下脚本展示了一个鼠标事件,它停止当前在FlashPlayer中播放的所有电影和电影剪辑中的声音。
On(Release)
StopAllSounds
EndOn
3.实际应用
用于关闭声音(声音打开/关闭按钮),并使音轨静音。
8.1.6 获取URL路径函数
GetURL(设置URL)动作从事以下两项工作:
将指定的URL加载到浏览器窗口和将变量数据发送给指定的URL。
例如,变量数据可以发送给CGI脚本,以便按照HTML窗体的处理方式进行处理。
虽然GetURL动作主要用于将Flash电影放置在Web页上,但也可以将它用在Flash运行程序中,以便自动打开浏览器窗口并显示指定的URL。
1.参数
GetURL具有以下参数,如图8-2所示。
图8-2 GetURL动作的参数
●URL:
用户可在此处定义GetURL动作的URL。
它可以是一个相对路径,例如mypage.html,也可以是一个绝对路径,如http:
//
如果用户获得的URL是一个CGI脚本或ColdFusion模板,那么它分别对应于的页面如http:
//
如果用户的Flash电影位于HTML页,可以用它来定义一个当事件触发时将调用的JavaScript函数。
可以用表达式来动态地设置URL。
●Window(窗口):
指定加载并显示指定的URL的浏览器窗口或HTML页。
如果用户已为一个HTML窗口或者页定义了名称,并希望指定的URL加载到该窗口,只需在此框中输入该窗口名或者用户也可以选择以下选项。
•_self:
将指定的URL加载到当前Flash电影所在的窗口或页。
•_blank:
打开一个新的浏览器窗口,并将指定的URL加载到此窗口。
•_parent:
将URL打开在当前页的父页中。
•_top:
如果具有GetURL动作的Flash电影在一个HTML页中,那么此选项将删除该帧并将URL加载到浏览器窗口。
●Variables(变量):
选择当使用GetURL动作时如何处理当前电影中的变量。
有以下几种选择。
●Don’tsend(不发送):
不发送变量,是只打开URL的最佳方法。
●SendusingGET(用GET发送):
发送附在指定的URL后面的变量。
例如,如果传递两个变量,即姓名和年龄,那么使用GET方法将使URL显示为:
Getnameandage。
因此,如果Flash电影存在于Mypage.html,应将姓名和年龄的值传递给它,且它应能以自己的方式响应这些值。
换句话说,用户可以用此选项将位于HTML页上的Flash电影中的变量值发送给另一HTML页上的Flash电影(这只能很好地用于少量变量的发送)。
●SendusingPOST(用POST发送):
发送与URL隔开的变量,可以发送多个变量。
在常规的HTML页上,这种方法主要用于将从一个窗体收集来的信息投递到服务器上的CGI脚本。
它还可以同样的方法将变量值发送给CGI脚本进行处理。
提示:
发送变量时,只有当前电影中的变量才能发送(而不是Flash电影窗口中展现的所有电影中的变量)。
2.脚本范例
以下脚本展示了一个鼠标事件,它打开新窗口中的URL。
On(Release){
GetURL("http:
//www.MyP/Mypage.Html",window="blank")
}
以下脚本展示了一个鼠标事件,它将变量投递到服务器上的CGI脚本。
On(Release){
GetURL("http:
//www.MyP
}
3.实际应用
用于Flash窗体以及与Flash内容相连的HTML网页。
FlashMX中的动作函数命令
8.2动作交互函数
(1)
8.2 动作交互函数
在各种FlashMX的动作函数中,有一类用户交互函数也是在动画制作过程中常常用到的。
这类函数最大的特点就是,当用户使用了这些函数后,可以使动画浏览者与Flash动画之间产生很强的交互,动画中许多关键性的帧、场景或者声音的切换,都将依赖浏览者的选择或者单击操作。
8.2.1 FS命令函数
fscommand(FS命令)允许用户的Flash电影与其他程序通信,例如Web浏览器或者可用于用户的Flash电影的任何程序。
主程序只是一个允许用户在其中嵌入Flash电影的程序。
此命令通常用于使Flash可与HTML页中的JavaScript交互。
下面展示了如何用fscommand打开自定义参数框。
Fscommand是一种简单的命令式语句,虽然其用处很广,但用户一样可以轻松地掌握。
(1)创建一部带按钮的Flash电影,该按钮包括一个触发fscommand动作的鼠标事件。
(2)当设置fscommand时,如果在Command文本框中输入InfoBox,在Parameters文本框中输入Doing时,则当前Actions面板如图8-3所示。
图8-3 fscommand设置
注释:
Command文本框中的命令名可以任意设置,但必须是整个动画中惟一的。
(3)如果用户愿意,还可以再创建一个带fscommand命令的按钮。
对于第二个按钮,只需在Command文本框中输入InfoBox,而在Parameters文本框中输入good。
现在用户具有两个命令相同而参数不同的按钮。
当用户将电影放置在HTML页时,还可以将它放置在一个JavaScript函数中,当电影的fscommand激活时,该函数可进行检测。
在本例中特意设置此JavaScript函数以便以某种方法评估fscommand命令,例如“如果命令等于InfoBox,则创建一个参数框以读取fscommand的参数”。
因此,当单击某一按钮时,将打开参数框doing或good。
当然,用户可以用fscommand来完成更多任务,但这通常涉及到更多的JavaScript。
对于大多数用户,Flash的新增内部脚本(ActionsScirpt)已足以应付大多数任务,除非是某些专业动画制作人员,否则也无需了解太多的JavaScript编程。
8.2.2 加载与卸载电影函数
LoadMovie(加载电影)动作允许用户进行以下几项工作:
●将一部新的电影加载到FLash电影以替换原有的电影,也就是说,无需加载不同的HTML页就可以显示一部新的电影。
●在原有电影的基础上,加载一部新的电影。
●将已加载电影的变量发送给CGI脚本进行处理。
●将一组变量加载到时间轴,以便时间轴可以根据这些变量的结果执行相应的动作。
因为LoadMovie实际上是一组动作,所以我们不使用脚本范例,而直接向用户展示如何执行各项任务。
1.参数
此动作具有的参数如图8-4所示。
图8-4 LoadMovie参数
●URL:
当用于Loadmovie时,它是要加载的.swf文件的目录路径。
它可以是一个 相对路径,如mymovie.swf,也可以是一个绝对路径,如http:
//www.MyPmovie.swf。
当将此选项与Variables参数的GET或POST设置结合使用时,此参数指定当前或目标时间轴的变量将发送到的CGI脚本的位置。
●Location(位置):
此参数定义将受指定动作影响的级层或目标。
•Level(级层):
除非加载到某个目标(它用整部电影[.swf文件]替换当前电影中的电影剪辑实例),否则,加载的电影将放置在某个级层并分配一个级层编号。
级层可看作为堆叠在FlashPlayer窗口中的各个.swf文件的图层。
分配给各个级层的编号决定它与其他所有级层的相对位置。
最底部的.swf文件的级层为0,它通常表示原始电影。
电影可加载到已包含另一电影的级层。
这样便仅替换该级层上已有的.swf文件。
•Target(目标):
允许用户将整个.swf加载到当前由一个电影剪辑实例占据的空间。
这样,加载的.swf文件将继承该电影剪辑当前的所有属性,包括名称、目标路径、大小和位置。
用户可以通过求取表达式的值来动态地设置电影将加载到的级层或目标名称。
●Variables(变量):
允许用户选择如何将电影中的变量发送给服务器。
可用以下选项:
•Don’tsend(不发送):
如果选择了LoadMovie或LoadVariables动作,则不会发送电影中的变量。
•SendusingGET(用GET发送):
发送附在指定的URL后面的变量。
•SendusingPOST(用POST发送):
发送与URL分开的变量,这意味着可以发送大量变量。
将一部新的电影加载到Flash电影窗口以替换原有电影的操作:
(1)对于URL参数,输入要加载的.swf文件的目录路径。
(2)对于Location参数,输入当前由另一个电影占据的级层编号,或者选择要替换的电影剪辑目标。
(3)在Variables参数中选择Don’tsend选项。
在原有电影的基础上加载一部新电影的操作:
(1)对于URL参数,输入要加载的.swf文件的目录路径。
(2)对于Location参数,输入当前未由另一电影占据的级层编号。
当将电影加载到级层时,用户所选的级层编号并不要求连续。
可以将一部电影加载到级层6,而将下一部电影加载到级层。
(3)在Variables参数选择Don’tsend选项。
将己加载电影的变量发送给CGl脚本进行处理的操作:
(1)对于URL参数,输入想将变量发送给它进行处理的CGI脚本的目录路径。
(2)对于Location参数,输入用户想发送其变量的电影的级层编号或目标路径。
(3)在Variables参数中,选择SendusingGET或SendusingPOST选项。
将一组变量加载到时间轴,以便时间轴根据这些变量的结果采取相应动作的操作:
(1)对于URL参数,输入要加载的变量所在的文本文件的目录路径。
如果文本将从CGI脚本产生,则输入脚本路径。
(2)对于Location参数,输入将接收新变量的电影的级层编号或目标路径。
(3)在Variables参数中,如果只想接收远程文件或CGI脚本的变量,则选择Don’tsend。
如果选择SendusingGET或SendusingPOST选项,则被指定电影的当前变量会被发送至服务器(到CGI脚本)进行处理。
然后,基于服务器响应的新变量将被加载回该电影。
2.实际应用
可在不加载附加的HTML页的情况下查看多个Flash电影,基于服务器端处理Flash格式,也可以很容易在Flash中显示动态产生的内容。
与LoadMovie命令恰好相反,UnloadMovie动作主要用于卸载以前用LoadMovie动作加载到电影窗口的电影。
对于Location参数,只要输入要卸载的电影的级层编号或目标路径即可。
8.2.3 传达目标函数
TellTarget(传达目标)命令将动作引向除当前时间轴之外的任意时间轴。
可以用TellTarget命令(它总是与动作结合起来使用)控制除当前电影之外的电影,设置或改变另一时间轴上的变量,或者设置特定电影剪辑实例的某一个属性。
1.参数
此命令只有一个参数Target(目标),在此定义所有后续动作所在的电影。
如果用户希望某一目标作为目标输入,则输入它的路径名称。
2.脚本范例
以下脚本展示了一个鼠标事件,它使得电影剪辑实例(MyMovieClip)的时间轴跳转至帧标记MyFrameLabel,然后停止:
On(Release)
BeginTellTarget("/MyMovieClip")
GotoandStop("MyFrameLabel")
EndTellTarget
EndOn
以下脚本演示了两种使用目标来执行某一动作的方法。
上面的脚本用TellTarget命令来定义目标;下面的脚本用SetPropeny命令来定义目标。
两个脚本均执行相同的动作:
第一个脚本:
On(Release)
BeginTellTarget("/MyMovieClip")
SetProperty("",XScale)="50"
EndTellTarget
EndOn
第二个脚本:
On(Release)
SetProperty("/MyMovieClip",XScale)="50"
EndOn
3.实际应用
可通过一部电影来控制另一部电影。
8.2.4 假设帧加载函数
IfFrameIsLoaded(如果某帧加载)是另一个用于引导动作的命令(并总是与动作结合起来使用)。
其逻辑关系应为:
如果帧X加载,则进行这些动作。
如果帧X未加载,则忽略IfFrameIsLoaded命令。
这称为条件语句,即只有满足某条件的情况下,才执行该动作。
此命令通常用于创建一个循环,以连续检查是否已完全下载一部电影。
此命令也被称为加载检测器。
1.参数
此动作具有以下参数,如图8-5所示。
●Scene(场景):
为IfFrameIsLoaded命令选择一个场景作为起点。
一旦定义了一个场景,就可以定义该场景内的帧编号或标记。
此场景参数不可用于符号。
可用的选项包括:
•
从当前场景选择一个帧编号或标记作为要检查的帧(请参见下面的帧参数)。
•Scene-Name:
从出现的场景名称列表中进行选择。
•Type(种类):
此项有以下几个选项:
FrameNumber(编号)选择一个帧编号;FrameLable(标记)选择场景中的一个帧标记。
出现的列表仅提供当前场景中可用的帧标记);Expression(表达式)参数可以键入一个表达式,以便根据表达式所求出的值,动态地设置要检查加载状态的帧。
●Frame(帧):
此参数可以根据所选的场景选项确定一个特定场景是否已经加载。
图8-5 IfFrameIsLoaded参数
2.脚本范例
以下脚本展示了如何设置加载检测器。
电影的第1帧上的帧事件检查场景MainScene(此场景包含电影的主动画)中标记为Start的帧是否已经加载。
如果是,则执行Goto动作,从而使得时间轴从该标记往前播放。
如果还未加载,则忽略此命令,时间轴继续第2帧:
ifFrameLoaded("MainScene","Start"){
gotoAndPlay("MainScene","Start")
}
以下脚本展示了第2帧上的一个帧事件,它仅仅将时间轴倒回至电影的第1帧:
GotoandPlay
(1)
它触发第一个脚本的IfFrameIsLoaded命令。
如果Start帧还未加载,则再次忽略此命令,时间轴继续,并再次触发第2帧上的GotoandPlay动作,从而重复整个过程。
这就是所谓的循环。
直到Start帧加载,也就是第一个脚本中所展示的第l帧中的GotoandPlay动作触发,此循环才停止。
提示:
创建此功能的一种更加动态的方法将在If命令的脚本范例中演示。
3.实际应用
用于创建加载检测器,或者防止某些动作在必要的内容下载完之前触发。
8.2.5 鼠标事件函数
当观众操作电影中的一个按钮时将会发生鼠标事件。
这种事件也被称为按钮动作,因为它们总涉及到一个按钮且总能触发一个动作。
用户可以通过鼠标以下面任意一种方式来触发鼠标事件:
●Press:
当用户将鼠标指针移到电影按钮并按鼠标按键时,动作触发。
●Release:
当用户将鼠标指针放在电影按钮并单击且释放鼠标按键时,动作触发(这是大多数动作的默认鼠标事件)。
●ReleaseOutside:
当用户单击电影按钮,而在按钮外面释放鼠标时动作发生。
●RollOver:
当用户将光标放置在按钮上时动作发生。
●RollOut:
当用户将光标从按钮上移出时动作发生。
●DragOver:
当用户将鼠标指针放置在电影按键上的同时按住鼠标按钮,然后将鼠 标指针从电影按钮上拖出(依然按住鼠标按钮),最后再将光标放回电影按键时动作发生。
●DragOut:
当用户将鼠标指针放置在电影按钮后,按住鼠标,然后将鼠标指针从电影按钮上拖出,动作发生。
8.3高级动作函数
(1)
8.3 高级动作函数
在Actions的面板中除了基本动作之外,还有大量的高级动作的设置,和Flash5相近,FlashMX也将动作进行了划分,下面对高级动作中的一些常用的动作进行讲解。
8.3.1 条件语句函数
使用If命令创建条件语句:
如果某个条件满足,则执行某个动作;如该条件未满足,则执行另一个动作。
如以下的条件语句:
If(Outside="Rain")
GotoandStop("Bed")
Else
GotoandPlay("Park")
EndIf
此条件语句表示,如果Outside等于Rain,则执行GotoBed;否则,执行GotoPark。
这可能不是最佳逻辑。
如果是Snowing或者如果有Tornado该怎么办呢?
很简单,我们只需再添加几个条件,代码如下所示:
If(Outside="Rain")
GotoandStop("Bed")
ElseIf(Outside="Sun")
GotoandPlay("Park")
ElseIf(Outside="Snow")
GotoandPlay("SkiResort")
ElseIf(Outside="Tornado")
GotoandStop("Basement")
Else
GotoandPlay("TV")
SetVariable:
"LifeIsGood"=True
EndIf
此条件语句再一次检查Outside的值;但是,这一次它有多种选择。
在新的条件语句中,根据所满足的条件会产生各种可能的动作。
这是因为在条件语句中添加了其他的ElseIf。
例如,如果Outside等于Rain,则执行Bed(睡觉);如果等于Sun,则执行Park(去公园);如果等于Snow,则去SkiResort(去滑雪场);如果等于Tornado,则去Basement(地下室);而如果以上条件均不满足,则去TV(看电视)并将LifeIsGood的值更新为Ture。
1.参数
条件语句的不同部分要求不同的参数,如图8-6所示。
图8-6 If参数
对于它的If部分,Condition(条件)参数用来输入用户想检验的条件。
2.脚本范例
以下脚本展示了第2帧上的一个帧事件,它查看电影中已加载的帧的数量,然后执行相应的动作。
此条件语句的第一部分的作用是:
如果还未加载到100帧,则返回到第1帧重新开始播放。
重新播放第1帧后,用此条件语句重新检查第2帧。
如果此时加载的帧数仍然少于100,时间轴将继续返回第1帧并重复此过程。
一旦已加载的帧数达到或多于100,则触发Goto动作,代码如下:
If(_Framesloaded GotoandPlay (1) Else GotoandPlay(MainScene,"Start") EndIf 3.实际应用 在Flash电影中添加逻辑,一旦满足特定条件,便可执行某些动作。 8.3.2 对象调用函数 Call(调用)动作可创建可反复使用的ActionScript。 例如,如果按钮组中的每一个按钮都需要执行相同的动作组,可以只创建一次动作组,以后便只需引用此动作组(请参见下面的脚本范例)。 只需在一个关键帧创建一组动作,并为该关键帧分配一个帧标记,这样,无论用户何时需要运行该组动作,只需调用此帧标记即可。 当鼠标/键盘事件或帧事件触发一个Call动作时,时间轴并不跳转到该帧,但执行相应的动作。 使用Call动作时应注释几个事项: ●被调用的帧标记可以位于FlashPlayer中的任意时间轴上。 ●如果Call动作引用一个尚未加载的帧标记,则忽略该Call动作。 ●如果一个时间轴上的变量将由另一个时间轴的帧标记上的一组动作来计算(基本上是Call动作的任务),变量值必须首先传递给使用SetVariable动作的时间轴。 相反,如果Call动作创建的任何新的值都将由进行调用的时间轴来使用,则必须将这些值先传递回来(请参见以下的脚本范例)。 在执行了该组动作之后,将继续Call动作后面的动作。 1.参数 Call动作只有一个参数Frame(帧),这是用户想使用其动作的帧的路径和帧标记。 可以根据表达式的值来动态地选择要调用的帧标记。 2.脚本范例 以下脚本展示一个鼠标事件,它创建一个值为45的变量UseInCall。 关键帧Actions Set1上的一组动作(Call动作)将计算此变量的值,并以此设置引导时间轴的变量ActionsSetlValue的值。 On(Release) Setvariable: "UseInCall"=45 Call("ActionsSetl") GotoandStop(ActionsSetlValue) EndOn 提示: 存放Call中所设置的动作组的关键帧可以在时间轴上的任何位置,甚至可以作为一个用户从来不查看或访问的单独场景。 这是一种很不错的方法,可将动作组存放在一方便的位置。 3.实际应用 用于可重复使用的动作(与JavaScript函数类似)。 8.3.3 对象属性设置函数 用户可以使用SetProperty(设置属性)动作,在电影播放过程中调整FlashPlayer中任意电影的位置、大小、旋转、透明度、可见性和名称。 1.参数 此动作有以下参数,如图8-7所示。 图8-7 SetProperty参数 Property: 此动作可选择要调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flash 动作 脚本 教程