本例思路:
<1> 创建实例背景图。
<2> 添加按钮和“成绩单”。
<3> 创建喜鹊动画和手型对象,将其转换为元件类。
<4> 编写喜鹊元件扩展类。
<5> 编写主程序类,控制游戏开始与结束,显示用户通过移动鼠标指针所扑捉到的喜鹊数量。
<6> 随机创建的喜鹊对象与用户鼠标指针接触所执行的控制程序。
<7> 停止游戏和重新开始游戏的控制。
实例步骤:
(1)新建一个空白文档,设置舞台大小为650*400,帧频设置为30,绘制游戏背景图或导入一张适合的背景图作为游戏背景,如下图13-1所示。
图13-1 实例背景
(2)新建一个图层,创建三个按钮元件,如下图2-所示,并命名“实例名”为“start_btn” 、“help_btn”、“out_btn” ,分别间隔放置于舞台右下角,如图13-2所示。
图13-2 控制按钮
(3)新建一个图层,创建“成绩单”,如下图13-3所示。创建一个动态文本,添加实例名为“displayGrade_txt”,将用于显示用户通过移动鼠标指针所扑捉到的喜鹊数量。
图13-3 缩放和绘制投影
(4)创建一个新影片剪辑并命名为“Fly”,扩展元件类也设为“Fly”。在“Fly”影片剪辑里创建喜鹊飞翔的动画,如下面演示图13-4 所示。
(1)
(2)
图13-4 喜鹊和手型
(5)再创建一个影片剪辑,命名为“gotgood_mc” ,在该影片剪辑内插放3个关键帧,绘制3个手型,如图1- (1)、(2)所示。再创建一个影片剪辑,命名为“MouseHand”,同时设置扩展元件类也为“MouseHand” ,将影片剪辑“gotgood_mc”元件对象放置于此,并命名实例名为“gotgood_mc”,如图13-5所示。
(1)
(2)
(3)
图13-5 手型
(6)下面先编写已经创建的元件扩展类“FLY” ,该类接收一个Number类型参数,将其赋值作为该类产生对象的y轴方向上的递减值,如第16行代码所示,通过在构造函数中为其注册ENTER_FRAME事件侦听,使该类对象在被创建时便执行事件侦听器函数enterFrameHandler ,也就是所创建的每一只喜鹊都以某一速度(变量speed值)作向上运动。此外,该类还提供两个方法:removeTimerHandler()用于清除事件侦听器函数,这在该类对象被删除时会被调用(删除不必要的事件侦听);另一个方法flySpeed()是取得_speed值。
AS3代码
AS3代码
(8)stageMoveHandler()方法是简单的鼠标跟随,stageDownHandler()方法是当用户鼠标点击时播放步骤(5)中的“手型”影片剪辑动画,产生“抓”的动作效果。 init()方法中开始初始化该游戏,主要是将displayGrade_txt显示文本的内容设置为0和为开始按钮注册事件侦听器函数。当用户单击start_btn按钮后,便调用startGame()方法,此时,将结束游戏按钮out_btn 设置为可见,并注册事件侦听器函数,如第59、60行代码所示。然后通过创建Timer类对象实例进