亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Flash > 正文

Flash CS4教程:詳細解析抓喜鵲游戲教程

2020-07-17 13:12:14
字體:
來源:轉載
供稿:網友
本例應用了前幾章節已經學習的產生隨機對象和刪除對應隨機對象等知識,控制游戲過程中用戶移動鼠標指針與創建的隨機對象之間是否接觸并執行相對應的程序塊,顯示用戶通過移動鼠標指針所撲捉到的喜鵲數量。本實例還創建游戲的結束和重新開始程序,用戶可進一步擴展,根據撲捉到的喜鵲數量來設置游戲關卡和游戲級別。通過本例的制作,讀者可以掌握對簡單基礎游戲的創建全過程,停止游戲和重新開始游戲的控制。

本例思路:
<1> 創建實例背景圖。
<2> 添加按鈕和“成績單”。
<3> 創建喜鵲動畫和手型對象,將其轉換為元件類。
<4> 編寫喜鵲元件擴展類。
<5> 編寫主程序類,控制游戲開始與結束,顯示用戶通過移動鼠標指針所撲捉到的喜鵲數量。
<6> 隨機創建的喜鵲對象與用戶鼠標指針接觸所執行的控制程序。
<7> 停止游戲和重新開始游戲的控制。

實例步驟:

(1)新建一個空白文檔,設置舞臺大小為650*400,幀頻設置為30,繪制游戲背景圖或導入一張適合的背景圖作為游戲背景,如下圖13-1所示。

Flash CS4教程:詳細解析抓喜慶游戲教程,PS教程,思緣教程網

 圖13-1 實例背景

(2)新建一個圖層,創建三個按鈕元件,如下圖2-所示,并命名“實例名”為“start_btn” 、“help_btn”、“out_btn” ,分別間隔放置于舞臺右下角,如圖13-2所示。

Flash CS4教程:詳細解析抓喜慶游戲教程,PS教程,思緣教程網

 圖13-2 控制按鈕

(3)新建一個圖層,創建“成績單”,如下圖13-3所示。創建一個動態文本,添加實例名為“displayGrade_txt”,將用于顯示用戶通過移動鼠標指針所撲捉到的喜鵲數量。

Flash CS4教程:詳細解析抓喜慶游戲教程,PS教程,思緣教程網

 圖13-3 縮放和繪制投影

(4)創建一個新影片剪輯并命名為“Fly”,擴展元件類也設為“Fly”。在“Fly”影片剪輯里創建喜鵲飛翔的動畫,如下面演示圖13-4 所示。

Flash CS4教程:詳細解析抓喜慶游戲教程,PS教程,思緣教程網

(1)

