キー入力テスト
♥0 |
Line 63 |
Modified 2012-01-17 01:15:20 |
MIT License
archived:2017-03-20 11:14:43
ActionScript3 source code
/**
* Copyright o8que ( http://wonderfl.net/user/o8que )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/ugE6
*/
package {
import com.actionscriptbible.Example;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class Main extends Example {
public function Main() {
Key.initialize(this);
stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent):void {
trace("down: " + e.keyCode + " " + Key.isDown(Keyboard.Z));
});
stage.addEventListener(KeyboardEvent.KEY_UP, function(e:KeyboardEvent):void {
trace("up: " + e.keyCode + " " + Key.isDown(Keyboard.Z));
});
stage.addEventListener(Event.DEACTIVATE, function(e:Event):void {
trace("deactivate");
});
}
}
}
//package ore.orelib.commons {
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.ContextMenuEvent;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import flash.ui.ContextMenu;
//public
class Key {
private static var _currentStates:Vector.<Boolean>;
private static var _previousStates:Vector.<Boolean>;
public static const MOUSE_LEFT:uint = 0;
//public static const MOUSE_RIGHT:uint = 255;
public static function initialize(main:Sprite):void {
_currentStates = new Vector.<Boolean>(256, true);
_previousStates = new Vector.<Boolean>(256, true);
var stage:Stage = main.stage;
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
stage.addEventListener(Event.EXIT_FRAME, update);
stage.addEventListener(Event.DEACTIVATE, clear);
var contextMenu:ContextMenu = new ContextMenu();
contextMenu.hideBuiltInItems();
contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, clear);
main.contextMenu = contextMenu;
}
private static function keyDownHandler(event:KeyboardEvent):void { _currentStates[event.keyCode] = true; }
private static function keyUpHandler(event:KeyboardEvent):void { _currentStates[event.keyCode] = false; }
private static function mouseDownHandler(event:MouseEvent):void { _currentStates[Key.MOUSE_LEFT] = true; }
private static function mouseUpHandler(event:MouseEvent):void { _currentStates[Key.MOUSE_LEFT] = false; }
private static function update(event:Event):void {
for (var i:int = 0; i < 256; i++) {
_previousStates[i] = _currentStates[i];
}
}
private static function clear(event:Event):void {
for (var i:int = 0; i < 256; i++) {
_currentStates[i] = false;
}
}
public static function isDown(keyCode:uint):Boolean { return _currentStates[keyCode]; }
public static function pressed(keyCode:uint):Boolean { return !_previousStates[keyCode] && _currentStates[keyCode]; }
}
//}