Flash CS4教程:详细解析抓喜鹊游戏教程

2019-10-08 12:36:51刘景俊

 (2)

图13-4 喜鹊和手型

(5)再创建一个影片剪辑,命名为“gotgood_mc” ,在该影片剪辑内插放3个关键帧,绘制3个手型,如图1- (1)、(2)所示。再创建一个影片剪辑,命名为“MouseHand”,同时设置扩展元件类也为“MouseHand” ,将影片剪辑“gotgood_mc”元件对象放置于此,并命名实例名为“gotgood_mc”,如图13-5所示。

Flash CS4教程:详细解析抓喜庆游戏教程,PS教程,思缘教程网

(1)

Flash CS4教程:详细解析抓喜庆游戏教程,PS教程,思缘教程网

 (2)

Flash CS4教程:详细解析抓喜庆游戏教程,PS教程,思缘教程网

 (3)

图13-5 手型

(6)下面先编写已经创建的元件扩展类“FLY” ,该类接收一个Number类型参数,将其赋值作为该类产生对象的y轴方向上的递减值,如第16行代码所示,通过在构造函数中为其注册ENTER_FRAME事件侦听,使该类对象在被创建时便执行事件侦听器函数enterFrameHandler ,也就是所创建的每一只喜鹊都以某一速度(变量speed值)作向上运动。此外,该类还提供两个方法:removeTimerHandler()用于清除事件侦听器函数,这在该类对象被删除时会被调用(删除不必要的事件侦听);另一个方法flySpeed()是取得_speed值。

AS3代码


复制代码
package {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.*;

public class Fly extends MovieClip {
private var _speed:Number;

public function Fly(speed) {

_speed = Math.round(speed);
this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}

private function enterFrameHandler(event:Event):void{
this.y -= this._speed;
}

public function removeTimerHandler():void {
this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
trace("清除实例事件");
}

public function get flySpeed():Number{
return this._speed;
}

}
}

(7)下面是主程序类的编写,我们在构造函数初始化舞台的宽度和高度,并创建存储所有喜鹊对象的容器,如第22到25行代码所示。在第27到31行代码隐藏系统鼠标并创建“手型”,通过侦听stage对象的MOUSE_MOVE和MOUSE_DOWN事件来控制“手型”的鼠标跟随stageMoveHandler()和状态stageDownHandler()。