1、ActionScript3.0脚本语言开发环境简介
作为一个重要的改变,ActionScript3.0已经不支持在元件实例上添加代码了,这样便于代码的组织和管理。所有的程序代码都写在时间轴或单独的脚本文件里面。ActionScript3.0的设计思想就是实现代码和设计分开。
1.1“动作”面板“动作”面板是用来编辑、调试时间轴代码的场所。在FlashCS6开发环境中按F9键或执行“窗口”→“动作”命令可以打开“动作”面板。“动作”面板分为4个区域,分别是“脚本窗口”、“面板菜单”、“动作工具箱”和“脚本导航器”。
1.2面板菜单“面板菜单”为编辑代码提供了多个功能按钮,用于插入代码、语法检查、调试等功能。无论是在“动作”面板中还是通过“脚本窗口”编辑独立的.as文件,Flash都提供了强大的代码编辑和管理功能,接下来介绍一下这些方面的特性。
1.3脚本助手在“动作”面板的右上角有一个“脚本助手”按钮,单击此按钮可以使“动作”面板在“脚本助手”模式和“普通”模式间切换。在“脚本助手”模式下,“动作”面板提供了一个简便的脚本编写交互界面。FlashCS6提供了代码折叠功能,这样在编辑行数众多的代码的时候,可以按选择内容或标记从视图隐藏代码,这样一来就可以理清程序脉络,更加轻松地专注于正在开发的代码。这样,可以清楚地看到视图中包含的所有元素。可以使用“面板菜单”中的、和来实现折叠和展开功能。
1.4代码提示在“动作”面板或“脚本”窗口中输入代码时,Flash会检测当前输入的内容,并根据需要显示相应的代码提示,帮助用户生成完整的语句。
1.5语法检查,错误导航程序中的错误分为语法错误和逻辑错误两种。对于语法错误,可以简单的通过单击“面板菜单”中的语法检查按钮进行检测。在测试影片中也会导致编译错误,并准确地指出错误的类型和位置。按【Ctrl+Enter】键测试影片,发现发生了编译错误。双击任意一个错误提示,对应这条错误信息的出错代码行会被反显,可使用户迅速定位错误发生的位置。通过检查发现函数声明中的两个var是多余的,删除后测试影片正常。
2、ActionScript脚本语言开发具体案例简介
通过在Flash项目[2]里用ActionScript3.0实现交互型音乐舞台。在用户与界面交互时使用舞台、按钮控制影片剪辑实现各种动作效果,提供完整的交互音景ActionScript3.0让用户沉浸在一个互动的音乐环境中。具体分成两大任务完成。任务1创建运动舞台基本界面具体步骤:STEP(1)启动FlashCS5,创建一个新的文档,保存并命名为“FLASH运动舞台”。舞台大小为550*400像素,帧频FPS为24,舞台背景颜色为#FFFF99。注意:舞台大小、帧频在后续编程中有重大作用。STEP(2)设计运动展示界面,新建background图层,它是一个全屏幕静态图层。STEP(3)新建star图层,这一层添加影片剪辑star(在此之前首先在库中创建一个影片剪辑star),选中它,在属性面板中命名为star_mc。STEP(4)在库中创建四个球类影片剪辑元件ball,并依据球类分别命名为ball1、ball2、ball3、ball4。STEP(5)创建一个ball图层,在此图层中我们参考图层star的操作,把四个球类导入到此图层,并分别命名。STEP(6)创建text图层,在此图层中我们插入文本框,此文本框我们可以选择TLF文本类型的可选文本,并且给此文本框命名为ball_txt,它将在动画中起到提示的作用。STEP(7)创建buttons图层,在此图层我们按顺序插入七个控制按钮,并按顺序分别命名为bt1_btn、bt2_btn、bt3_btn、bt4_btn、bt5_btn、bt6_btn、bt7_btn,它们将在后面实现舞台的各种交互效果。STEP(8)我们再创建一个图层取名为actions,这个图层将作为我们的脚本编辑图层。STEP(9)最后单击菜单栏中的【文件】|【保存】命令,在弹出的【另存为】对话框中选择合适的保存路径,并将文件保存为“FLASH运动舞台.fla”,界面完成。任务2完成脚本动画设计在界面完成的基础上,我们逐步将完成影片的动画交互效果。具体步骤:STEP(1)导入ActionScript3.0组件类包[3],FLASH项目标准创作会首先导入顶级类包,本项目将会有影片剪辑和相应的动作,我们导入相应的类包,具体代码如下:importflash.display.MovieClip;importfl.transitions.Tween;importfl.transitions.easing.*;STEP(2)基于影片剪辑star_mc的创作运动舞台的星星star是一个时尚的元素,我们可以给它设计两个舞台动作。动作1:单击元件star可以旋转角度为10度star_mc.addEventListener(MouseEvent.CLICK,rotateStar);functionrotateStar(e:MouseEvent):void{star_mc.rotation+=10;}动作2:舞台动作star自动向右移动并循环addEventListener(Event.ENTER_FRAME,starMove);functionstarMove(e:Event):void{if(star_mc.x<stage.stageWidth){star_mc.x+=2;}else{star_mc.x=0;}}STEP(3)影片剪辑ball(四个球类)的统一首先设计变量ball,它可以替代四个球类的任一个,并且默认球类可以设定,本项目我们赋给的默认球类是排球。varball:MovieClip=ball3;ball_txt.text="排球已经被选中!";STEP(4)针对四个不同球类分别设计动作,单击任一球类后后文本框文字显示为选中球类名称且实现当前球类值赋值给ball,可以进行后续按钮动作。下列代码为足球的动作效果,其余三个球类的代码类同。ball1.addEventListener(MouseEvent.CLICK,onball1);functiononball1(e:MouseEvent):void{ball=ball1;ball_txt.text="足球已经被选中!";}STEP(5)选中控制按钮并设计不同动作效果,选中第一个按钮bt1_btn,它可以控制选中的球类的弹性放大效果。bt1_btn.addEventListener(MouseEvent.CLICK,bt1);functionbt1(e:MouseEvent):void{varbt1X:Tween=newTween(ball,"scaleX",Elastic.easeOut,0.4,3,5,true);varbt1Y:Tween=newTween(ball,"scaleY",Elastic.easeOut,0.4,3,5,true);}STEP(6)选中控制按钮并设计不同动作效果,选中第二个按钮bt2_btn,它可以控制选中的球类的弹性缩小效果。bt2_btn.addEventListener(MouseEvent.CLICK,bt2);functionbt2(e:MouseEvent):void{varbt2X:Tween=newTween(ball,"scaleX",Elastic.easeOut,2,0.3,4,true);varbt2Y:Tween=newTween(ball,"scaleY",Elastic.easeOut,2,0.3,4,true);}STEP(7)选中控制按钮并设计不同动作效果,选中第三个按钮bt3_btn,它可以控制选中的球类的角度变化效果。bt3_btn.addEventListener(MouseEvent.CLICK,bt3);functionbt3(e:MouseEvent):void{varspin:Tween=newTween(ball,"rotation",Elastic.easeOut,0,180,3,true)}STEP(8)选中控制按钮并设计不同动作效果,选中第四个按钮bt4_btn,它可以控制选中的球类隐藏的效果。bt4_btn.addEventListener(MouseEvent.CLICK,bt4);functionbt4(e:MouseEvent):void{ball.visible=false;}STEP(9)选中控制按钮并设计不同动作效果,选中第五个按钮bt5_btn,它可以控制选中的球类显示的效果。bt5_btn.addEventListener(MouseEvent.CLICK,bt5);functionbt5(e:MouseEvent):void{ball.visible=true;}STEP(10)选中控制按钮并设计不同动作效果,选中第六个按钮bt6_btn,它可以控制选中的球类透明度降低的效果。bt6_btn.addEventListener(MouseEvent.CLICK,bt6);functionbt6(e:MouseEvent):void{vartweenbt6:Tween=newTween(ball,"alpha",None.easeOut,1,0,5,true);}STEP(11)选中控制按钮并设计不同动作效果,选中第七个按钮bt7_btn,它可以控制选中的球类透明度增加的效果。bt7_btn.addEventListener(MouseEvent.CLICK,bt7);functionbt7(e:MouseEvent):void{vartweenbt7:Tween=newTween(ball,"alpha",None.easeIn,ball.alpha,1,5,true);}STEP(12)最后单击菜单栏中的【文件】|【保存】命令,在弹出的【另存为】对话框中选择合适的保存路径,并将文件保存为“FLASH运动舞台.fla”,导出最终作品并测试效果。
3、ActionScript3.0动画开发的困难之处
基于ActionScript3.0的Flash动画设计与制作在项目开发过程中还存在着一些需解决的难题,如ActionScript3.0类的应用、第三方插件的使用开发、跨平台应用等方面,具体而言:1.类[4]的应用:ActionScript3.0中已定义了多个类并仍在继续扩充,类别多且详细,开发人员熟悉度有不足和其它语言嵌套开发能力仍有较大提高。2.第三方插件的应用:作为一个二维动画平台,FLASH[5]提供很多了扩展性第三方插件,它们的应用可以个项目增彩,此方面受限软件设备仍有较大不足。3.跨平台应用:不仅仅是WINDOWS系统下的开发,苹果的MacOS平台、LINUX平台、手机android平台下都可以进行开发、发布项目,但我们此方面制作不足。
4、结束语
Flash为动画而生,但它已不仅仅限于动画的开发。ActionScript3.0采用的是面向对象的编程方法,其语法特点类似与Java,不同的是,其与图形、动画结合更紧密,很容易实现界面丰富并且有很强交互性的效果,合理运用Flash自带的强大的组件库,使得Flash成为开发富媒体[6]应用程序领域的发挥巨大作用。并且可以更好融合传统Flash动画的绘画、动画编辑、特效处理、音效处理等功能,突出交互特性和人机互动,进入Flash动画设计与制作的新篇章。
作者:汪卫平 袁芳 单位:江西财经职业学院