APP下载

Flash 中的AS 编程环境和语法结构特点

2013-12-31邵静

电脑知识与技术 2013年15期

摘要:各种编程语言都有各自的编程环境和语法结构的特点,该文主要介绍Flash中ActionScript的编程环境和语法结构的特点。

关键词:影片剪辑;对象;事件

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)15-3622-03

学过动画制作的人都有这样一个体会,要制作出一个好的Flash动画,使用AS编写动作脚本是必不可少的,即使只是很简单的几句代码,也会在整个Flash动画中起到画龙点睛的作用。然而,AS又有别于其他的编程语言,它的编程环境、语法结构有自己的特点和规则,需要我们在使用之前有一定的了解。

1 AS的编程环境

选取某一桢、某一个按钮或某一个影片剪辑元件的实例,右键打开动作面板,就进入了AS的编程环境。

1)帧:要把AS写在桢上,需要选取这一桢,右键打开动作面板。写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,写在这个帧上面的AS就被触发执行了。

实例:选取影片结尾的一个关键帧,然后打开AS面板,在桢上写入stop()。那么在播放影片的时候,播放到最后一桢时,将会停止。

2)按钮:要把AS写在按钮上,需要点选目标按钮,右键打开动作面板。与帧上的AS不同,按钮上面的AS是要有触发条件的。

实例:要实现按下按钮后停止播放影片,那么我们需要做一个按钮,放到主场景,点选按钮,然后打开AS面板。如果在按钮上写stop();那么,输出的时候就会提示错误。正确的应该这样写:

on(release){

stop();

}

整个代码翻译过来就是: 当(松开鼠标){停止播放}。写在按钮上面的AS的格式应该是:on(发生的事件){要执行的动作代码}

3)影片剪辑MC:写在MC上面的AS和写在按钮上的大同小异。首先点选MC,然后右键打开AS面板。

实例:要实现播放影片时先停止场景中影片剪辑MC的播放,需要先点选影片剪辑MC,在打开的动作面板上输入如下代码:

onClipEvent(load){

stop();

}

整个代码翻译过来就是:当影片剪辑(载入){停止播放}。写在影片剪辑上面的AS的格式应该是:on影片剪辑(发生的事件){要执行的动作代码}。

2 AS的语法结构

2.1 AS中的对象

虽然AS不是真正的面向对象的编程语言,但是它也有对象的概念。这个概念贯穿整个AS的始终,所以,对对象的理解,比对语法或其他的理解更为重要。

在前面的实例中我们可以看到,AS中任何动作都离不开桢、影片剪辑和按钮这些元素,他们是动作的主体,有时是执行动作的主体,有时又是被执行动作的主体,在AS中,我们称它们为对象。

2.2AS中对象的路径

AS中对象的路径用点语法来表示。路径分两种:绝对路径和相对路径。

2.2.1 绝对路径

例如:要指定场景里面的一个影片剪辑里面的按钮对象,需要这样确定他的路径“场景.影片剪辑.按钮”,即“场景(里面的)影片剪辑(里面的)按钮”。这是绝对路径。

实例:要实现播放场景(_root)里面的MC,需要输入如下代码:

_root.MC.play();

这里为什么要在play后面加()呢?因为播放是方法不是对象,为了让Flash知道这是个方法,我们必须加上(), 否则它会以为场景里面有“播放”这个东西。

绝对路径的语法结构为:对象的绝对路径.方法()。

2.2.2 相对路径

例如:主场景中有一个MC,在播放影片的时候我们希望它不被播放,那么我们可以选中它,在动作面板里面输入如下代码:

_root.Mc.stop();

那么,当我们把它移动到其它场景当中去或者我们给这个MC改了名字之后,这段代码就得重新写了。要实现无论把对象移到哪里区或者把对象的名字如何改都不影响代码的执行,只需要把我们要执行的代码写在对象的内部就可以了。即在Mc的Timeline的第一帧上写上如下代码:

this.stop();

