<acronym id="atkaq"></acronym>
      <bdo id="atkaq"></bdo>

      天才教育網合作機構 > 設計軟件培訓機構 > Flash培訓機構 >

      東莞設計培訓網

      歡迎您!
      朋友圈

      400-850-8622

      全國統一學習專線 9:00-21:00

      位置:設計軟件培訓資訊 > Flash培訓資訊 > Flash中響應鍵盤的一般方法

      Flash中響應鍵盤的一般方法

      日期:2005-12-24 00:00:00     瀏覽:366    來源:東莞設計培訓網

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

      1、利用按鈕進行檢測
      2、利用KEY對象
      3、利用鍵盤偵聽的方法
      4、利用影片剪輯的keyUp和keyDown事件來實現響應鍵盤

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

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

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

      但是要注意的是:檢測鍵盤上的字母鍵時,字母都應為小寫。如果要檢測鍵盤中的特殊鍵, Flash中有一些專門的代碼來表示它們,下面列出了一些常用的功能鍵的表示代碼:

      如要檢測鍵盤上的鍵,可以使用下面的ActionScript:

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

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

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

      上面的*個語句實現單擊按鈕或按鍵盤上的左方向鍵,控制影片剪輯myMC回退1幀,而上面的第二個語句實現單擊按鈕或按鍵盤上的右方向鍵,控制影片剪輯myMC前進1幀。

      方法二

      第二種響應鍵盤的方法:利用Key對象來實現響應鍵盤的操作

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

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

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

      函數Key.isDown返回一個布爾值,當該數中的參數對應的鍵被按下時返回true,否則返回false。常量Key.LEFT代表鍵盤上的左方向鍵。當左方向鍵被按下時,該函數返回true。
      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對象提供了一個函數Key.getCode來實現這一功能,如下所示:

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

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

      方法三

      第三種響應鍵盤的方法:利用鍵盤偵聽的方法來實現響應鍵盤(個人習慣用這種方法)

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

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

      所以如果要解決這個問題,就需要用到鍵盤偵聽的方法。你可以使用 “偵聽器(listener)”來偵聽鍵盤上的按鍵動作。
      要使用偵聽器之前,首先需要創建它,你可以使用如下所示的命令來告訴計算機你需要偵聽某個事件:

      Key.addListener(_root);

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

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

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

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

      //代碼的意思是,當按下一個鍵并釋放后,輸出窗口將輸出你按下的那個鍵的Ascii碼,意思差不多,但是鍵盤偵聽對象不同,一個是影片mc,一個是主時間軸。

      方法四

      第四種響應鍵盤的方法:利用影片剪輯的keyUp和keyDown事件來實現響應鍵盤

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

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

      //當按下鍵盤上的一個鍵的時候,輸出窗口將輸出按下的這個鍵的Ascii碼值。

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

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

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

      //意思就是說,當按下鍵盤的一個鍵,輸出按下的這個鍵相對應的字符,當然除了功能鍵。

      關于String對象的詳細解釋,大家可以查看動作面板的“對象”/“核心”目錄下面。

      點這里下載源文件

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

      亚洲无碼另类精品_亚洲天堂无码高清性视频_欧美日韩一区二区综合_亚洲午夜福利理论片在线贰信

        <acronym id="atkaq"></acronym>
        <bdo id="atkaq"></bdo>

        亚洲AV永久一区二区三区蜜桃 | 日本强奷中文字幕在线播放 | 亚洲日韩国产成网在线观看 | 亚洲国产综合专区在 | 亚洲欧美成α人在线观看 | 婷婷久久高清国外AV免费 |