Flash动作脚本基础.docx

上传人:b****5 文档编号:4317538 上传时间:2022-11-29 格式:DOCX 页数:32 大小:31.93KB
下载 相关 举报
Flash动作脚本基础.docx_第1页
第1页 / 共32页
Flash动作脚本基础.docx_第2页
第2页 / 共32页
Flash动作脚本基础.docx_第3页
第3页 / 共32页
Flash动作脚本基础.docx_第4页
第4页 / 共32页
Flash动作脚本基础.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

Flash动作脚本基础.docx

《Flash动作脚本基础.docx》由会员分享,可在线阅读,更多相关《Flash动作脚本基础.docx(32页珍藏版)》请在冰豆网上搜索。

Flash动作脚本基础.docx

Flash动作脚本基础

Flash动作脚本基础

(一)动作脚本添加的三种方式:

帧、影片剪辑(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){

vari=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("","_blank"))

这个语句就是说:

你发布的swf格式的影片或者网页,一旦被打开,那么立即执行程序——直接进入新浪主页,并且在另外一个窗口打开新浪主页(_blank就是在另外一个窗口打开)!

  

(二)Actionscript的基本语法规则:

使用Actionscript编写脚本时,如果使用正常模式的动作面板,通过菜单和列表选择选项,可以创建简单的动作。

要想用Actionscript编写功能强大的脚本,你就必须深入了解和学习FlashMX的Actionscript脚本语言。

像其它脚本语言一样,Actionscript也有变量、函数、对象、操作符、保留关键字等语言元素,有它自己的语法规则。

Actionscript允许用户创建自己的对象和函数。

Actionscript的语法和风格与javascript非常相似,但不完全相同。

Actionscript拥有自己的句法和标点符号使用规则,这些规则规定了一些字符和关键字的含义,以及它们的书写顺序。

例如,在英语中用句号结束一个句子,而在Actionscript中则用分号结束一个语句。

下面列出的是Actionscript的一些基本语法规则,对于比较比较特别的规则,请参阅Actionscript词典。

 1.点语法

在Actionscript中,点(.)被用来指明与某个对象或电影剪辑相关的属性和方法。

它也用标识指向电影剪辑或变量的目标路径。

点语法表达式由对象或电影剪辑名开始,接着是一个点,最后是要指定的属性、方法或变量。

例如,表达式ballMC.x是指电影剪辑实例ballMC的_X属性,_X电影剪辑属性指出编辑区中电影剪辑的X轴位置。

例如,submit是在电影剪辑form中设置的一个变量,而form又是嵌套在电影剪辑shoppingCart中的电影剪辑。

表达式shoppingCart.form.submit=true的作用是设置实例form的submit变量的值为true。

表达一个对象或电影剪辑的方法遵循相同的模式。

例如,ballMC实例的play方法用于移动ballMC的时间轴播放头,就像下面的语句:

ballMC.play();

点语法使用两个特殊的别名:

_root和_parent。

别名_root是指主时间轴。

可以使用_root别名创建一个绝对路径。

例如,下面的语句调用主时间轴中电影剪辑functions的buildGameBoard函数:

_root.functions.buildGameBoard();

FlashMX允许使用别名_parent来引用嵌套当前电影剪辑的电影剪辑。

也可以用_parent创建一个相对目标路径。

例如,如果电影剪辑dog被嵌套在电影剪辑animal之中,那么,在实例dog上的下列语句告诉animal电影剪辑停止播放:

 

_parent.stop();

 2.斜杠语法

Flash的以前版本是使用斜杠语法指出电影剪辑或变量的目标路径的。

FlashMX播放器仍然支持这种语法,但不推荐使用。

在斜杠语法中,斜杠被用来代替点,用以标明电影剪辑或变量的路径。

要指出一个变量,可以在变量前加上冒号,如下面的语句所示:

myMovieClip/childMovieClip:

myvariable

我们现在用点语法取代上述斜杠语法来表示上面的目标路径:

myMovieClip.childMovieClip.myvariable

斜杠语法在tellTarget动作中使用最为普遍,但这种动作在FlashMX中已不再推荐使用。

【说明】与其使用tellTarget动作还不如使用with动作与点语法兼容。

 

3.大括号

Actionscript语句用大括号({})分块,如下面的脚本所示:

