- 相关推荐
flash动作脚本从入门开始
◎ 当在时间轴上播放到某一帧时。
◎ 当某个影片剪辑载入或卸载时。
◎ 当单击某个按钮或按下键盘上的某个键时。
为使应用程序能够对事件做出反应,必须编写相应的事件处理程序。事件处理程序是与特定对象和事件关联的动作脚本代码。例如,当用户单击舞台上的一个按钮时,可以将播放头前进到下一帧。
flash mx 2004提供了三种编写事件处理程序的方法:
◎ 针对对象的on()事件处理函数
◎ 事件处理函数方法
◎ 事件侦听器
下面我们就以按钮对象的事件为例,讨论这三种编写事件处理程序方法的应用。
二、针对按钮对象的on()事件处理函数
on()事件处理函数是最传统的事件处理方法。它直接作用于按钮元件实例,相关的程序代码要编写到按钮实例的动作脚本中。on()函数的一般形式为:
on(鼠标事件){
//此处是你的语句,这些语句组成的函数体来响应鼠标事件
}
其中鼠标事件是“事件”触发器,当发生此事件时,执行事件后面大括号中的语句。比如press就是一个常用的鼠标事件,它是在鼠标指针经过按钮时按下鼠标按钮时产生的事件。
下面我们就以本节开始运行的那个动画为例,讨论一下on()事件处理函数的具体应用方法。
1、打开小球跳动动画文件
在flash mx 2004中,将配套光盘上的“小球跳动.fla”影片文件(文件路径:配套光盘/……/小球跳动.fla)打开。我们以这个影片文件为基础编写按钮交互程序,来控制小球动画的播放。
我们可以先按快捷键ctrl+enter,对动画进行测试,观察一下动画效果。在测试窗口中可以观察到,小球在舞台上一直循环不停地跳动。下面我们就引用两个按钮实例,用按钮来控制这个小球动画的播放。
2、引用按钮实例
新建一个图层,把它重新命名为“按钮”。从【库】面板拖放两个按钮实例到舞台的右上角,如图6-3-2所示。
图6-3-2 引用按钮
说明:上面引用的按钮是事先制作的。有关按钮制作的详细内容请参阅第四章的相关内容。
3、定义按钮的动作脚本
选择舞台上的第1个按钮,打开【动作】面板,在其中输入“on(”,这时弹出一个鼠标事件下拉列表,从其中双击【press】,然后输入:
){
play();
}
这样,第一个按钮的动作脚本就定义完成了,完整的动作脚本是:
on(press){
play();
}
这个动作脚本的功能是,当用鼠标单击这个按钮时,舞台上的动画开始播放。
第2个按钮的动作脚本和第1个的定义过程类似,先选择第2个按钮,在【动作】面板中按照前面的方法定义这个按钮的动作脚本:
on(press){
stop();
}
这个动作脚本的功能是,当用鼠标单击这个按钮时,舞台上的动画停止播放。
好,下面我们按快捷键ctrl+enter,测试一下动画吧,怎么样?按钮已经可以控制小球的跳动了吧(文件路径:配套光盘/……/按钮控制小球跳动(1).fla)?
三、事件处理函数方法
事件处理函数方法是一种类方法,事件在该类的实例上发生时产生调用。例如,button(按钮)类定义onpress事件处理函数,只要按下鼠标就对button对象调用该处理函数。flash player在相应事件发生时自动调用事件处理函数。
默认情况下,事件处理函数方法是未定义的:在发生特定事件时,将调用其相应的事件处理函数,但应用程序不会进一步响应该事件。要让应用程序响应该事件,需要使用 function语句定义一个函数,然后将该函数分配给相应的事件处理函数。这样,只要发生该事件,就自动调用分配给该事件处理函数的函数。
事件处理函数由三部分组成:事件所应用的对象、对象的事件处理函数方法的名称和分配给事件处理函数的函数。事件处理函数的基本结构为:
《flash动作脚本从入门开始》全文内容当前网页未完全显示,剩余内容请访问下一页查看。
对象.事件处理函数方法名称 = function () {
// 你编写的程序代码,对事件作出反应
}
下面我们还是针对上面那个实例,用事件处理函数方法编写程序来实现按钮控制小球跳动的功能。
1、定义按钮实例名称
按照前面的方法,将配套光盘上的小球跳动动画文件打开,并且引用两个按钮元件实例。分别单击两个按钮实例,在【属性】面板中分别定义它们的实例名称为:play_btn和stop_btn。
2、定义事件处理函数
新建一个图层,并将它重新命名为“action”。选择这个图层的第1帧,在【动作】面板中定义这个帧的动作脚本为:
play_btn.onpress=function(){
play();
}
stop_btn.onpress=function(){
stop();
}
测试一下,怎么样?和前面的效果一样吧(文件路径:配套光盘/……/按钮控制小球跳动(2).fla)。
四、事件侦听器
事件侦听器让一个对象(称作侦听器对象)接收由其他对象(称作广播器对象)生成的事件。广播器对象注册侦听器对象以接收由该广播器生成的事件。例如,你可以注册按钮实例可以从文本字段对象接收onchanged通知。这里需要说明的是,可以注册多个侦听器对象以从一个广播器接收事件,也可以注册一个侦听器对象以从多个广播器接收事件。
事件侦听器的事件模型类似于事件处理函数方法的事件模型,但有两个主要差别:
◎ 你向其分配事件处理函数的对象不是发出该事件的对象。
◎ 你调用广播器对象的特殊方法addlistener(),该方法将注册侦听器对象以接收其事件。
要使用事件侦听器,你需要用具有该广播器对象生成的事件名称的属性创建侦听器对象。然后,将一个函数分配给该事件侦听器(以某种方式响应该事件)。最后,你在正广播该事件的对象上调用addlistener(),向它传递侦听器对象的名称。
事件侦听器模型的一般形式为:
listenerobject.eventname = function(参数){//定义侦听器对象事件函数
// 此处是你的代码
};
broadcastobject.addlistener(listenerobject);
其中listenerobject是指定侦听器对象的名称,broadcastobject是名称,eventname是事件名称。
指定的侦听器对象(listenerobject)可以是任何对象,例如舞台上的影片剪辑或按钮实例,或者可以是任何动作脚本类的实例。事件名称是在广播器对象(broadcastobject)上发生的事件,然后将该事件广播到侦听器对象(listenerobject),侦听器对象的事件函数对事件作出反应。
使用侦听器对象处理事件,可以使你的程序更加安全可靠。有关侦听器对象应用的详细内容请参阅本书第八章第三节的相关内容。
五、按钮事件和mc事件
on()处理函数处理按钮事件,而onclipevent()处理函数处理影片剪辑事件。前面我们已经详细讨论了on()处理函数处理按钮事件的方法,用onclipevent()处理函数处理影片剪辑事件的方法类似,这里就不再详述。下面我们完整地列举一下on()和onclipevent()事件处理函数所支持的事件。
1、on()事件处理函数所支持的事件
按钮可以响应鼠标事件,还可以响应key press(按键)事件。对于按钮而言,可指定触发动作的按钮事件有7种:
◎ press:事件发生于鼠标在按钮上方,并按下鼠标时。
◎ release:事件发生于在按钮上方按下鼠标,接着松开鼠标时。也就是“按一下”鼠标。
◎ releaseoutside:事件发生于在按钮上方按下鼠标,接着把鼠标移到按钮之外,然后松开鼠标时。
《flash动作脚本从入门开始》全文内容当前网页未完全显示,剩余内容请访问下一页查看。
◎ rollover:事件发生于鼠标滑入按钮时。
◎ rollout:事件发生于鼠标滑出按钮时。
◎ dragover:事件发生于按着鼠标不松手,鼠标滑入按钮时。
◎ dragout:事件发生于按着鼠标不松手,鼠标滑出按钮时。
◎ keypress:事件发生于用户按下指定的按键时。
2、onclipevent()事件处理函数所支持的事件
onclipevent()事件处理函数使用的一般形式为:
onclipevent(movieevent){
// 此处是你的语句,用来响应事件。
}
其中movieevent是一个事件“触发器”。当事件发生时,执行该事件后面大括号中的语句。对于影片剪辑而言,可指定的触发事件有9种,分别是:
◎ load:影片剪辑一旦被实例化并出现在时间轴中时,即启动此动作。
◎ unload:在时间轴中删除影片剪辑之后,此动作在第1帧中启动。在向受影响的帧附加任何动作之前,先处理与unload影片剪辑事件关联的动作。
◎ enterframe:以影片剪辑帧频不断触发的动作。首先处理与enterframe剪辑事件关联的动作,然后才处理附加到受影响帧的所有帧动作。
◎ mousemove:每次移动鼠标时启动此动作。_xmouse和_ymouse属性用于确定当前鼠标位置。
◎ mousedown:当按下鼠标左键时启动此动作。
◎ mouseup:当释放鼠标左键时启动此动作。
◎ keydown:当按下某个键时启动此动作。
◎ keyup:当释放某个键时启动此动作。
◎ data:当在loadvariables()或loadmovie()动作中接收数据时启动此动作。当与loadvariables()动作一起指定时,data事件只在加载最后一个变量时发生一次。当与loadmovie()动作一起指定时,获取数据的每一部分时,data事件都重复发生。
第四节 基本命令和程序结构控制
前面几节我们讲解了actionscript的基础知识,相信你已经对actionscript的编程方法、基本概念以及语法规范等有了一定的认识。本节将对actionscript的基本命令和程序结构控制进行研究,使你逐渐深入了解actionscript的基本命令和程序的基本结构,学会自己编制简单的程序脚本,从而实现动画的交互性。
一、时间轴控制命令
1、gotoandplay
一般形式:gotoandplay(scene,frame);
作用:跳转并播放,跳转到指定场景的指定帧,并从该帧开始播放,如果没有指定场景,则将跳转到当前场
景的指定帧。
参数:scene,跳转至场景的名称;frame,跳转至帧的名称或帧数。
有了这个命令,我们可以随心所欲地播放不同场景,不同帧的动画。
例:当你单击被附加了gotoandplay动作按钮时,动画跳转到当前场景第16帧并且开始播放:
on(release){
gotoandplay(16);
}
例:当你单击被附加了gotoandplay动作按钮时,动画跳转到场景2第1帧并且开始播放:
on(release){
gotoandplay("场景2",1);
}
2、gotoandstop
一般形式:gotoandstop(scene,frame);
作用:跳转并停止播放,跳转到指定场景的指定帧并从该帧停止播放,如果没有指定场景,则将跳转到当前
场景的指定帧。
参数:scene:跳转至场景的名称;frame:跳转至帧的名称或数字。
3、nextframe()
作用:跳至下一帧并停止播放。
例:单击按钮,跳到下一帧并停止播放:
on(release){
nextframe();
}
4、prevframe()
作用:跳至前一帧并停止播放。
例:单击按钮,跳到前一帧并停止播放:
on(release){
prveframe();
}
5、nextscene()
作用:跳至下场景并停止播放。
6、prevscene()
作用:跳至前场景并停止播放。
7、play()
作用:可以指定电影继续播放。
在播放电影时,除非另外指定,否则从第1帧播放。如果电影播放进程被goto(跳转)stop(停止)语句停止,则必须使用play语句才能重新播放。
8、stop()
作用:停止当前播放的电影,该动作最常见的运用是使用按钮控制电影剪辑。
例如,如果我们需要某个电影剪辑在播放完毕后停止而不是循环播放,则可以在电影剪辑的最后一帧附加stop(停止播放电影)动作。这样,当电影剪辑中的动画播放到最后一帧时,播放将立即停止。
9、stopallsounds()
作用:使当前播放的所有声音停止播放,但是不停止动画的播放。要说明一点,被设置的流式声音将会继续播放。例如:
on(release){
stopallsounds();
}
当按钮被单击时,电影中的所有声音将停止播放。
二、浏览器和网络控制命令
1、fscommand命令
制作完成的flash影片通常都是在flash播放器中播放。控制flash播放器的播放环境及播放效果,是制作者经常要解决的问题。比如,怎样使影片全屏幕播放、怎样在影片中调用外部程序等。
fscommand命令可以实现对影片浏览器,也就是flash player的控制。另外,配合javascript脚本语言,fscommand命令成为flash和外界沟通的桥梁。
fscommand命令的语法格式如下:
fscommand(命令,参数);
fscommand命令中包含两个参数项,一个是可以执行的命令,另一个是执行命令的参数,如表6-4-1所示是fscommand命令可以执行的命令和参数。
表6-4-1 fscommand可以执行的命令和参数
命令 参数 功能说明
quit 没有参数 关闭影片播放器
fullscreen true or false 用于控制是否让影片播放器成为全屏播放模式。true为是,false为不是。
allowscale true or false false让影片画面始终以100%的方式呈现,不会随着播放器窗口的缩放而跟着缩放;true则正好相反。
showmenu true or false true代表当用户在影片画面上右击时,可以弹出全部命令的右键菜单,false则表示命令菜单里只显示“about shockwave”信息。
exec 应用程序的路径 从flash播放器执行其他应用软件
trapallkeys true or false 用于控制是否让播放器锁定键盘的输入,true为是,false为不是。这个命令通常用在flash以全屏幕播放的时候,避免用户按下esc键,解除全屏幕播放。
2、geturl命令
一般形式:geturl(url,window,method);
作用:事件添加超级链接,包括电子邮件链接。
例如:如果要给一个按钮实例附加超级链接,使爱好者在单击时直接打开“闪客起航”主页,则可以在这个按钮上附加以下动作脚本:
on(release){
geturl(“http://www.oh100.com”);
}
如果要附加电子邮件链接,可以这样:
on(release){
geturl(“mailto:http://www.oh100.com”);
}
3、loadmovie和unloadmovie载入和卸载影片命令
由于交互的需要,我们常常在当前电影播放不停止的情况下,播放另外一个电影或者是在多个电影间自由切换时,这时就会用到loadmovie和unloadmovie命令,loadmovie命令载入电影,而unloadmovie则可以卸载由loadmovie命令载入的电影。如果没有loadmovie动作,则flash播放器只能显示单个电影(swf)文件,然后关闭。
loadmovie使用的一般形式为:
loadmovie(url,level/target,variblesl);
◎ url:要载入的swf文件、jpeg文件的绝对或相对url地址。相对地址必须是相对于级别上的swf文件。该url必须和当前电影处于相同的子域中。要在使用loadmovie,则所有的swf文件都必须存储在相同的文件夹中,文件名前面不能有文件名称或磁盘标识符。
◎ target:目标电影剪辑的路径。目标电影剪辑将被载入的电影或图像所替代。必须指定目标电影剪辑或目
标电影的级别。二者只选其一。
◎ level:指定载入到播放器中的电影剪辑所处的级别整数。
◎ varibles:可选参数,如果没有要发送的变量,则可以忽略该参数。
当使用loadmovie动作时,必须指定目标电影剪辑或目标电影的级别。载入到目标电影剪辑中的电影或图像将继承原电影剪辑的位置、旋转和缩放属性。载入图像或电影的左上角将对齐原电影剪辑的中心点。另外,如果选中的目标是_root时间轴,则图像或电影剪辑对齐舞台左上角。
例如,以下是loadmovie语句被附加给导航按钮。在舞台上有一个看不见的电影剪辑,其实例名为daohang。loadmovie动作将使该电影剪辑作为目标参数载入swf文件。
on(release){
loadmovie(“daohang.swf”,_root.shanke);
}
下面是可以载入和当前swf文件相同路径的图像:
loadmovie(“http://www.oh100.comg”,“ourmovieclip”);
使用unloadmovie可以从播放器中删除已经载入的电影或电影剪辑。unloadmovie命令使用的一般形式为:
unloadmovie(level/target);
要卸载某个级别中的电影剪辑,需要使用level参数,如果要卸载已经载入的电影剪辑,则可以使用target目标路径参数。例如:
on(prass){
unloadmovie(“_root.mymovie”);
loadmovienum(“movie.swf”,4);
}
上面这段程序代码的功能是,卸载主时间轴上的影片剪辑mymovie(影片剪辑名字),然后将电影movie.swf载入到level4级别中。
说明:可以将不同的影片文件通过loadmovie命令,把它们叠放在不同的级别(level)上。最下面的主影片文件的级别号为0,你可以将后来加载的影片文件放在不同的级别位置,数字越大,摆放的位置越高。如果两个影片文件加载的级别号一样,后一个加载的影片文件会取代之前加载的影片文件。因此,加载的影片文件一般要放在0以上的级别,否则,新加载的影片就会覆盖主影片文件。
下面的示例可以卸载级别4上已经载入的电影。
on(press){
unloadmovienum(4);
}
4、loadvariables命令
一般形式:loadvariables(url,level/”targt”,[ variables]);
作用:它可以从外部文件读入数据。外部文件包括文本文件、由cgi脚本生成的文本、asp、php或perl脚本。读入的数据作为变量将被设置到播放器级别或目标电影剪辑中。
参数:
◎ url:变量将要载入的绝对或相对路径url地址。
◎ level/”targt”:指定载入到flash播放器中的变量所处的级别的整数/接受载入的变量目标电影剪辑的路径。这二者只能选择其中一个。
◎ variables:可选参数,如果没有要发送的变量,则可以忽略该参数。
在使用loadvariables动作时,必须指定变量被载入的flash播放器级别或电影剪辑目标。
例如:从一个文本文件中载入信息到电影主时间轴vartarget电影剪辑中,文本域的变量名必须匹配datd.txt文件中的变量名。
on(release){
loadvariables(“datd.txt”, “_root. vartarget”);
}
为了帮助你更好的理解loadvariables命令的使用方法,下面我们提供一个范例(范例fla源文件文件路径:配套光盘/……/利用loadvariables调用外部变量.fla),要加载外部文本文件的存放路径与范例源文件路径一样,文件名为“question.txt”。
在flash mx 2004中打开影片源文件“利用loadvariables调用外部变量.fla”,然后测试影片,画面如图6-4-1所示。
图6-4-1 范例运行画面
如图6-4-1所示的画面上,有5个动态文本对象,当范例运行时,通过loadvariables命令加载外部的“question.txt”文件中的变量,然后把变量分别显示在这5个动态文本对象上。
我们先看看“question.txt”文件的内容,如图6-4-2所示。
图6-4-2 “question.txt”文件
说明:将要创建的文本文件必须保存为unicode格式,否则加载的中文将显示乱码。如果你使用windows98系统,那么【记事本】程序将不能创建unicode格式的文本文件,这时你必须借助其他方法来创建unicode格式的文本文件,比如你可以使用dreamweaver来编辑文本文件。
“question.txt”文件中定义了一些关于测验题目的变量,每个文本文件中都是定义了5个变量。变量question定义的是这道测验题目的问题文本,变量answer1 ~ answer4定义的是这道测验题目的 4 个备选答案文本。这5个变量将来就加载并分别显示在影片的5个动态文本中(文本对象的变量名称和相应变量的名字一样)。
说明:在编写文本文件时要注意,每个变量之间一定要用 & 符号隔开,另外在定义完最后一个变量以后,不要回车换行,让光标停留在最后一个字符后面。
我们再来看看影片源文件“利用loadvariables调用外部变量.fla”。如图6-4-3是这个影片文档的主时间轴图层结构。
图6-4-3 范例图层结构
【背景和标题】图层是用绘图工具和文本工具创建的范例的背景图形和标题文字,起到美化实例的效果。
【动态文本】图层创建了5个动态文本对象,你可以打开【属性】面板观察它们的【变量】名称,它们的【变量】名称与外部文本文件中的5个变量的名字是一致的。这样才可以接收并显示这些变量。
【action】图层定义加载外部文本文件的动作脚本,选择第1帧,打开【动作】脚本,动作脚本如下:
loadvariables("question.txt",_root); //将外部文本文件加载到影片根时间轴上
三、程序流程结构控制
所谓流程控制,无非就是我们想控制动画程序的执行顺序而已。众所周知,flash中动画依靠的是时间轴,在没有脚本的情况下,动画会依照时间轴从第一帧不停的播放到最后一帧,然后重复播放或者停止。为了能更好地控制动画,就必须使用脚本语句。而要想使动画具有逻辑判断的功能,就要使用流程控制语句了。
下面我们来讨论控制程序流程的选择结构和循环结构。
1、选择结构
一般情况下,flash执行动作脚本从第一条语句开始,然后按顺序执行,直至达到最后的语句。这种按照语句排列方式逐句执行的方式,称为顺序结构。顺序结构是程序中使用最多的程序结构,但用顺序结构只能编写一些简单的动作脚本,解决一些简单的问题。
在实际应用中,我们往往有一些需要根据条件来判断结果的问题,条件成立是一种结果,条件不成立又是一种结果。像这样复杂问题的解决就必须用程序的控制结构,控制结构在程序设计中占有相当重要的地位,通过控制结构可以控制动作脚本的流向,完成不同的任务。
选择结构在程序中以条件判断来表现,根据条件判断结果执行不同的动作。if语句和else语句联用最常用的形式为:
if(条件){
代码块a;
}
else{
代码块b
}
当if语句的条件成立时,执行代码块a的内容,当条件不成立时,执行代码块b的内容。如图6-4-1是程序执行的流程图。
图6-4-1 选择结构流程图
这里需要说明的是,if语句中的条件是由关系表达式或者逻辑表达式实现的。关系表达式和逻辑表达式的值都是布尔(逻辑)值,因此判断if语句中的条件是否成立,实际上就是判断关系表达式或者逻辑表达式的值是真(true)还是假(false)。如果条件表达式的值为true,执行代码块a的内容,如果条件表达式的值为false,则执行代码块b的内容。
2、循环结构
循环结构是三种基本程序结构之一。它通过一定的条件控制动作脚本中某一语句块反复执行,当条件不满足时就停止循环。这种程序结构对实现交互性的影片有着举足轻重的作用,在制作动画时,我们经常使用这种程序结构。
for语句是实现程序循环结构的语句,它的语法格式更紧凑,在循环起始语句中包含了循环控制变量的初始值、循环条件和循环控制变量的增量,清楚明了,因此使用较为广泛。for语句使用的一般形式为:
for(表达式1;条件表达式;表达式2)
{
代码块
}
◎ 表达式1:是一个在开始循环序列前要计算的表达式,通常为赋值表达式。
条件表达式:计算结果为true(真)或false(假)的表达式。在每次循环前计算该条件,当条件的计算结果为true时执行循环,当条件的计算结果为false时退出循环。
◎ 表达式2:是一个在每次循环迭代后要计算的表达式,通常使用带++(递增)或--(递减)运算符的赋值表达式。
for语句的执行过程是,先计算“表达式1”的值,然后判断“条件表达式”的值是真(true)还是假(false),如果条件是真,那么执行循环体中的代码块,执行完以后,再执行“表达式2”,接着开始新一轮的循环;如果条件是假,那么就跳出循环,执行for语句的后继语句。如图6-4-2是for语句构成的循环结构流程图。
图6-4-2 for语句循环结构流程图
四、常用对象简介
flash mx 2004的actionscript是真正面向对象的编程语言,类和对象是面向对象编程语言的基本元素和概念。下面我们将几个最常用的对象做个简单介绍。
1、math对象
作为一门编程语言,进行数学计算是必不可少的。在数学计算中经常会使用到数学函数,如取绝对值、开方、取整等,还有一种重要的函数是随机函数。actionscript将所有这些与数学有关的方法以及随机数都集中到一个类里面——math方法。
◎ math.abs绝对值函数
作用:用来计算一个数的绝对值。
例如:计算-9的绝对值,赋给x:
x=math.abs(-9);
◎ math.round 四舍五入取整函数
作用:方法将一个浮点数四舍五入为最接近的整数。
例如:输出9.4的取整,即输出9。
trace(math.round(9.4));
◎ math.min、math.max 最大、最小值函数
作用:math.min方法取两个数中较小的一个数,math.max方法取两个数中较大的一个数。
例如:
trace(math.min(9, 8));
trace(math.max(9, 8));
输出窗口中显示:8、9。
◎ math.sqrt平方根函数
作用:计算一个数的平方根,
例如:计算64的平方根:
trace(math.sqrt(64));
输出窗口中显示:8
◎ math.random()随机数函数
作用:该方法返回一个大于或等于0并且小于1的随机浮点数。
例如:返回 0、1、2、3 或 4 中的一个随机值:
math.random()*5;
随机数在flash中的应用非常广泛。一些下雨、下雪的场景动画中常常用到随机数的设定,以取得一种自然的特效。
2、color对象
运用好的色彩可以使flash作品具有更大的感染力,要做出好的作品在色彩搭配和控制上都得搭配合适才行。在actionscript中,color对象专门用来管理颜色。使用color对象可以实现许多色彩特效。
◎ new color()
作用:创建color对象的实例。
例如:mycolor = new color(mymc);
◎ setrgb()
作用:设置影片剪辑实例对象的rgb值,即颜色。
setrgb的参数是以十六进制表示的,0x表示十六进制,后面的6位数字每两位为一组,分别表示红、绿、蓝3种颜色成份。如0xff0000表示纯红,0x00ff00表示纯绿,0x0000ff表示纯蓝,0xffff00表示纯黄。
例如:mycolor.setrgb(0xff0000);
◎ getrgb()
作用:获取由setrgb方法指定的颜色值。
3、date对象
date对象使你可以获取相对于通用时间或相对于运行flash player的操作系统的日期和时间值。
◎ new date()
作用:创建一个date对象的实例。
例如:mydate = new date(2003, 7, 8);
这是指定时间创建一个date对象的实例。
◎ getdate()
作用:获取系统时间来创建date对象的实例。
例如:
mydate = new date();
year = mydate.getyear();
4、sound对象
在时间轴中直接嵌入声音是制作flash mv的一种通用手法,但是这种方法除了从头至尾地播放声音外,并不能对声音进行很好的控制。actionscript内置的sound对象为我们提供了管理和控制声音的一种好方法。
◎ new sound()
作用:创建sound对象的实例。
例如:mysound = new sound();
◎ attachsound()
作用:在影片播放时将【库】中的声音元件附加到场景中。
要使用该方法将声音附加到场景中,首先需要在【库】中为声音添加链接。在要添加链接的声音元件上单击鼠标右键,在弹出的快捷菜单中选择【链接】命令,弹出【链接属性】对话框,选择【为脚本导出】和【第一帧导出】两个选项。然后才可以在程序中编写类似于下面的程序代码:
mysound.attachsound("music");
◎ start()和stop()
作用:让声音开始播放和停止用sound对象播放的声音。
例如:
mysound.start();//开始播放声音
on (release) {
mysound.stop();//停止播放声音
}
Flash动作脚本基础(一)2017-04-26 16:04 | #2楼
动作脚本添加的三种方式:帧、mc(影片剪加)和按钮。
1.给帧加动作:
给帧加动作时,只需选择需要加脚本的帧,打开动作面板,直接输入脚本即可。
2.给按钮加动作:
给按钮加动作时需要选择【影片剪辑控制】集合中的on命令。这个命令是专门为按钮设计的,它提供了八种按钮的事件。分别是按下,滑过,释放,滑离,外部释放,拖过,拖离和按键。
①、press
在鼠标指针经过按钮时按下鼠标按钮,会触发本事件一次。
②、release
在鼠标指针经过按钮时释放鼠标按钮,会触发本事件一次。
③、releaseoutside
当鼠标指针在按钮之内时按下按钮后,将鼠标指针移到按钮之外,此时释放鼠标按钮,会触发本事件一次。
可以利用on的这个事件来制作游戏。
④、rollout
鼠标指针滑出按钮区域,会触发本事件一次。
⑤、rollover 鼠标指针滑过按钮,会触发本事件一次。当鼠标指针从按钮上滑过的时候,动画就开始执行播放动作了,而不需要点击它。我们可以利用on的这个特点来制作一些图示板,非常简单有效。
滑离与滑过并不是相同的,滑离是指鼠标滑动到按钮上并离开以后开始响应,而滑过是指只要鼠标滑到按钮上,就开始执行动作。
⑥、dragout
在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮区域,会触发本事件一次。
⑦、dragover 在鼠标指针滑过按钮时按下鼠标按钮,然后滑出此按钮,再滑回此按钮。
拖过的效果是在按钮上点击并按住鼠标不放,移出按扭区,再移回按钮上释放的事件。
拖离与拖过有所不同,只要在按钮上按住鼠标左键然后移动到按钮外就会相应。他于滑离的区别在于拖离需要按住鼠标左键。
⑧keypress
("key") 按下指定的键,会触发本事件一次。对于此参数的 key 部分,需指定键控代码或键常量。
例如:
on (dragout) { 当鼠标拖离按钮时执行下面的动作
play(); 执行播放动作
}
再如:
on (keypress "z") { 当按下键盘中的“z”健时执行下面的动作
play(); 执行播放动作
}
方法:首先选择需要添加脚本的按钮,在动作面板上加入所需的脚夫本即可.
3.给mc加动作脚本:
要为影片剪辑添加脚本,首先要选中影片剪辑,再打开它对应的动作面板,然后在其中输入脚本。影片剪辑脚本和按钮的脚本类似,它们都使用事件处理函数,与按钮的on关键字不同,影片剪辑使用 onclipevent关键字。当某种影片剪辑事件发生时,就会触发相应的事件处理函数。
onclipevent():
这个语句指专门给电影剪辑添加命令的语句,就像on语句是专门给按钮添加命令一样。
影片剪辑事件类别
①、onclipevent(load)
当影片片断第一次加载到时间轴时,会触发本事件一次
②、onclipevent(enterframe)
当影片片断加载时间轴时,不论是放映或停止状态或显示与否,都会不断触发本事件。所以只要此片断被加载后,此事件会一直不断地执行,直到影片片断被删除为止。
③、onclipevent(unload)
当影片片断被删除时,会触发本事件一次。
④、onclipevent(mousedown)
当鼠标左键被按下时,会触发本事件一次。
⑤、onclipevent(mouseup)
当被按下的鼠标左键被放开时,会触发本事件一次。
⑥、onclipevent(mousemove)
只要在场景中移动鼠标,就会不断触发本事件。
⑦、onclipevent(keydown)
当键盘被按下时,会触发本事件。
⑧、onclipevent(keyup)
当已按下的键盘被松开时,会触发本事件一次
enterframe()语句和load()语句:
影片剪辑最重要的两种事件是load和enterframe, load事件在影片剪辑完全加载到内存中时发生。在每次播放flash影片时,每个影片剪辑的load事件只发生一次。
在主时间轴停止播放时,影片中的影片剪辑并不会停止播放,这个特性决定了影片剪辑的另一个事件enterframe的重要性。enterframe事件在影片每次播放到影片剪辑所在帧时发生。如果主时间轴中只有一帧,且不论它是否在该帧停止,该帧中的影片剪辑都会不断触发enterframe事件,且触发的频率与flash影片的帧频一致。
例如:
onclipevent (load) {
var i = 0;
}
onclipevent (enterframe) {
trace(i);
i++;
}
当影片剪辑的load事件发生时,将变量i设置为0。当影片剪辑的enterframe事件发生时,向输出窗口中发送i的值,然后将i加1。输出窗口中会从0开始输出以1递增的数字序列,直到影片被关闭为止。
为了熟悉影片剪辑事件处理函数的用法,我们来为影片剪辑编写一段简单的脚本,使影片剪辑逆序播放,我们将从影片剪辑的最后一帧处开始播放,使用prevframe命令使影片剪辑每次后退一帧。
选中影片剪辑mc,此时动作面板的标题栏中应为“动作-影片剪辑”。打开动作面板,其中添加了如下actionscript:
onclipevent (load) {
gotoandstop(40);
}
onclipevent (enterframe) {
prevframe();
}
在事件处理函数onclipevent (load)中,令flash影片的播放头转到影片剪辑的第40帧(即最后一帧)。这个事件处理函数只在影片剪辑被加载完成时执行1次。第2个事件处理函数onclipevent (enterframe)每播放1帧就执行1次,使影片剪辑回退1帧。
按ctrl+enter键测试影片,你将看到影片剪辑的动画将从后往前进行播放,直到影片剪辑的时间轴回到第1帧,prevframe命令不起作用,影片剪辑停止播放。要让它连续不断的播放,可以在影片剪辑元件mc的时间轴第1帧的动作面板中添加如下语句:
gotoandstop(40);
load()语句的用法其实很简单,load()语句就是装载的意思,一但程序被激活,load()语句就发生事件,不用点击任何按钮就可以执行程序体,比如,你如果一打开你的swf格式的影片就想进入新浪主页,那么你就在你的fla文件(源文件)的第一贞上编写:
load(geturl("
这个语句就是说:你发布的swf格式的影片或者网页,一旦被打开,那么立即执行程序---直接进入新浪主页,并且在另外一个窗口打开新浪主页(_blank就是在另外一个窗口打开)!!
【flash动作脚本从入门开始】相关文章:
flash课件制作常用的脚本语句09-24
FLASH课件制作经常要用到一些AS脚本09-24
校园电影脚本09-24
电影脚本制作09-24
平面拍摄脚本09-24
婚礼摄像脚本09-24
电影脚本写作09-24
牙膏广告脚本09-24
宣传短片脚本09-24