Flash 動畫的交互性是通過鼠標和鍵盤進行,前面的章節講的都是鼠標控制,本節開始接觸鍵盤控制,響應鍵盤的方法有幾種,但歸根結底可以用一句通俗的話概括,就是程序運行中,發現哪個鍵被按下了,并執行相應的動作,這里介紹的是通過判斷獲取的鍵控代碼值來實現鍵盤控制,還是老套路,使用一個這樣的實例,這是去年作的一個練習, 就叫距離產生美吧。
源文件下載
點擊查看動畫效果<實例2-9 鍵盤控制
基本思路
① 主場景中放置 2 個保持一定距離的 MC 。
②再放置一個空 MC 用來寫腳本,當然,也可以寫到前面的 MC 實例上,這樣是便于閱讀和理解腳本。
③按下↑↓←→鍵兩個 MC 都向同方向運動,并始終保持固定的距離和前后關系,還要保持朝向和移動的方向的一致
④設定邊線,不向線外運動。
⑤松開按鍵,兩 MC 保持原始方向。
新知識點
onClipEvent (keyDown);// 影片的事件處理函數。觸發的是按下按鍵事件 。
onClipEvent (keyUp) ; // 觸發的是松開按鍵事件 。
Key.getCode() // 獲得鍵值。
本實例只用到了 4 個鍵值,但為全面了解,將一個別人所寫最新教程的鍵控代碼值和鍵常量表復制下來。
圖 2 — 2 鍵控代碼
圖 2 — 3 鍵常量
實例說明
好象沒什么需要說明,就是 QG 追 QM ,總也追不到。
編寫動作腳本
①在空 MC 上輸入:
要點分析
① 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 實例進階教程"
新聞熱點
疑難解答