天才教育網(wǎng)合作機構 > 培訓機構 >

                                                                                        東莞設計培訓網(wǎng)

                                                                                        歡迎您!
                                                                                        朋友圈

                                                                                        全國統一學(xué)習專(zhuān)線(xiàn) 9:00-21:00

                                                                                        位置:培訓資訊 > Flash中響應鍵盤(pán)的一般方法

                                                                                        Flash中響應鍵盤(pán)的一般方法

                                                                                        日期:2005-12-24 00:00:00     瀏覽:402    來(lái)源:東莞設計培訓網(wǎng)

                                                                                        這些是以前整理的,現在發(fā)上來(lái),希望對新手有所幫助……響應鍵盤(pán)的方法作為AS中的一個(gè)重要組成部分,在如今已經(jīng)越來(lái)越廣泛使用,尤其是在 FLASH游戲制作中,如果缺少了響應鍵盤(pán)的方法,那是不可能的,而響應鍵盤(pán)的方法也就是 主要的四種,分別是:

                                                                                        1、利用按鈕進(jìn)行檢測
                                                                                        2、利用KEY對象
                                                                                        3、利用鍵盤(pán)偵聽(tīng)的方法
                                                                                        4、利用影片剪輯的keyUp和keyDown事件來(lái)實(shí)現響應鍵盤(pán)

                                                                                        只有熟練掌握了這些方法,然后加以變通的話(huà),就會(huì )得到很多意想不到的效果, 下面我就結合理論和自己的想法簡(jiǎn)要的介紹一下。

                                                                                        *種響應鍵盤(pán)的方法:利用按鈕進(jìn)行檢測來(lái)實(shí)現響應鍵盤(pán)在按鈕的on事件處理函數中不但可以對鼠標事件作出響應,而且可以對鍵盤(pán)事件作出響應。 如在按鈕的動(dòng)作面板中加入如下所示的代碼,在敲擊鍵盤(pán)上的X鍵時(shí)輸出窗口中將提示: X is pressed
                                                                                        在按鈕上加上:

                                                                                        on (keyPress "x") {
                                                                                        trace("X is pressed");
                                                                                        }

                                                                                        但是要注意的是:檢測鍵盤(pán)上的字母鍵時(shí),字母都應為小寫(xiě)。如果要檢測鍵盤(pán)中的特殊鍵, Flash中有一些專(zhuān)門(mén)的代碼來(lái)表示它們,下面列出了一些常用的功能鍵的表示代碼:

                                                                                        如要檢測鍵盤(pán)上的鍵,可以使用下面的ActionScript:

                                                                                        on (keyPress "") {
                                                                                        trace("Left is pressed");
                                                                                        }

                                                                                        另外,你可以在一個(gè)按鈕中加入若干個(gè)on函數,也可以在一個(gè)on函數中結合多種事件,這使 您可以為按鈕定義自己熟悉常用的快捷鍵,如下所示:

                                                                                        on (release, keyPress "") {
                                                                                        _root.myMC.prevFrame();
                                                                                        }
                                                                                        on (release, keyPress "") {
                                                                                        _root.myMC.nextFrame();
                                                                                        }

                                                                                        上面的*個(gè)語(yǔ)句實(shí)現單擊按鈕或按鍵盤(pán)上的左方向鍵,控制影片剪輯myMC回退1幀,而上面的第二個(gè)語(yǔ)句實(shí)現單擊按鈕或按鍵盤(pán)上的右方向鍵,控制影片剪輯myMC前進(jìn)1幀。

                                                                                        方法二

                                                                                        第二種響應鍵盤(pán)的方法:利用Key對象來(lái)實(shí)現響應鍵盤(pán)的操作

                                                                                        利用按鈕檢測按鍵動(dòng)作很有效,但是并不利于檢測持續按下的鍵,所以不適合于制作某些通過(guò)鍵盤(pán)控制的游戲。

                                                                                        這時(shí),您就需要用到Key對象。Key對象包含在動(dòng)作面板的“對象”/“影片”目錄下面,它由Flash內置的一系列方法、常量和函數構成。使用Key對象可以檢測某個(gè)鍵是否被按下,如要檢測左方向鍵是否被按下,可以使用如下ActionScript:

                                                                                        if (Key.isDown(Key.LEFT)) {
                                                                                        trace("The left arrow is down");
                                                                                        }

                                                                                        函數Key.isDown返回一個(gè)布爾值,當該數中的參數對應的鍵被按下時(shí)返回true,否則返回false。常量Key.LEFT代表鍵盤(pán)上的左方向鍵。當左方向鍵被按下時(shí),該函數返回true。
                                                                                        Key對象中的常量代表了鍵盤(pán)上相應的鍵,下面列出了一些基本的常量:
                                                                                        一些功能鍵的表示:
                                                                                        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
                                                                                        以上是鍵盤(pán)上的功能鍵,那么如何表示鍵盤(pán)上的字母鍵呢?
                                                                                        Key對象提供了一個(gè)函數Key.getCode來(lái)實(shí)現這一功能,如下所示:

                                                                                        if (Key.isDown(Key.getCode("x"))) {
                                                                                        trace("X is pressed");
                                                                                        }

                                                                                        上面腳本的意思就是,利用Key.getCode函數來(lái)告訴系統你是否按下了x鍵,如果按下了x鍵以后,函數Key.isDown則會(huì )返回true,在輸出窗口就會(huì )輸出X is pressed。

                                                                                        方法三

                                                                                        第三種響應鍵盤(pán)的方法:利用鍵盤(pán)偵聽(tīng)的方法來(lái)實(shí)現響應鍵盤(pán)(個(gè)人習慣用這種方法)

                                                                                        假設在影片剪輯的onClipEvent(enterFrame)事件處理函數中檢測按鍵動(dòng)作,而影片剪輯所在的時(shí)間軸較長(cháng),或計算機運算速度較慢,就有可能出現這種情況:即當在鍵盤(pán)上按下某個(gè)鍵時(shí)還未來(lái)得及處理onClipEvent(enterFrame)函數,那么按鍵動(dòng)作將被忽略,這樣的話(huà),很多你想要的效果就會(huì )無(wú)法實(shí)現了。

                                                                                        另外,還有一個(gè)需要解決的問(wèn)題就是,在某些游戲(如射擊)中,我們需要按一次鍵就執行一次動(dòng)作(發(fā)射一發(fā)子彈),即使長(cháng)時(shí)間按住某個(gè)鍵不放也只能算作一次按鍵,而Key對象并不能區別是長(cháng)時(shí)間按住同一個(gè)鍵還是快速地多次按鍵。

                                                                                        所以如果要解決這個(gè)問(wèn)題,就需要用到鍵盤(pán)偵聽(tīng)的方法。你可以使用 “偵聽(tīng)器(listener)”來(lái)偵聽(tīng)鍵盤(pán)上的按鍵動(dòng)作。
                                                                                        要使用偵聽(tīng)器之前,首先需要創(chuàng )建它,你可以使用如下所示的命令來(lái)告訴計算機你需要偵聽(tīng)某個(gè)事件:

                                                                                        Key.addListener(_root);

                                                                                        Key.addListener命令將 主時(shí)間軸 或 某個(gè)影片剪輯 作為它的參數,當偵聽(tīng)的事件發(fā)生時(shí),可以用這個(gè)參數指定的對象來(lái)響應該事件。
                                                                                        上面的代碼指定主時(shí)間軸來(lái)響應該事件。要讓主時(shí)間軸對該事件作出響應,還需要設置一個(gè)相應的事件處理函數,否則設置偵聽(tīng)器就沒(méi)有什么意義了。
                                                                                        鍵盤(pán)偵聽(tīng)的事件處理函數有兩個(gè):onKeyUp和onKeyDown,如下所示:

                                                                                        Key.addListener(_root);
                                                                                        _root.onKeyUp = function() {
                                                                                        trace(Key.getAscii());
                                                                                        };

                                                                                        //代碼的意思是,當按下一個(gè)鍵并釋放后,輸出窗口將輸出你按下的那個(gè)鍵的Ascii碼
                                                                                        當然,你也可以使用影片剪輯作為偵聽(tīng)鍵盤(pán)的對象,只需要使用影片剪輯的路徑代替_root作為Key.addListener命令的參數就可以了。
                                                                                        比如下面代碼:

                                                                                        Key.addListener(_root.mc);
                                                                                        _root.mc.onKeyUp = function() {
                                                                                        trace(Key.getAscii());
                                                                                        };

                                                                                        //代碼的意思是,當按下一個(gè)鍵并釋放后,輸出窗口將輸出你按下的那個(gè)鍵的Ascii碼,意思差不多,但是鍵盤(pán)偵聽(tīng)對象不同,一個(gè)是影片mc,一個(gè)是主時(shí)間軸。

                                                                                        方法四

                                                                                        第四種響應鍵盤(pán)的方法:利用影片剪輯的keyUp和keyDown事件來(lái)實(shí)現響應鍵盤(pán)

                                                                                        *一種方法很容易被忽視,但是也有一定的應用價(jià)值,最重要的是把概念弄清楚。
                                                                                        影片剪輯包含兩個(gè)與鍵盤(pán)相關(guān)的事件keyUp和keyDown,使用它們也可以實(shí)現對按鍵事件的響應
                                                                                        例如下面的代碼:

                                                                                        onClipEvent (keyDown) {
                                                                                        trace(Key.getAscii());
                                                                                        }

                                                                                        //當按下鍵盤(pán)上的一個(gè)鍵的時(shí)候,輸出窗口將輸出按下的這個(gè)鍵的Ascii碼值。

                                                                                        函數Key.getAscii表示返回與按鍵相對應的ASCII碼,其中 ASCII碼是一個(gè)整數,鍵盤(pán)上的每個(gè)字符對應一個(gè)ASCII碼,如字母A對應的ASCII碼為65,B對應的ASCII碼為66,a對應的ASCII碼為97, b對應的ASCII碼為98,+ 對應的ASCII碼為43等。需要注意的是:只有字符鍵才有ASCII碼,鍵盤(pán)上的功能鍵是沒(méi)有ASCII碼的。

                                                                                        如果我想在輸出窗口中輸出與按鍵相對應的字符,那怎么辦?
                                                                                        這時(shí)候,你可以使用String對象的fromCharCode函數將ASCII碼轉換成字符,如將上例的代碼改成如下所示:

                                                                                        onClipEvent (keyDown) {
                                                                                        trace(String.fromCharCode(Key.getAscii()));
                                                                                        };

                                                                                        //意思就是說(shuō),當按下鍵盤(pán)的一個(gè)鍵,輸出按下的這個(gè)鍵相對應的字符,當然除了功能鍵。

                                                                                        關(guān)于String對象的詳細解釋?zhuān)蠹铱梢圆榭磩?dòng)作面板的“對象”/“核心”目錄下面。

                                                                                        點(diǎn)這里下載源文件

                                                                                        如果本頁(yè)不是您要找的課程,您也可以百度查找一下:

                                                                                        奇米在线7777在线精品|国产成人精品免费视|精品无码不卡一区二区三区|国内综合精品午夜久久资源|亚洲视频在线观看..