             return false;
         }
         
-        protected function keyHandlerDelegeter(e:KeyboardEvent, ns:Namespace):void {
+        protected function  keyHandler(e:KeyboardEvent):void {
             if (isIgnore(e.target)) return;
+
+            var ns:Namespace = e.type == KeyboardEvent.KEY_DOWN ? key_down : key_up;
 
             if (!(e.target == this.currentTarget || e.target == this.obj)) {
                 if (e.target.stage && this.obj == e.target.stage) {

        }
        
        internal function destroyImpl():void {
           obj.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, useCapture);
           obj.removeEventListener(KeyboardEvent.KEY_UP, keyUpHandler, useCapture);
        }
        
        // みじかくできる
        protected function keyDownHandler(e:KeyboardEvent):void {
            keyHandlerDelegeter(e, key_down);
        }
        
        protected function keyUpHandler(e:KeyboardEvent):void {
            keyHandlerDelegeter(e, key_up);
        }

        protected function isIgnore(o:*):Boolean {
            if (ignoreTargets.length) {
                for each(var klass:Class in ignoreTargets) {

        }
        
        public function bindKey(type:String):void {
            obj.addEventListener(type, keyHandler, useCapture, priority, useWeakReference);
        }
        
        public function destroy():void {
