(9) copy()侦听器函数中,创建“喜鹊”对象,设置1到11之间的随机数作为其随机速度值,如第70行代码所示。统一设置其y坐标为舞台底部位置,x坐标为随机舞台宽度值,如第71、72行代码所示。将创建的“喜鹊”对象统一添加到content_mc容器中,并注册ROLL_OVER和ENTER_FRAME事件侦听。当用户移动鼠标指针经过“喜鹊”对象时,便会调用downHandler()侦听器函数,清除其事件侦听和清除该对象本身,如第81到85行代码所示,同时也调用refreshGrade()方法累加计算用户抓到的“喜鹊”数量。removeDrop()函数只是判断“喜鹊”对象是否运动到舞台顶部,当运动到舞台顶部时,清除“喜鹊”对象的事件侦听和其本身,如第95到100行代码所示。
AS3代码
private function copy(event:TimerEvent) { |
(10)下面代码是对结束游戏的控制和重新开始初始化游戏。当用户单击“结束游戏”按钮便调用该方法,停止_timer对象的计时,将“开始游戏”按钮显示出来同时隐藏“结束游戏”按钮,如下面第111到113行代码所示。然后清除容器中的所有子项侦听和子项,如第116到124行代码所示,再重新调用init()方法。
AS3代码
private function outGame(event:MouseEvent):void{ _timer.stop(); start_btn.visible = true; out_btn.visible = false; //下面清除容器中的所有子项侦听和子项 var num:uint = content_mc.numChildren; var _mc:MovieClip; for (var i:int = 0; i <num; i++) { _mc = content_mc.getChildAt(0) as MovieClip; _mc.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler); _mc.removeEventListener(Event.ENTER_FRAME, removeDrop); content_mc.removeChild(_mc); } init(); } } } |