Flash动画制作AS3脚本教学探讨
2016-10-18孙宏龙
孙宏龙
摘要:Flash是非常流行的一款多媒体矢量动画软件,在互联网、多媒体课件制作以及游戏软件制作领域有广泛的应用,ActionScript作为Flash的脚本语言,在动画中应用脚本语言,可以制作出交互性强、动画效果更加丰富的Flash动画。目前,Flash软件的最新版本是cs6,对应的脚本语言是AS3,但现在很多Flash动画制作教材中,关于Flash的脚本语言应用的内容仍然是AS2,该文结合多年的Flash动画制作教学体会,总结利用AS3进行脚本语言应用的教学探讨。
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0162-02
1 Flash软件及ActionScript的发展
Flash软件常用版本经历了Flash 5、Flash mx(6)、Flash mx2004、Flash 8.0、Flash cs3、Flash cs4、Flash cs5、Flash cs6。flash的脚本发展,从最初发展到现在经历了三个过程,Actionscript1.0,Actionscript2.0到现在的Actionscript3.0,flash8.0之前的版本都使用的是as2.0以前的脚本,早期的flash 3中采用的是ActionScript 1.0,最简单、最灵活、比较容易理解,这种状况一直保持到flash 5,在flash mx (即flash 6)版本中得到的增强;Flash MX2004 (即Flash 7)引入了ActionScript 2.0,ActionScript 2.0则相对比较规范,是1.0的升级版。首次将OOP(Object Oriented Programming,面向对象的程序设计)引入Flash。它带来了两大改进:变量的类型检测和新的class类语法。ActionScript 2.0的变量类型会在编译时执行强制类型检测;从 flash CS3(即flash 9) 开始升级为ActionScript 3.0,更加系统、规范和完善的OOP。ActionScript 3不光有一个带有新的版本号的ActionScirpt 语言,还有一个全新的虚拟机。ActionScript 1.0和ActionScript 2.0都使用是AVM1(ActionScript 虚拟机1),因此它们在需要回放时本质上是一样的,在ActionScript2上它增加了强制变量类型和新的类语法,它实际上在最终编译时变成了ActionScript 1,而ActionScript 3.0运行在AVM2上,一种新的专门针对ActionScirpt 3代码的虚拟机。在编译阶段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虚拟机采用了OOP思想,在执行速度上比起avm1也快了10倍,还提供了异常处理。同时使用AS2时,一旦出错,AVM1选择的是静默失败,让人根本不知道什么地方出错了,会浪费大量的时间去查错,而AVM2与目前主流的编译器一样,会有异常处理,运行出错会输出错误提示,工作效率大大提高。
2 AS3与AS2的主要区别
新建一个flash文档时,会有新建文档提示,我们可以选择建立as3文档或as2文档。
在ActionScript2.0(AS2)文档中,代码可以写在三个地方,1)写在帧上;2)写在影片剪辑上;3)写在按钮上。
在ActionScript3.0(AS3)文档中,代码只能写在帧中,不像AS2那么随意,如果控制按钮或影片剪辑,那就只能靠实例名来控制了。其实这也是为了规范,和其他编程软件一样,要控制哪个组件,你就得有这个组件的名字。
AS3中带下划线的变量不需要下划线了,如_x, _y,变为x,y,其他的如_root、_visible、_width、_height 等都是直接去掉下划线;_xscale 变为 scaleX, _yscale 变为 scaleY,
scale 值的表示方式改变:
AS2 _xscale = 200 表示 200%
AS3 scaleX = 2 表示 200%
3 ActionScript3.0文档应用例子
3.1 动画播放停止的脚本
创建一个ActionScript3.0动画,新建一个按钮图层,并拖入两个按钮,给单击实现停止的按钮实例命名为an1, 给单击实现播放的按钮实例命名为an2,为实现动画测试时停止在第一帧,单击播放和停止按钮实现控制动画,可新建as图层,并在as图层第一帧写入如下脚本:
stop();
an1.addEventListener(MouseEvent.CLICK,a1);
function a1(e:MouseEvent) {
stop();
}
an2.addEventListener(MouseEvent.CLICK,a2)
function a2(e:MouseEvent) {
play();
}
3.2 带有影片剪辑元件动画播放停止的实现脚本
如果动画中应用有影片剪辑元件,会看到开始测试,影片剪辑元件是播放的,单击停止按钮,影片剪辑元件不起作用,可以作以下改动实现,在属性面板给影片剪辑实例命名ypjj,脚本更改为:
stop();
ypjj.stop();
an1.addEventListener(MouseEvent.CLICK,a1);
function a1(e:MouseEvent) {
stop();
ypjj.stop();
}
an2.addEventListener(MouseEvent.CLICK,a2)
function a2(e:MouseEvent) {
play();
ypjj.play();
}
3.3 利用四个按钮控制动画及影片剪辑元件播放停止的实现脚本
在动画中拖入四个按钮,给单击实现动画停止的按钮实例命名为an1, 给单击实现动画播放的按钮实例命名为an2,给单击实现影片剪辑停止的按钮实例命名为an3, 给单击实现影片剪辑播放的按钮实例命名为an4,为实现动画测试时动画及影片剪辑停止在第一帧,单击播放和停止按钮分别实现控制动画及影片剪辑的播放和停止,在as图层第一帧写入如下脚本:
stop();
ypjj.stop();
an1.addEventListener(MouseEvent.CLICK,a1);
function a1(e:MouseEvent) {
stop();
}
an2.addEventListener(MouseEvent.CLICK,a2)
function a2(e:MouseEvent) {
play();
}
an3.addEventListener(MouseEvent.CLICK,a3);
function a3(e:MouseEvent) {
ypjj.stop();
}
an4.addEventListener(MouseEvent.CLICK,a4)
function a4(e:MouseEvent) {
ypjj.play();
}
教学中可以提供脚本,让学生输入,也可以建立好脚本文本文件,让学生复制相关脚本,直接应用。
以上是本人在多年的Flash动画教学中关于as3应用思考,自己经历了由as2到as3的转变,现在很多Flash cs3、cs4、cs5、cs6的教材,提供的as脚本还是as2的内容,在这些内容的基础上,希望能为学习as3脚本提供帮助。