Flash CS4教程:詳細解析抓喜慶游戲教程,PS教程,思緣教程網

 (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()。

AS3代碼


復制代碼
代碼如下:

package {
import flash.display.*;
import flash.events.*;
import flash.utils.Timer;
import flash.text.TextField;
import flash.ui.Mouse;

public class Main extends Sprite {

private var _grade:Number;//得分值
public var displayGrade_txt:TextField;//得分顯示
public var start_btn:SimpleButton;//開始按鈕
private var stageW:Number;
private var stageH:Number;
private var content_mc:Sprite;//存儲所有喜鵲對象的容器
private var hand_mc:MovieClip;//“手型”對象

private var _timer:Timer;

public function Main() {

this.stageW = stage.stageWidth;
this.stageH = stage.stageHeight;
this.content_mc = new Sprite();
addChild(content_mc);

Mouse.hide();
this.hand_mc = new MouseHand();
hand_mc.mouseEnabled = false;
hand_mc.gotgood_mc.mouseEnabled = false;
addChild(hand_mc);
stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMoveHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, stageDownHandler);

init();

}

(8)stageMoveHandler()方法是簡單的鼠標跟隨,stageDownHandler()方法是當用戶鼠標點擊時播放步驟(5)中的“手型”影片剪輯動畫,產生“抓”的動作效果。 init()方法中開始初始化該游戲,主要是將displayGrade_txt顯示文本的內容設置為0和為開始按鈕注冊事件偵聽器函數。當用戶單擊start_btn按鈕后,便調用startGame()方法,此時,將結束游戲按鈕out_btn 設置為可見,并注冊事件偵聽器函數,如第59、60行代碼所示。然后通過創建Timer類對象實例進行計時,每隔500毫秒執行一次copy()偵聽器函數,也就是創建一只喜鵲對象,如第62到64行代碼所示。第65行將start_btn按鈕設置為不可見。

提示:關于計時器Timer類:Timer(delay:Number, repeatCount:int = 0)

參數 delay:Number — 計時器事件間的延遲(以毫秒為單位)。

repeatCount:int (default = 0) — 指定重復次數。 如果為 0,則計時器重復無限次數。 如果不為 0,則將運行計時器,運行次數為指定的次數,然后停止。

AS3代碼


復制代碼
代碼如下:

private function stageMoveHandler(e:MouseEvent):void {

this.hand_mc.x = stage.mouseX;
this.hand_mc.y = stage.mouseY;
}
private function stageDownHandler(event:MouseEvent):void {

hand_mc.gotgood_mc.gotoAndPlay(2);
}

private function init():void{

_grade = 0;
displayGrade_txt.text = "0";
start_btn.addEventListener(MouseEvent.CLICK,startGame);
}

private function startGame(event:MouseEvent):void {

trace("開始游戲!");
out_btn.visible = true;
out_btn.addEventListener(MouseEvent.CLICK,outGame);

_timer =new Timer(500,0);
_timer.addEventListener(TimerEvent.TIMER,copy);
_timer.start();
start_btn.visible =false;
}

(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) {

var mc = new Fly(Math.random() * 10 + 1);
mc.x = Math.random() * this.stageW;
mc.y = this.stageH;

content_mc.addChild(mc);
mc.addEventListener(MouseEvent.ROLL_OVER, downHandler);
mc.addEventListener(Event.ENTER_FRAME, removeDrop);
}

private function downHandler(event:MouseEvent) {

var mc = event.target;
mc.removeTimerHandler();
mc.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler);
mc.removeEventListener(Event.ENTER_FRAME, removeDrop);
content_mc.removeChild(mc);

//refreshGrade(mc.flySpeed);//還可以通過擴展refreshGrade方法,按不同速度得分
refreshGrade();//按數量

}

private function removeDrop(event:Event) {
var _mc:MovieClip = event.target as MovieClip;

if (_mc.y <= 0) {
_mc.removeTimerHandler();
_mc.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler);
_mc.removeEventListener(Event.ENTER_FRAME, removeDrop);
content_mc.removeChild(_mc);
}

}

public function refreshGrade(grade:Number = 1):void {
this._grade += grade;
displayGrade_txt.text = this._grade.toString();
}

(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();

}


}
}