这里的this是Flash的关键词,指AS所在的这条Timeline,现在不管这个MC放在哪里,名字是什么,肯定会停下来。如果在这里写上_root.stop();那就错了。

这个this就是相对路径的一个关键词,用来表示“当前指定的这个对象”。另外的一个关键词就是_parent,用来表示当前指定对象的父级。

例如:“教室.黑板.字”是这样一个从属关系,那么如果在“字”这个对象上写如下代码:

_parent.敲();

则表示敲“黑板”,而不是敲“字”。

相对路径的语法结构为:对象的相对路径.方法()。

3 AS中的常用事件

AS中的动作代码通常要依靠一些事件的发生来触发,针对按钮和影片剪辑有几个常用的事件:

1)按钮的常用事件:

On(release) {要执行的动作代码}//当(松开){执行动作}

On(releaseOutside) {要执行的动作代码}//当(在按钮外面松开){执行动作}

On(press) {要执行的动作代码}//当(按下){执行动作}

On(rollover) {要执行的动作代码}//当(鼠标进入按钮的感应区){执行动作}

On(rollout) {要执行的动作代码}//当(鼠标离开按钮的感应区){执行动作}

2)影片剪辑MC的常用事件:

onClipEvent(load){要执行的动作代码}// 当影片剪辑(载入){执行动作}

onClipEvent(unload){要执行的动作代码}// 当影片剪辑(卸载){执行动作}

onClipEvent(mouseDown){要执行的动作代码}// 当(按下鼠标){执行动作}

onClipEvent (mouseMove){要执行的动作代码} //当(移动鼠标){执行动作}

onClipEvent (mouseUp){要执行的动作代码} 当//(松开鼠标){执行动作}

4 AS中的常用动作代码

4.1 控制场景播放的动作代码

play(); //让时间轴的指针播放

stop(); //把时间轴的指针停止在程序触发时候的那个帧

gotoAndPlay(); //让指针跳转到括号中指定的帧,然后继续播放

gotoAndStop(); //让指针跳转到括号中指定的帧,并停止在那个帧

nextFrame(); //在时间线上往后走一帧

prevFrame(); //在时间线上往前走一帧

实例:制作一个气泡不断从水底升起的动画。

第一步:制作一个气泡的图形元件,再制作一个气泡从水底升起的影片剪辑元件,时间线长度为50桢。

第二步:在场景中拖入多个影片剪辑元件,不规则分布在场景下方区域,并位于不同的图层。

第三步:为每一个图层上面的元件写入动作代码如下:

onClipEvent(load){

gotoAndPlay(n);

}

其中给n赋值1~50之间的数值即可。

当播放影片时,会出现气泡不断从水底升起的动画。

4.2 描述对象的属性的代码

_x //表示对象所在位置的横坐标

_y //表示对象所在位置的纵坐标

_alpha //表示对象的透明度

_width //表示对象的宽度

_name //描述对象的名称

实例:使用按钮控制影片剪辑沿水平方向和竖直方向移动。

第一步:制作一个闪动的星星的影片剪辑元件和一个按钮元件。

第二步:在场景中拖入一个影片剪辑元件实例,给实例命名为mc1,并拖入一个按钮元件。

第三步: 在按钮元件的动作编辑窗口中输入如下代码:

on (press) {

mc1._x=mc1._x+20

}

播放影片,当点击按钮时,闪动的星星会沿X轴方向向右移动20个像素的位移。同样的方法可以制作其他按钮控制闪动的星星元件向左、向上或向下移动。

了解了AS的编程环境和语法结构的特点,对于进一步学习使用Flash的AS编程语言实现更多更复杂的动画效果会有很大的帮助。

参考文献:

[1] 明丽宏,彭德林. Flash CS4中文版模块教程[M].北京:中国铁道出版社,2011.

[2] 沈大林,张晓蕾,罗红霞.《Flash网站设计师》 就业技能培训教程(附光盘) [M]. 北京:中国铁道出版社,2008.

[3] 曹帮琴,陈军,吴明慧. Flash多媒体课件制作课件[M].北京:中国铁道出版社,2011.