APP下载

基于A c t i o n S c r i p t实现顺序队列动画演示

2014-12-23李红岩张海伦

科技视界 2014年3期
关键词:入队脚本队列

邢 俊 李红岩 周 霞 张海伦

(南京信息职业技术学院 计算机与软件学院,江苏 南京210023)

0 概述

Flash作为一款强大的动画制作工具,自面世以来就受到许多动画制作者的喜欢。ActionScript作为Flash的内置语言,具有强大的交互功能,可以实现对动画流程的控制,动画中的元件的控制,并能制作出丰富的动画特效,并为动画添加交互性操作,大大地丰富了设计者的设计空间。因此Flash被广泛的用于动画演示、课件、导航、游戏等领域。

Flash演示动画即是通过动画的形式全方位地对物品,事件或概念性理论地进行生动的展示或演示。便于人们更好地去理解和认识。本文以一个队列演示动画的制作,来讲解ActionScript在演示动画制作中的应用。

队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队首。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。

1 队列动画演示

为了模拟出数据元素的入队、出队以及在队列中的存储状况。可以在Flash中将数据元素制作成元件。利用ActionScript脚本语言,通过点击按钮来控制元件的移动达到入队、出队的演示效果。除了元件的运动之外,为更好的说明整个过程,在运动的不同时段添加文字性的说明以及提示,并设置了相应的音效效果。整个过程要求动画和用户具有良好的交互性。

1.1 设计思路

为模拟队列的操作,首先假设待入队、出队的有四个元素,分别对应四个控制元件A.B.C.D;针对元素的入队、出队两类操作分别对应入队、出队两个按钮元件;另有一个重新播放按钮元件用以控制该动画重播。在队列模拟场景中,用户将通过对按钮元件的点击来控制四个控制元件的出队、入队变化,同时对各个过程配合以适当提示性文字及声音,使整个队列中各元素运动更易让人理解。

1.2 素材制作

依据上述设计思路,首先制作A.B.C.D四个数据元素元件,入队、出队、重新播放三个按钮元件,文字提示元件若干,其次是场景元件cj,最后是按钮声音元件(back2.wav,warning.wav,click1.wav,moveon2.wav,next.wav,out click.wav)。

1.3 场景布置

Flash场景大小设置为800*600,背景设置为白色,将之前制作完成的各个元件拖入到舞台上,按照之前的整体设计部署并调整好他们的大小和位置关系。其中位置可通过元件属性的x和y坐标精确的定位,同时在“属性”面板对有关实例命名:

将四个图形元件 A、B、C、D 分别命名为 A、B、C、D; 三个按钮入队、出队、重新播放分别命名为Rd、Cd、Restart;将各种元件按图1进行布局:

图1 元件布局图

1.4 actionscript脚本的应用

ActionScript是Flash中内嵌的脚本程序,使用ActionScript可以实现对动画流程以及动画中的元件的控制,从而制作出非常丰富的交互效果以及动画特效。从添加脚本的对象来分,ActionScript主要有以下几种:为时间轴中的关键帧添加的脚本,为影片剪辑元件实例添加的脚本,为按钮添加的脚本。

1.4.1 为按钮添加脚本

当点击 “入队”控制按钮后,A元素需要进行入队操作到达0位置。因此必须在入队按钮上添加相应的ActionScript脚本。

先右击入队按钮元件,在弹出的菜单中单击动作命令。弹出现动作添加窗体,如图2所示。

图2 动作添加窗体

最后将代码键入便可。

1.4.2 onEnterFrame函数的运用

为了使A元件缓慢地移动至0位置。

实现方法如下:利用函数onEnterFrame。

onEnterFrame是循环执行的意思。当你需要一个动作不断循环重复发生的时候,就要用到它。onEnterFrame函数的加入使原先瞬间移动的A元件的移动过程,变得缓慢起来。令整个动画变得更加的有视觉感。

1.4.3 变量和条件语句的结合运用

利用变量和条件的语句if…else…可使在不同情况下点击“入队”控制按钮,使相应的元素达到正确的入队位置。

当然为了实现入队和出队的良好配合,代码中还需要添加swither,i,j等变量,通过对 swither进行 true或 false的赋值,来使得按单击出队后单击入队按钮仍能正确执行出队操作。因为队列的出入队原则是按照先入先出的原则。所以入队和出队的操作可以看作是两个独立的事件。只要单独的记录下进行了几次入队和几次出队操作就行了。分别用i,j来记录。当然还需要设置边界条件,在队列中没有元素的时候是不能进行出队操作的。

1.5 为Flash按钮元件添加声音

为使动画更为完美,并能从听觉上进一步给出提示,还增加了按钮声音元件。实现将事先选好的声音导入到库中步骤如下:在双击需要添加声音的按钮,为使得图层含义更为明朗,将原有放置声音的图层重新命名为按钮。并新建一个图层取名为按钮声音。并在按钮和按钮声音层分别插入4个关键帧。选中按钮声音图层,弹起下面的关键帧。然后将库中弹起动作相对应的声音元件拖入场景中便可以了。指针停留,按下,点击操作类似。如图3所示:

图3 添加声音界面

2 总结

在本演示动画的制作的过程中,通过对swither,i,j等变量的赋值和大量的条件判断语句if…else..,使得用户可以依据自己的想法任意的进行出队和入队的操作;对元件进行了大量的横纵坐标的变化,来达到元件移动的目的;运用了函数onEnterFrame,让元件得以缓慢的移动,使整个过程更具动画感;为了显示提示语句还用到了flash的动态文本。Flash脚本语言的加入,改变了动画顺序逐帧播放的原貌,使得动画具备了交互、思考、答疑等功能,做到了动画和用户之间的交互。让抽象的理论概念通过Flash动画演示生动的表现出来,用户自由通过按钮来控制动画的播放,进而更好地去理解和把握。

[1]章精设,缪亮,白香芳.Flash ActionScript 2.0编程技术教程[M].清华大学出版社,2005.

[2]缪亮,贾朝蓉.Flash MX2004课件制作百例[M].清华大学出版社,2004.

[3]韩文虹,张巍.Flash脚本在多媒体课件开发中的应用[J].

猜你喜欢

入队脚本队列
酒驾
今天我入队——入队仪式
1+1我们这样学队章:我们的入队誓词
队列里的小秘密
在队列里
今天我入队了
数据库系统shell脚本应用
丰田加速驶入自动驾驶队列
快乐假期
入队风波