以上教程就是解析Flash CS4抓喜鵲游戲的知識,希望大家都能學到這樣的基礎知識。謝謝大家觀看。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品福利视频| 日韩av免费在线看| 亚洲精品天天看| 欧美日韩另类在线| 亚洲精品国产美女| 欧美另类老肥妇| 97人洗澡人人免费公开视频碰碰碰| 亚洲精品成人久久| 成人黄色免费看| 九九精品视频在线观看| 欧美日韩国产色视频| 国产精品高潮呻吟视频| 亚洲丝袜av一区| 国产午夜精品视频免费不卡69堂| 狠狠躁天天躁日日躁欧美| 精品成人av一区| 97视频在线观看播放| 亚洲精品免费一区二区三区| 欧美激情精品久久久久久蜜臀| 亚洲国产美女久久久久| 国产亚洲精品久久久久动| 91美女片黄在线观看游戏| 欧美专区国产专区| 亚洲精品福利免费在线观看| 久久99国产精品自在自在app| 一区二区中文字幕| 欧美午夜性色大片在线观看| 久久久久久久一区二区三区| 亚洲精品美女网站| 91精品国产亚洲| 亚洲第一男人天堂| 日韩在线视频线视频免费网站| 91最新在线免费观看| 精品毛片网大全| 国产精品h在线观看| 亚洲精品日韩av| 国产午夜精品全部视频在线播放| 欧美又大粗又爽又黄大片视频| 黑人狂躁日本妞一区二区三区| 欧美怡红院视频一区二区三区| 亚洲经典中文字幕| 欧美激情网站在线观看| 欧美日韩精品在线观看| 久久久久久久久国产精品| 国产精品久久久久久久久粉嫩av| 日韩av免费在线| 亚洲国产日韩一区| 久久久99久久精品女同性| 久久91精品国产91久久跳| xvideos亚洲人网站| 中文字幕在线观看亚洲| 国产在线一区二区三区| 亚洲一区二区三区久久| 中文字幕一区二区精品| 亚洲国产成人91精品| 久热精品视频在线观看| 日韩av不卡在线| 日韩av免费在线播放| 中文.日本.精品| 久久精品亚洲国产| 国产精品mp4| 亚洲美女自拍视频| 中文字幕免费精品一区高清| 国内精品模特av私拍在线观看| 欧美裸体男粗大视频在线观看| 韩国视频理论视频久久| 亚洲护士老师的毛茸茸最新章节| 亚洲国产古装精品网站| 韩国三级日本三级少妇99| 成人两性免费视频| 色伦专区97中文字幕| 国产日韩欧美综合| 夜夜嗨av一区二区三区四区| 92版电视剧仙鹤神针在线观看| 亚洲国产精品高清久久久| 成人亚洲激情网| 欧美最猛黑人xxxx黑人猛叫黄| 国产精品久久久久久久久久久新郎| 国产欧美va欧美va香蕉在| 亚洲视频999| 国产剧情日韩欧美| 亚洲精品国产品国语在线| 亚洲影院高清在线| 青草青草久热精品视频在线观看| 亚洲欧美国产日韩中文字幕| 欧美午夜精品久久久久久人妖| 日韩精品亚洲元码| 富二代精品短视频| 久久影视三级福利片| 韩剧1988免费观看全集| 久久久999精品| 亚洲国产97在线精品一区| 韩国精品久久久999| 欧美老女人在线视频| 国产精品福利在线观看网址| 欧美日韩国产中文字幕| 欧美最猛性xxxxx(亚洲精品)| 亚洲福利在线看| 国产精品人成电影| 久久高清视频免费| 日韩精品在线播放| 久久影视免费观看| 一本大道香蕉久在线播放29| 欧美亚洲另类激情另类| 国产有码在线一区二区视频| 亚洲欧美中文日韩在线| 久久精品国产精品亚洲| 久久久www成人免费精品| 国产一区二区三区在线播放免费观看| 日韩精品在线免费| 国产精品成人观看视频国产奇米| 国内精品视频一区| 国产精品欧美风情| 成人午夜激情网| 午夜精品久久久久久久久久久久久| 国产噜噜噜噜噜久久久久久久久| 日韩有码在线视频| 日韩精品视频免费在线观看| 亚洲欧美国产日韩中文字幕| 国产欧美精品久久久| 国产日韩欧美影视| 疯狂蹂躏欧美一区二区精品| 91精品国产91久久久久久不卡| 中文字幕日韩视频| 亚洲最大在线视频| 亚洲一区二区福利| 日韩久久精品电影| 热99精品里视频精品| 亚洲电影免费观看高清完整版| 九九久久国产精品| 隔壁老王国产在线精品| 成人福利网站在线观看| 久久亚洲综合国产精品99麻豆精品福利| 日韩美女主播视频| 国内精品久久久久久| 亚洲国产古装精品网站| 中文字幕欧美在线| 日韩欧美中文字幕在线播放| 亚洲精品videossex少妇| 亚洲xxxx做受欧美| 国产精品激情av电影在线观看| 日日骚av一区| 91老司机精品视频| 91久久精品美女| 国产精品午夜一区二区欲梦| 亚洲美女av网站| 九九久久综合网站| 91大神福利视频在线| 中文字幕欧美精品日韩中文字幕| 91美女福利视频高清| 欧美成人激情视频| 日韩欧美第一页| 欧美高清无遮挡| 日韩中文字幕第一页| 久久99国产精品自在自在app| 久久人人爽人人爽爽久久| 亚洲成年人影院在线| 久久久久久久久综合| 国产欧美精品日韩精品| 欧美老妇交乱视频| 18性欧美xxxⅹ性满足| 日韩精品免费观看| 欧美高清在线视频观看不卡| 国产视频一区在线|