



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章 響應(yīng)鍵盤有4種方法可以檢測(cè)鍵盤上的按鍵動(dòng)作。第1種方法是使用按鈕,第2種方法是使用Key對(duì)象,第3種方法是使用鍵盤偵聽,第4種方法是使用影片剪輯的keyUp和keyDown事件處理函數(shù)。 8.1 通過(guò)按鈕檢測(cè)按鍵動(dòng)作 在按鈕的on事件處理函數(shù)中不但可以對(duì)鼠標(biāo)事件作出響應(yīng),而且可以對(duì)鍵盤事件作出響應(yīng)。如在按鈕的動(dòng)作面板中加入如下所示的代碼,在敲擊鍵盤上的A鍵時(shí)輸出窗口中將提示:A is pressed。 on (keyPress a) trace(A is pressed); 檢測(cè)鍵盤上的字母鍵時(shí),字母都應(yīng)為小寫。如果要檢測(cè)鍵盤中的特殊鍵,如方向鍵,F(xiàn)lash中有一些專門的代碼來(lái)表示它們,如表8-1所示。 表8-1 鍵盤中的特殊鍵 如要檢測(cè)鍵盤上的鍵,可以使用下面的ActionScript: on (keyPress ) trace(End is pressed); 您可以在一個(gè)按鈕中加入若干個(gè)on函數(shù),也可以在一個(gè)on函數(shù)中結(jié)合多種事件,這使您可以為按鈕定義快捷鍵,如下所示: on (release, keyPress ) _root.myMC.prevFrame(); 上面的語(yǔ)句實(shí)現(xiàn)單擊按鈕或按鍵盤上的左方向鍵,控制影片剪輯myMC回退1幀。 8.2 影片剪輯的keyUp和keyDown事件 影片剪輯包含兩個(gè)與鍵盤相關(guān)的事件keyUp和keyDown,使用它們也可以實(shí)現(xiàn)對(duì)按鍵事件的響應(yīng),如下所示: onClipEvent (keyDown) trace(Key.getAscii(); 函數(shù)Key.getAscii返回與按鍵相對(duì)應(yīng)的ASCII碼。ASCII碼是一個(gè)整數(shù),鍵盤上的每個(gè)字符對(duì)應(yīng)一個(gè)ASCII碼,如字母A對(duì)應(yīng)的ASCII碼為65,B對(duì)應(yīng)的ASCII碼為66,a對(duì)應(yīng)的ASCII碼為97, b對(duì)應(yīng)的ASCII碼為98,+對(duì)應(yīng)的ASCII碼為43等。只有字符才有ASCII碼,鍵盤上的功能鍵沒(méi)有ASCII碼。 如果需要在輸出窗口中輸出與按鍵相對(duì)應(yīng)的字符,可以使用String對(duì)象的fromCharCode函數(shù)將ASCII碼轉(zhuǎn)換成字符,如將上例的trace命令改成如下所示: trace(String.fromCharCode(Key.getAscii(); String對(duì)象見(jiàn)動(dòng)作面板的“對(duì)象”/“核心”目錄下面。 8.3 Key對(duì)象 利用按鈕檢測(cè)按鍵動(dòng)作很有效,但是并不利于檢測(cè)持續(xù)按下的鍵,所以不適合于制作某些通過(guò)鍵盤控制的游戲。 這時(shí),您就需要用到Key對(duì)象。Key對(duì)象包含在動(dòng)作面板的“對(duì)象”/“影片”目錄下面,它由Flash內(nèi)置的一系列方法、常量和函數(shù)構(gòu)成。使用Key對(duì)象可以檢測(cè)某個(gè)鍵是否被按下,如要檢測(cè)左方向鍵是否被按下,可以使用如下ActionScript: if (Key.isDown(Key.LEFT) trace(The left arrow is down); 函數(shù)Key.isDown返回一個(gè)布爾值,當(dāng)該數(shù)中的參數(shù)對(duì)應(yīng)的鍵被按下時(shí)返回true,否則返回false。常量Key.LEFT代表鍵盤上的左方向鍵。當(dāng)左方向鍵被按下時(shí),該函數(shù)返回true。 Key對(duì)象中的常量代表了鍵盤上相應(yīng)的鍵,如表8-2所示。 表8-2 Key對(duì)象中的常量 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對(duì)象提供了一個(gè)函數(shù)Key.getCode來(lái)實(shí)現(xiàn)這一功能,如下所示: if (Key.isDown(Key.getCode(a) trace(A is pressed); 8.4 鍵盤偵聽 假設(shè)在影片剪輯的onClipEvent(enterFrame)事件處理函數(shù)中檢測(cè)按鍵動(dòng)作,而影片剪輯所在的時(shí)間軸較長(zhǎng),或計(jì)算機(jī)運(yùn)算速度較慢,有可能出現(xiàn)這種情況,即當(dāng)在鍵盤上按下某個(gè)鍵時(shí)還未來(lái)得及處理onClipEvent(enterFrame)函數(shù),那么按鍵動(dòng)作將被忽略。 還有一個(gè)問(wèn)題就是,在某些游戲(如射擊)中,我們需要按一次鍵就執(zhí)行一次動(dòng)作(發(fā)射一發(fā)子彈),即使長(zhǎng)時(shí)間按住某個(gè)鍵不放也只能算作一次按鍵,而Key對(duì)象并不能區(qū)別是長(zhǎng)時(shí)間按住同一個(gè)鍵還是快速地多次按鍵。 在解決這個(gè)問(wèn)題,就需要用到Flash MX中的第3種方法:鍵盤偵聽。when it comes to listening for key presses您可以使用 “偵聽器(listener)”來(lái)偵聽鍵盤上的按鍵動(dòng)作。 要使用偵聽器首先需要?jiǎng)?chuàng)建它,您可以使用如下所示的命令來(lái)告訴計(jì)算機(jī)您需要偵聽某個(gè)事件: Key.addListener(_root); Key.addListener命令將主時(shí)間軸或某個(gè)影片剪輯作為它的參數(shù),當(dāng)偵聽的事件發(fā)生時(shí)可以用這個(gè)參數(shù)指定的對(duì)象來(lái)響應(yīng)該事件。 上面的代碼指定主時(shí)間軸來(lái)響應(yīng)該事件。要讓主時(shí)間軸對(duì)該事件作出響應(yīng),還需要設(shè)置一個(gè)相應(yīng)的事件處理函數(shù)。 鍵盤偵聽的事件處理函數(shù)有兩個(gè):onKeyUp和onKeyDown,如下所示: _root.onKeyUp = function() trace(Key.getAscii(); ; 您也可以使用影片剪輯作為偵聽鍵盤的對(duì)象,只需要使用影片剪輯的路徑代替_root作為Key.addListener命令的參數(shù)。 8.5 練習(xí):鍵盤控制影片剪輯 文件如圖8-1所示,可以通過(guò)鍵盤上的方向鍵控制影片剪輯運(yùn)動(dòng)。當(dāng)敲擊空格鍵時(shí),瓢蟲回到初始位置。文件ladybug.fla,其中包含了一個(gè)影片剪輯ladybug。在主場(chǎng)景中選中瓢蟲影片剪輯,打開其動(dòng)作面板,其中添加了如下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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)鐵蓋圓桶市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)輕型龍門刨床市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)線圈活頁(yè)本冊(cè)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)瞬態(tài)電壓抑制二極管市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)瓷質(zhì)外墻磚市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)游泳館管理軟件市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)水晶大樓模型市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)木制穿線繞珠玩具市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)挖斗上料機(jī)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)平面研磨開閥市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 拳擊入門-北京理工大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 中石油職稱英語(yǔ)通用教材
- ICD-10疾病編碼完整版
- 智能客房控制器設(shè)計(jì)
- 滁州瑞芬生物科技有限公司年產(chǎn)1.5萬(wàn)噸赤蘚糖醇項(xiàng)目環(huán)境影響報(bào)告書
- THMDSXH 003-2023 電商產(chǎn)業(yè)園區(qū)數(shù)字化建設(shè)與管理指南
- 新建ICU鎮(zhèn)痛、鎮(zhèn)靜藥物應(yīng)用幻燈片
- 橡膠和基材的粘接
- GB/T 10610-2009產(chǎn)品幾何技術(shù)規(guī)范(GPS)表面結(jié)構(gòu)輪廓法評(píng)定表面結(jié)構(gòu)的規(guī)則和方法
- GA/T 935-2011法庭科學(xué)槍彈痕跡檢驗(yàn)鑒定文書編寫規(guī)范
- 湖北省黃石市基層診所醫(yī)療機(jī)構(gòu)衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心村衛(wèi)生室信息
評(píng)論
0/150
提交評(píng)論