天天看點

Flash/Flex學習筆記(17):按鍵捕獲

先來看簡單的單個按鍵捕獲:

再來看下類似: A + B + C 的這種組合鍵捕獲:

先分析一下過程,比如使用者按下Ctrl + A 時,實際上是先按下Ctrl鍵,同時觸發KeyDown事件,然後在Ctrl不放的同時,再按下A鍵,再次觸發KeyDown事件,然後松開(觸發KeyUp事件),這是一個順序的過程。

思路:在使用者按下鍵且尚未松開任何鍵時,可以考慮用一個資料,把本次按下的所有的鍵值都存儲起來,然後等待使用者松開,一旦松開,就可以認為本次組合鍵 輸入完成,這時再清空資料,準備下次使用,這樣數組中儲存的就是使用者按下的組合鍵。

按這個思路把上面的代碼改進一下:

最後再來看看所謂的"八方向"移動:很多小遊戲都可以用方向鍵控制人物的移動方向,上面的示例中,隻能沿水準垂直四個方向移動,如果要做到8方向移動,就要用到組合鍵,仍然在上面的代碼基本上做些修改: