# Keyboard lag

**URL:** <https://forum.kirupa.com/t/keyboard-lag/263871>\
**Category:** flash\
**Created:** [June 19, 2008, 10:10pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871 "2008-06-19T22:10:41Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![suvenier](https://avatars.discourse-cdn.com/v4/letter/s/4af34b/32.png) [@suvenier](https://forum.kirupa.com/u/suvenier)\
**Post date:** [June 19, 2008, 10:10pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/1 "2008-06-19T22:10:41Z")

</div>

hello as3!

this is my main class:

```auto

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;
 
    public class main extends Sprite
    {
        public var mc1:Sprite;
        public var dy = 0;
        public var dx = 0;
  
        public function main()
        {
            stage.addEventListener( KeyboardEvent.KEY_DOWN, keyDown );
            stage.addEventListener( "enterFrame", _onEnterFrame);
            mc1 = new disc();
            this.addChild(mc1);
            mc1.y=stage.stageHeight/2;
   
        }
        private function keyDown( event:KeyboardEvent ) : void
        {
            trace(event.keyCode);
            var code = event.keyCode;
            if(code=="39")
            {
            trace("ad");
            dx+=3;
            }
            else if(code=="37")
            {
            trace("ad");
            dx-=3;
            }
            if(code=="38")
            {
            trace("ad");
             dy-=3;
             }
        }
        private function _onEnterFrame(e:Event) : void
       {
             dy+=0.1;
             mc1.y+=dy;
             mc1.x+=dx;
        }
    }
}

```

so, i got a mc1 clip onStage (instance of “disc”) and it roams around with the key buttons.

It all works fine but it has a lot of lag… what’s wrong? my pc is fast indeed…

thank you.

---

<div class="post-metadata">

**Author:** ![kevin416](https://avatars.discourse-cdn.com/v4/letter/k/51bf81/32.png) [@kevin416](https://forum.kirupa.com/u/kevin416)\
**Post date:** [June 19, 2008, 11:36pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/2 "2008-06-19T23:36:30Z")

</div>

try removing all the trace statements

---

<div class="post-metadata">

**Author:** ![suvenier](https://avatars.discourse-cdn.com/v4/letter/s/4af34b/32.png) [@suvenier](https://forum.kirupa.com/u/suvenier)\
**Post date:** [June 20, 2008, 10:46am UTC](https://forum.kirupa.com/t/keyboard-lag/263871/3 "2008-06-20T10:46:19Z")

</div>

done it, didnt solve it.

I heard KeyListners were the cause of this lag… is it true? what is the alternative?

---

<div class="post-metadata">

**Author:** ![Insane\_au](https://avatars.discourse-cdn.com/v4/letter/i/439d5e/32.png) [@Insane\_au](https://forum.kirupa.com/u/Insane_au)\
**Post date:** [June 20, 2008, 3:34pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/4 "2008-06-20T15:34:55Z")

</div>

Just a tip for optimising your code; use the most minimalist display object that does what you want it to.  
If all your doing is drawing in a display object then make it a Shape instead.

---

<div class="post-metadata">

**Author:** ![suvenier](https://avatars.discourse-cdn.com/v4/letter/s/4af34b/32.png) [@suvenier](https://forum.kirupa.com/u/suvenier)\
**Post date:** [June 20, 2008, 6:07pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/5 "2008-06-20T18:07:34Z")

</div>

i used a simple shape, a square, and it is still lagging.

Isnt there another way to do this?

---

<div class="post-metadata">

**Author:** ![GrndMasterFlash](https://avatars.discourse-cdn.com/v4/letter/g/71c47a/32.png) [@GrndMasterFlash](https://forum.kirupa.com/u/GrndMasterFlash)\
**Post date:** [June 20, 2008, 6:15pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/6 "2008-06-20T18:15:46Z")

</div>

when ever i would make games i would put all movements in a big enter frame, and the keypress just switched vars on and off, that way the little delay never happened, but yeah, it’s a weird problem…

---

<div class="post-metadata">

**Author:** ![sekasi](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@sekasi](https://forum.kirupa.com/u/sekasi)\
**Post date:** [June 20, 2008, 6:37pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/7 "2008-06-20T18:37:22Z")

</div>

add the enter frame event listener to your clip rather than your stage…

---

<div class="post-metadata">

**Author:** ![Fidodo](https://avatars.discourse-cdn.com/v4/letter/f/779978/32.png) [@Fidodo](https://forum.kirupa.com/u/Fidodo)\
**Post date:** [June 20, 2008, 10:46pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/8 "2008-06-20T22:46:13Z")

</div>

The problem is that the key listener gets events the same way that a word program does. Try pressing a letter and notice there is a moment before it repeats. To fix this have to change the player coordinates on the enterFrame event.

---

<div class="post-metadata">

**Author:** ![suvenier](https://avatars.discourse-cdn.com/v4/letter/s/4af34b/32.png) [@suvenier](https://forum.kirupa.com/u/suvenier)\
**Post date:** [June 22, 2008, 7:06pm UTC](https://forum.kirupa.com/t/keyboard-lag/263871/9 "2008-06-22T19:06:33Z")

</div>

thx, I got it… its a windows problem, not flash.

Its realy usefull in word though…

---

<div class="post-metadata">

**Author:** ![dthought](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/dthought/32/3573_2.png) [@dthought](https://forum.kirupa.com/u/dthought)\
**Post date:** [June 23, 2008, 3:40am UTC](https://forum.kirupa.com/t/keyboard-lag/263871/10 "2008-06-23T03:40:01Z")

</div>

I find this class works a treat:

[http://flashgamecode.net/classes/key-polling-class](http://flashgamecode.net/classes/key-polling-class)
