root/as3/HikaUrawaza/src/hikatsuka/utils/HikaUrawaza.as

リビジョン 1328, 1.4 kB (コミッタ: hikatsuka, コミット時期: 10 ヶ月 前)

--

Line 
1 package hikatsuka.utils {
2        
3         //クラス
4         import flash.display.Stage;
5         import flash.events.Event;
6         import flash.events.EventDispatcher;
7         import flash.events.KeyboardEvent;
8        
9         public class HikaUrawaza extends EventDispatcher {
10                
11                 //カスタムイベント名
12                 public static const URAWAZA_EVENT:String = "urawaza_event";
13                
14                 //配列
15                 private var commandList:Object = [];
16                 private var pushKeyList:Array = [];
17                
18                 //コンストラクタ
19                 public function HikaUrawaza(st:Stage) {
20                         //キーイベント
21                         st.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandle);
22                 }
23                
24                 //コマンドの設定
25                 public function setKey(... args) {
26                         commandList = args;
27                 }
28                
29                 //キーダウンイベント
30                 private function KeyDownHandle(event:KeyboardEvent):void{
31                        
32                         //キー情報追加
33                         pushKeyList.push(event.keyCode);
34                        
35                         //キー照合
36                         var flag = true;
37                         var count = 0;
38                         for (var i = 0; i < pushKeyList.length; i++) {
39                                 count++;
40                                 if (commandList[i] != pushKeyList[i]) {
41                                         flag = false;
42                                         pushKeyList = [];
43                                         pushKeyList.push(event.keyCode);
44                                         break;
45                                 }
46                         }
47                        
48                         //全て合っていればイベント発生
49                         if (flag && count == commandList.length) {
50                                 pushKeyList = [];
51                                 urawazaEvent();
52                         }
53                 }
54                
55                 //HikaUrawazaイベントの送信
56                 function urawazaEvent():void {
57                         dispatchEvent(new Event(URAWAZA_EVENT));
58                 }
59         }
60 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。