package { // Import built-in classes for use. import flash.events.*; import flash.display.Stage; public class Keys { // Common. public static const shift :Number = 16; public static const ctrl :Number = 17; public static const space :Number = 32; // Arrow keys. public static const left :Number = 37; public static const up :Number = 38; public static const right :Number = 39; public static const down :Number = 40; // Numpad keys. public static const num0 :Number = 96; public static const num1 :Number = 97; public static const num2 :Number = 98; public static const num3 :Number = 99; public static const num4 :Number = 100; public static const num5 :Number = 101; public static const num6 :Number = 102; public static const num7 :Number = 103; public static const num8 :Number = 104; public static const num9 :Number = 105; public static const num_mul :Number = 106; public static const num_add :Number = 107; public static const num_sub :Number = 109; public static const num_dec :Number = 110; public static const num_div :Number = 111; // Letter keys. public static const A :Number = 65; public static const B :Number = 66; public static const C :Number = 67; public static const D :Number = 68; public static const E :Number = 69; public static const F :Number = 70; public static const G :Number = 71; public static const H :Number = 72; public static const I :Number = 73; public static const J :Number = 74; public static const K :Number = 75; public static const L :Number = 76; public static const M :Number = 77; public static const N :Number = 78; public static const O :Number = 79; public static const P :Number = 80; public static const Q :Number = 81; public static const R :Number = 82; public static const S :Number = 83; public static const T :Number = 84; public static const U :Number = 85; public static const V :Number = 86; public static const W :Number = 87; public static const X :Number = 88; public static const Y :Number = 89; public static const Z :Number = 90; // Boolean array. Keeps track of which keys are down (true) and which are up (false). public var isDown :Array = new Array(); // METHODS // Updates array index of pressed key to reflect down state (true). private function setKeysDown ( e :KeyboardEvent ) :void { isDown[e.keyCode] = true; } // Updates array index of released key to reflect up state (false). private function setKeysUp ( e :KeyboardEvent ) :void { isDown[e.keyCode] = false; } // Constructor function. You MUST pass the stage as a parameter! public function Keys ( stage :Stage ) { // Initialize all keys (index up to 255) as up (false). for(var count = 0; count <= 255; count++) { isDown[count] = false; } // Set listeners to update key states. stage.addEventListener(KeyboardEvent.KEY_DOWN, setKeysDown); stage.addEventListener(KeyboardEvent.KEY_UP, setKeysUp); } } }