Keyboard doesn't work

Keyboard control doesn’t seem to work in my code, can anyone help me out? I can’t debug it because it doesn’t appear to work with Flex SDK and senocular’s Output trace doesn’t seem to work with mxml.

EspCanvas.as

package  
{
    import flash.display.*;
    import flash.utils.*;
    import flash.events.*;
    import mx.core.UIComponent;

    public class EspCanvas extends UIComponent
    {
        private var TIMER_SPEED:int = 10;

        private var player:Sprite = new Sprite();
        private var vspeed:Array = new Array();
        private var hspeed:Array = new Array();
        private var up:Boolean = false;
        private var left:Boolean = false;
        private var right:Boolean = false;
        private var down:Boolean = false;
        private var click:Boolean = false;
        
        private var ticker:Timer;

        public function init():void // START
        {
            // set up player
            player.graphics.beginFill(0xff0000);
            player.graphics.drawCircle(50, 50, 16);
            player.graphics.endFill();
            vspeed[0] = 0;
            hspeed[0] = 0;
            addChild(player);

            // create input events
            addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
            addEventListener(KeyboardEvent.KEY_UP, keyUp);
            addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
            addEventListener(MouseEvent.MOUSE_UP, mouseUp);

            // create a Timer object, tell it to call our onTick method, and start it
            ticker = new Timer(10); 
            ticker.addEventListener(TimerEvent.TIMER, onTick);
            ticker.start();
        }


        public function onTick(e:TimerEvent):void // TICK
        {
            player.x += hspeed[0];
            player.y += vspeed[0];
        }
        
        public function keyDown(e:KeyboardEvent):void
        {
            switch(e.keyCode)
            {
                case 37:
                    left = true;
                    hspeed[0] = -10;
                    break;
                case 38:
                    up = true;
                    vspeed[0] = -10;
                    break;
                case 39:
                    right = true;
                    hspeed[0] = 10;
                    break;
                case 40:
                    down = true;
                    vspeed[0] = 10;
                    break;
            }
        }

        public function keyUp(e:KeyboardEvent):void
        {
            switch(e.keyCode)
            {
                case 37:
                    left = false;
                    break;
                case 38:
                    up = false;
                    break;
                case 39:
                    right = false;
                    break;
                case 40:
                    down = false;
                    break;
            }
        }

        public function mouseDown(e:MouseEvent):void
        {
            click = true;
        }

        public function mouseUp(e:MouseEvent):void
        {
            click = false;
        }
    }
}

Main.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
  styleName = "plain"
    xmlns="*" 
    layout="absolute"
    creationComplete="initApp()">

    <mx:Script>
        <![CDATA[
            public function initApp():void
            {
                canvas.init();
            }
        ]]>
    </mx:Script>

  <EspCanvas id="canvas" width="100%" height="100%" themeColor="#000000" />
</mx:Application>

set the focus to your object listening for the keydown / keyup

Nevermind, got it. I made the event listeners incorrectly…

Thanks!