



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第8章 響應(yīng)鍵盤有4種方法可以檢測鍵盤上的按鍵動作。第1種方法是使用按鈕,第2種方法是使用Key對象,第3種方法是使用鍵盤偵聽,第4種方法是使用影片剪輯的keyUp和keyDown事件處理函數(shù)。 8.1 通過按鈕檢測按鍵動作 在按鈕的on事件處理函數(shù)中不但可以對鼠標(biāo)事件作出響應(yīng),而且可以對鍵盤事件作出響應(yīng)。如在按鈕的動作面板中加入如下所示的代碼,在敲擊鍵盤上的A鍵時(shí)輸出窗口中將提示:A is pressed。 on (keyPress a) trace(A is pressed); 檢測鍵盤上的字母鍵時(shí),字母都應(yīng)為小寫。如果要檢測鍵盤中的特殊鍵,如方向鍵,F(xiàn)lash中有一些專門的代碼來表示它們,如表8-1所示。 表8-1 鍵盤中的特殊鍵 如要檢測鍵盤上的鍵,可以使用下面的ActionScript: on (keyPress ) trace(End is pressed); 您可以在一個(gè)按鈕中加入若干個(gè)on函數(shù),也可以在一個(gè)on函數(shù)中結(jié)合多種事件,這使您可以為按鈕定義快捷鍵,如下所示: on (release, keyPress ) _root.myMC.prevFrame(); 上面的語句實(shí)現(xiàn)單擊按鈕或按鍵盤上的左方向鍵,控制影片剪輯myMC回退1幀。 8.2 影片剪輯的keyUp和keyDown事件 影片剪輯包含兩個(gè)與鍵盤相關(guān)的事件keyUp和keyDown,使用它們也可以實(shí)現(xiàn)對按鍵事件的響應(yīng),如下所示: onClipEvent (keyDown) trace(Key.getAscii(); 函數(shù)Key.getAscii返回與按鍵相對應(yīng)的ASCII碼。ASCII碼是一個(gè)整數(shù),鍵盤上的每個(gè)字符對應(yīng)一個(gè)ASCII碼,如字母A對應(yīng)的ASCII碼為65,B對應(yīng)的ASCII碼為66,a對應(yīng)的ASCII碼為97, b對應(yīng)的ASCII碼為98,+對應(yīng)的ASCII碼為43等。只有字符才有ASCII碼,鍵盤上的功能鍵沒有ASCII碼。 如果需要在輸出窗口中輸出與按鍵相對應(yīng)的字符,可以使用String對象的fromCharCode函數(shù)將ASCII碼轉(zhuǎn)換成字符,如將上例的trace命令改成如下所示: trace(String.fromCharCode(Key.getAscii(); String對象見動作面板的“對象”/“核心”目錄下面。 8.3 Key對象 利用按鈕檢測按鍵動作很有效,但是并不利于檢測持續(xù)按下的鍵,所以不適合于制作某些通過鍵盤控制的游戲。 這時(shí),您就需要用到Key對象。Key對象包含在動作面板的“對象”/“影片”目錄下面,它由Flash內(nèi)置的一系列方法、常量和函數(shù)構(gòu)成。使用Key對象可以檢測某個(gè)鍵是否被按下,如要檢測左方向鍵是否被按下,可以使用如下ActionScript: if (Key.isDown(Key.LEFT) trace(The left arrow is down); 函數(shù)Key.isDown返回一個(gè)布爾值,當(dāng)該數(shù)中的參數(shù)對應(yīng)的鍵被按下時(shí)返回true,否則返回false。常量Key.LEFT代表鍵盤上的左方向鍵。當(dāng)左方向鍵被按下時(shí),該函數(shù)返回true。 Key對象中的常量代表了鍵盤上相應(yīng)的鍵,如表8-2所示。 表8-2 Key對象中的常量 Key.BACKSPACE Key.ENTER Key.PGDN Key.CAPSLOCK Key.ESCAPE Key.RIGHT Key.CONTROL Key.HOME Key.SHIFT Key.DELETEKEY Key.INSERT Key.SPACE Key.DOWN Key.LEFT Key.TAB Key.END Key.PGUP Key.UP 以上是鍵盤上的功能鍵,那么如何表示鍵盤上的字母鍵呢?Key對象提供了一個(gè)函數(shù)Key.getCode來實(shí)現(xiàn)這一功能,如下所示: if (Key.isDown(Key.getCode(a) trace(A is pressed); 8.4 鍵盤偵聽 假設(shè)在影片剪輯的onClipEvent(enterFrame)事件處理函數(shù)中檢測按鍵動作,而影片剪輯所在的時(shí)間軸較長,或計(jì)算機(jī)運(yùn)算速度較慢,有可能出現(xiàn)這種情況,即當(dāng)在鍵盤上按下某個(gè)鍵時(shí)還未來得及處理onClipEvent(enterFrame)函數(shù),那么按鍵動作將被忽略。 還有一個(gè)問題就是,在某些游戲(如射擊)中,我們需要按一次鍵就執(zhí)行一次動作(發(fā)射一發(fā)子彈),即使長時(shí)間按住某個(gè)鍵不放也只能算作一次按鍵,而Key對象并不能區(qū)別是長時(shí)間按住同一個(gè)鍵還是快速地多次按鍵。 在解決這個(gè)問題,就需要用到Flash MX中的第3種方法:鍵盤偵聽。when it comes to listening for key presses您可以使用 “偵聽器(listener)”來偵聽鍵盤上的按鍵動作。 要使用偵聽器首先需要?jiǎng)?chuàng)建它,您可以使用如下所示的命令來告訴計(jì)算機(jī)您需要偵聽某個(gè)事件: Key.addListener(_root); Key.addListener命令將主時(shí)間軸或某個(gè)影片剪輯作為它的參數(shù),當(dāng)偵聽的事件發(fā)生時(shí)可以用這個(gè)參數(shù)指定的對象來響應(yīng)該事件。 上面的代碼指定主時(shí)間軸來響應(yīng)該事件。要讓主時(shí)間軸對該事件作出響應(yīng),還需要設(shè)置一個(gè)相應(yīng)的事件處理函數(shù)。 鍵盤偵聽的事件處理函數(shù)有兩個(gè):onKeyUp和onKeyDown,如下所示: _root.onKeyUp = function() trace(Key.getAscii(); ; 您也可以使用影片剪輯作為偵聽鍵盤的對象,只需要使用影片剪輯的路徑代替_root作為Key.addListener命令的參數(shù)。 8.5 練習(xí):鍵盤控制影片剪輯 文件如圖8-1所示,可以通過鍵盤上的方向鍵控制影片剪輯運(yùn)動。當(dāng)敲擊空格鍵時(shí),瓢蟲回到初始位置。文件ladybug.fla,其中包含了一個(gè)影片剪輯ladybug。在主場景中選中瓢蟲影片剪輯,打開其動作面板,其中添加了如下ActionScript: onClipEvent (load) x0 = this._x; y0 = this._y; onClipEvent (enterFrame) if (Key.isDown(Key.SPACE) this._x = x0; this._y = y0; this._rotation = 0; if (Key.isDown(Key.LEFT) & (Key.isDown(Key.UP) this._x -= 10/Math.SQRT2; this._y -= 10/Math.SQRT2; this._rotation = -45; else if (Key.isDown(Key.LEFT) & (Key.isDown(Key.DOWN) this._x -= 10/Math.SQRT2; this._y += 10/Math.SQRT2; this._rotation = -135; else if (Key.isDown(Key.RIGHT) & (Key.isDown(Key.UP) this._x += 10/Math.SQRT2; this._y -= 10/Math.SQRT2; this._rotation = 45; else if (Key.isDown(Key.RIGHT) & (Key.isDown(Key.DOWN) this._x += 10/Math.SQRT2; this._y += 10/Math.SQRT2; this._rotation = 135; else if (Key.isDown(Key.LEFT) this._x -= 10; this._rotation = -90; else if (Key.isDown(Key.RIGHT) this._x += 10; this._rotation = 90; else if (Key.isDown(Key.UP) this._y -= 10; this._rotation = 0; else if (Key.isDown(Key.DOWN) this._y += 10; this._rotation = 180; if (this
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家電家具營銷活動方案
- 家庭攝像機(jī)活動方案
- 客服手工活動方案
- 家長參觀校園活動方案
- 家庭聯(lián)誼活動方案
- 室外攀巖活動方案
- 小型超市中秋活動方案
- 家風(fēng)展示活動方案
- 寶典促銷活動方案
- 家庭地產(chǎn)活動方案
- 部編版四年級語文下冊 期末詞語成語專項(xiàng)復(fù)習(xí)【含答案】
- 2025年危險(xiǎn)化學(xué)品經(jīng)營單位安全管理人員上崗證考試題庫(含答案)
- 2噸超純水技術(shù)方案
- 2024-2025學(xué)年小學(xué)信息技術(shù)(信息科技)六年級全一冊義務(wù)教育版(2024)教學(xué)設(shè)計(jì)合集
- 江蘇省環(huán)保集團(tuán)有限公司招聘筆試題庫2024
- 2024-2030年中國擴(kuò)展現(xiàn)實(shí)(XR)行業(yè)未來展望與投融資狀況分析報(bào)告
- 2024年湖北省武漢市中考道德與法治·歷史試題(含答案解析)
- 2024年天津市初中學(xué)業(yè)水平考試語文試卷及參考答案
- 山東省聊城市2023-2024學(xué)年高一下學(xué)期期末考試英語試題
- 公路水運(yùn)工程施工企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員考核大綱和模擬試題庫1
- 預(yù)應(yīng)力混凝土管樁(L21G404)
評論
0/150
提交評論