on(release){

myDate=newDate();

currentMonth=myDate.getMonth();

4.分号

Actionscript语句用分号(;)结束,但如果你省略语句结尾的分号,Flash仍然可以成功地编译你的脚本。

例如,下面的语句用分号结束:

colum=passedDate.getDay();

row=0;

同样的语句也可以不写分号:

colum=passdDate.getDay()

row=0

5.圆括号

定义一个函数时,要把参数放在圆括号中:

functionmyfunction(name,age,reader){

调用一个函数时,也要把要传递的参数放在圆括号中:

myfunction("Steve",10,true);

圆括号可以用来改变Actionscript的运算优先级,或使自己编写的Actionscript语句更容易阅读。

也可以用圆括号来计算点语法点左边的表达式。

例如,在下面的语句中,圆括号使表达式newcolor(this)得到计算,并创建了一个新的颜色对象:

onClipEvent(enterFrame){

(newColor(this)).setRGB(oxffffff);

}

在上例中,如果不使用圆括号,就需要在代码中增加一个语句来计算它:

onClipEvent(enterFrame){

myColor=newColor(this);

myColor.setRGB(0xffffff);

6.大小写字母

在Actionscript中,只有关键字区分大小写。

对于其余的Actionscript,可以使用大写或小写字母。

例如,下面的语句是等价的:

cat.hilite=true;

CAT.hilite=true;

但是,遵守一致的大小写约定是一个好的习惯。

这样,在阅读Actionscript代码时更易于区分函数和变量的名字。

如果在书写关键字时没有使用正确的大小写,你的脚本将会出现错误。

例如下面的两个语句:

setProperty(ball,_xscale,scale);

setproperty(ball,_xscale,scale); 

前一句是正确的,后一句中property中的p应是大写而没有大写,所以是错误的。

在动作面板中启用彩色语法功能时,用正确的大小写书写的关键字用蓝色区别显示,因而很容易发现关键字的拼写错误。

7.注释

需要记住一个动作的作用时,可在动作面板中使用comment(注释)语句给帧或按钮动作添加注释。

如果你在协作环境中工作或给别人提供范例,添加注释有助于别人对你编写的脚本的正确理解。

在动作面板中选择comment动作时,字符“//”被插入到脚本中。

如果在你创建脚本时加上注释,即使是较复杂的脚本也易于理解,例如:

on(release){

//建立新的日期对象

myDate=newDate();

currentMonth=myDate.getMonth();

//把用数字表示的月份转换为用文字表示的月份

monthName=calcMoth(currentMonth);

year=myDate.getFullYear();

currentDate=myDate.getDat();

}

在脚本窗口中,注释内容用粉红色显示。

它们的长度不限,也不影响导出文件的大小。

 

8. 关键字

Actionscript保留一些单词,专用于与本语言之中。

因此,不能用这些保留字作为变量、函数或标签的名字。

下表列出了Actionscript中所有的关键字:

breakcontinuedeleteelse

forfunctionifin

newreturnthistypeof

varvoidwhilewith

【注意】这些关键字都是小写形式,不能写成大写形式。

 

9.常量

常量有其值永不改变的属性。

常数用大写字母列于动作工具箱中。

例如,常数BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key对象的属性,指键盘上的键。

要测试用户是否在按Enter键,可使用下面的语句:

if(keycode()==key.ENTER){

alert="你准备好了吗?

"

controlMC.gotoAndStop(5);

}

Actionscript中的术语

Actionscript根据特定的语法规则使用特定的术语。

以下按字母顺序介绍重要的Actionscript术语。

Actions(动作):

是指导Flash电影在播放时执行某些操作的语句。

例如,gotoAndStop动作就可以将播放头转换到指定的帧或帧标记。

Action(动作)也可以被称作statement(语句)。

Arguments(参数):

是允许将值传递给函数的占位符。

例如,以下语句中的函数welcome就使用了两个参数firstName和hobby来接收值:

functionwelcome(firstName,hobby){

welcomeText="Heelo,"+firstName+"Iseeyouenjoy"+hobby;

}

Classed(类):

是各种数据类型。

用户可以创建“类”并定义对象的新类型。

要定义对象的类,用户需创建构造器函数。

Constants(常量):

是不会改变的元素。

常量对于值的比较非常有用。

Constructors(构造器):

是用来定义“类”的属性和方法的函数。

以下代码通过创建Circle构造器函数生成了一个新的Circle类。

functionCircle(x,y,radius){

this.x=x;

this.y=y;

this.radius=radius;

}

Dat

 

(三)Flash动作脚本中常用的语句

一、play命令(播放)

1、使用格式

play()

该命令没有参数,功能是使动画从它的当前位置开始放映。

二、stop命令(停止播放)

1、使用格式

stop()

该命令没有参数,功能是停止播放动画,并停在当前帧位置。

三、gotoAndPlay命令(跳至…播放)

1、使用格式

gotoAndPlay(frame)

参数说明:

frame:

跳转到帧的标签名称或帧数。

该命令用来控制影片跳转到指定的帧,并开始播放。

2、用法举例

gotoAndPlay(10)

以上动作代码的作用是:

让播放头跳转到当前场景的第10帧并从该帧开始播放。

四、gotoAndStop命令(跳至…停止播放)

1、使用格式

gotoAndStop(frame)

参数说明:

frame:

跳转到帧的标签名称或帧数。

该命令用来控制影片跳转到指定的帧,并停止在该帧。

2、用法举例

gotoAndStop(10)

以上动作代码的作用是:

让播放头跳转到当前场景的第10帧并停止在该帧。

五、stopAllSounds命令(停止所有音轨)

1、使用格式

stopAllSounds()

该命令没有参数用来停止当前FlashPlayer中播放的所有声音。

六、if...else语句(条件语句)

1、使用格式

if(条件){

语句1;

}

else{

语句2;

}

当条件成立时,执行“语句1”的内容。

当条件不成立时,执行“语句2”的内容。

2、用法举例

if(a>b){//判断a是否大于b

trace("a>b");//若成立,则输出a>b

}

else{

trace("b>=a");//若不成立则输出b>=a

}

七、switch...case...default语句(条件语句)

1、使用格式

switch(表达式){

case值1:

执行语句1;

break;

case值2:

执行语句2;

break;

……

default:

语句;

}

先计算表达式的值,然后去各个case子句中寻找对应的执行语句。

如果找不到对应的执行语句,就执行default后面的语句。

2、用法举例

varn:

Number=25;

switch(Math.floor(n/10)){

case1:

trace("number=1");

break;

case2:

trace("number=2");

break;

case3:

trace("number=3");

break;

default:

trace("number=?

");

}

输出结果:

number=2

八、while语句(循环语句)

1、使用格式

while(条件){

执行的代码块;

}

当“条件”成立时,程序就会一直执行“执行的代码块”,当“条件”不成立时,则跳过“执行的代码块”并结束循环。

2、用法举例

vari:

Number=10;//定义一个数字型变量i,并赋初值10

while(i>=0){//先判断条件

trace(i);//若条件成立,则输出i

i=i-1;//i自身减1

}

输出结果:

依次输出10、9、8、7、6、5、4、3、2、1、0

九、do...while语句(循环语句)

1、使用格式

do{

执行的代码块;

}while(条件)

先执行代码块,后判断条件。

2、用法举例

vari:

Number=10;

do{

trace(i);//先执行代码块输出i

i=i-1;

}while(i>=0)//再判断条件

输出结果:

依次输出10、9、8、7、6、5、4、3、2、1

十、for语句(循环语句)

1、使用格式

for(变量初值;表达式;变量更新表达式){

执行的代码块;

}

2、用法举例

对1~100之间的偶数求和。

vari:

Number=0;

varsum:

Number=0;

for(i=0;i<=100;i=i+2){

sum=sum+i;

}

trace(sum);

输出结果:

2550

十一、function(自定义函数)

1、使用格式

function函数名(参数){

执行的代码块;

return表达式;

}

2、用法举例

例1:

定义一个输出函数week()。

functionweek(){//定义一个函数week()

trace("TodayisMonday");//设置函数week()的功能

}

当调用函数week()时,输出结果:

TodayisMonday

例2:

计算矩形的面积。

functionArea(a:

Number,b:

Number){

vars:

Number=a*b;

returns

}

trace("面积S="+Area(5,8));

输出结果:

面积S=40

十二、on()语句(按钮事件)

1、使用格式

on(事件){

执行动作;

}

常见的按钮事件有以下几种:

①on(press):

在按钮上按下鼠标左键,动作触发。

②on(release):

在按钮上按下鼠标左键后再释放鼠标,动作触发。

③on(rollOver):

鼠标移动到按钮上动作触发。

④on(rollOut):

鼠标移出按钮区域动作触发。

2、用法举例

制作一个按钮,并给该按钮添加如下动作代码:

on(release){

trace("你单击了一次按钮");

}

运行结果:

每单击一次按钮,就会输出一次“你单击了一次按钮”。

十三、按钮事件处理函数

1、使用格式

按钮的实例名称.按钮事件处理函数=function(){

执行的动作;

}

常见的按钮事件处理函数有以下几种:

①onPress:

在按钮上按下鼠标左键时启用。

②onRelease:

在按钮上按下鼠标左键后再释放鼠标时启用。

③onRollOver:

鼠标移动到按钮上时启用。

④onRollOut:

鼠标移出按钮区域时启用。

2、用法举例

制作一个按钮,设置该按钮的实例名为“my_btn”。

选择该按钮所在的关键帧,添加如下动作代码:

my_btn.onRelease=function(){

trace("你单击了一次按钮");

};

运行结果:

每单击一次按钮,就会输出一次“你单击了一次按钮”。

十四、onClipEvent()(影片剪辑事件)

1、使用格式

onClipEvent(事件){

执行的动作;

}

常见的影片剪辑事件有以下几种:

①onClipEvent(load):

影片剪辑被加载到目前时间轴时,动作触发。

②onClipEvent(unload):

影片剪辑被删除时,动作触发。

③onClipEvent(enterFrame):

当播放头进入影片剪辑所在的帧时,动作触发。

④onClipEvent(mouseMove):

当移动鼠标时,动作触发。

⑤onClipEvent(mouseDown):

当按下鼠标左键时,动作触发。

⑥onClipEvent(mouseUp):

当释放鼠标左键时,动作触发。

2、用法举例

绘制一个五角

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1