麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

Flash AS 實例進階 鍵值捕獲實現代碼

2020-07-17 13:13:56
字體:
來源:轉載
供稿:網友

  Flash 動畫的交互性是通過鼠標和鍵盤進行,前面的章節講的都是鼠標控制,本節開始接觸鍵盤控制,響應鍵盤的方法有幾種,但歸根結底可以用一句通俗的話概括,就是程序運行中,發現哪個鍵被按下了,并執行相應的動作,這里介紹的是通過判斷獲取的鍵控代碼值來實現鍵盤控制,還是老套路,使用一個這樣的實例,這是去年作的一個練習, 就叫距離產生美吧。

  源文件下載

  點擊查看動畫效果<實例2-9 鍵盤控制

  基本思路

  ① 主場景中放置 2 個保持一定距離的 MC 。

  ②再放置一個空 MC 用來寫腳本,當然,也可以寫到前面的 MC 實例上,這樣是便于閱讀和理解腳本。

  ③按下↑↓←→鍵兩個 MC 都向同方向運動,并始終保持固定的距離和前后關系,還要保持朝向和移動的方向的一致

  ④設定邊線,不向線外運動。

  ⑤松開按鍵,兩 MC 保持原始方向。

  新知識點


復制代碼
代碼如下:

onClipEvent (keyDown);// 影片的事件處理函數。觸發的是按下按鍵事件 。
onClipEvent (keyUp) ; // 觸發的是松開按鍵事件 。
Key.getCode() // 獲得鍵值。

  本實例只用到了 4 個鍵值,但為全面了解,將一個別人所寫最新教程的鍵控代碼值和鍵常量表復制下來。

  

  圖 2 — 2 鍵控代碼

  

  圖 2 — 3 鍵常量

  實例說明

  好象沒什么需要說明,就是 QG 追 QM ,總也追不到。

  編寫動作腳本

  ①在空 MC 上輸入:

復制代碼
代碼如下:

onClipEvent (keyDown) {// 按鍵事件觸發
  s = 1;
  if (Key.getCode() == 37) {// 條件為獲取的鍵值為“ 37 ” 即“ ←”的鍵值。
    _root.qa.play();
    _root.qb.play();
    _root.qa._x -= s;
    _root.qa._xscale = -_xscale;// 令MC“ qa ”水平翻轉
    _root.qb._xscale = _xscale;
    _root.qb._x = _root.qa._x-80;// 令MC“ qb ”水平位置到“ qa ”左邊
  }
  if (Key.getCode() == 39) {// 條件為獲取的鍵值為“ 39 ” 即“ →”的鍵值。
    _root.qa._xscale = _xscale;
    _root.qa.play();
    _root.qb.play();
    _root.qa._x += s;
    _root.qb._xscale = -_xscale; // 令MC“ qb ”水平翻轉
    _root.qb._x = _root.qa._x+80; 令MC“ qb ”水平位置到“ qa ”右邊
  }
  if (Key.getCode() == 38) {// 條件為獲取的鍵值為“ 38 ” 即“ ↑”的鍵值。
    _root.qa._y -= s*2;
    _root.qb._y = _root.qa._y;
  }
  if (Key.getCode() == 40) {// 條件為獲取的鍵值為“ 40 ” 即“ ↓”的鍵值。
    _root.qa._y += s*2;
   _root.qb._y = _root.qa._y;
  }
  if (_root.qa._x<100) {// 以下 4 條語句是限制邊界
    _root.qa._x = 100;
  }
  if (_root.qa._x>430) {
    _root.qa._x = 430;
  }
  if (_root.qa._y<50) {
    _root.qa._y = 50;
  }
  if (_root.qa._y>320) {
    _root.qa._y = 320;
  }
}
onClipEvent (keyUp) {// 釋放鍵觸發
  _root.qa.stop();
  _root.qb.stop();
  if (_root.qa._x<_root.qb._x) {// 依據兩個MC“qa”和“qb”的左右位置,確定翻轉與否,而保證是相向而立。
    _root.qa._xscale = _xscale;
    _root.qb._xscale = _xscale;
  } else {
   _root.qa._xscale = -_xscale;
   _root.qb._xscale = -_xscale;
  }
}

  要點分析

  ① Key.getCode() == 37 可以寫成 Key.getCode() == Key.LEFT ,“ Key.LEFT ”是與左箭頭鍵的鍵控代碼值 (37) 關聯的常量,初學或需給別人看,用這樣方式寫好,直觀明了,而直接用鍵值寫能省點勁,我是那里省力寫 這里費力說。

  ②這里 onClipEvent (keyDown) 結合 Key.getCode() == () 的腳本,事件觸發是主體,而獲取鍵值只是確定該有啥動作的的條件,不要以為 if (Key.getCode() == 37) { _root.qa.play(); }就可以有 _root.qa.play(); 的動作。

  小結

  響應鍵盤是游戲和課件中普遍應用的,什么物體運動呀 飛行呀,開炮放槍的,都需要鍵盤來實現人機交互, 根據學習進度的要求,本節只介紹了通過MC的按鍵事件觸發和鍵值捕獲的方法來實現鍵盤控制,也是比較簡單實用的方法,咱們是不用招法多,好用就中。

  課后練習

  大改源文件,讓一個Q滿場亂跑,另一個Q由鍵盤控制去追,追上之后出現一個新畫面,提示:沒準轍的瞎跑當然要用隨機函數,追上的語句就用我們學過的知識 用X.Y坐標值的差來判斷, MC 的碰撞方法或碰撞檢測的組件大家還沒學 , 我也不會。范例效果:

  點擊查看動畫效果<練習2-9

  源文件

  查看全套"Flash AS 實例進階教程"

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九九色网站 | 免费a视频 | 免费h片网站 | 国产精品爱久久久久久久 | 久久精品.com | 欧美人禽 | 国产一区精品在线观看 | 欧美一级黄色录像片 | www成人在线观看 | 精品一区二区三区免费视频 | 91精品国产91久久久久久丝袜 | 国产伦精品一区二区三区在线 | 视频一区国产精品 | 男人天堂免费 | 高清av在线 | 视频一区 在线 | 午夜av男人的天堂 | 日本在线看片 | 最新一级毛片 | 青久草视频| 午夜爽爽爽男女免费观看hd | 国产精品一区二区三区在线看 | 欧美14一15sex性hd | 日本免费aaa观看 | 久久精品亚洲国产奇米99 | 欧美一级高清免费 | 成人免费乱码大片a毛片视频网站 | 337p粉嫩大胆噜噜噜亚瑟影院 | 国产亚洲欧美日韩高清 | 日本成人一二三区 | 911视频免费版 | 欧美成年人在线视频 | 久久在线免费视频 | 91久久久久久亚洲精品禁果 | 久久精品日韩一区 | 精品国产一区二区三区久久久蜜月 | 亚洲国产超高清a毛毛片 | 31freehdxxxx欧美 | 国产成人高清成人av片在线看 | 亚洲精品久久久久www | 成人免费观看av |