trying to build something that kinda simulates keyIsDown...
but the events don't always trigger it seems ( seems to be worse in browsers IE, firefox tested).. so keys get stuck sometimes..
just gonna paste the class here.. if anyone has any ideas or has tackled this issue help would be appreciated =)

///////////////////////////////////////////////
package classes.general
{
import flash.events. *;
import flash.display.Stage;
/////////////////////////////
public class KeyStrokes
{
private var keyListener : Object;
private var activeStage : Stage;
public function KeyStrokes (listenList : Array, keyStage : Stage)
{
setListenObject (listenList);
setKeyEvent (keyStage);
}
private function setKeyEvent (keyStage : Stage)
{
keyStage.addEventListener (KeyboardEvent.KEY_DOWN, keyDown);
keyStage.addEventListener (KeyboardEvent.KEY_UP, keyUp);
keyStage.addEventListener (Event.DEACTIVATE, deactivateKeys);
activeStage = keyStage;
}
public function clearKeyEvent ()
{
activeStage.removeEventListener (KeyboardEvent.KEY_DOWN, keyDown);
activeStage.removeEventListener (KeyboardEvent.KEY_UP, keyUp);
}
private function setListenObject (listenList : Array)
{
keyListener = new Object ();
for (var i in listenList)
{
keyListener ["key_" + listenList [i]] = false;
}
}
private function keyDown (event : KeyboardEvent)
{
if (keyListener ["key_" + event.keyCode] != null)
{
keyListener ["key_" + event.keyCode] = true;
}
}
private function keyUp (event : KeyboardEvent)
{
if (keyListener ["key_" + event.keyCode] != null)
{
keyListener ["key_" + event.keyCode] = false;
}
}
public function keyIsDown (keyNum : Number)
{
return keyListener ["key_" + keyNum];
}
public function deactivateKeys (event : Event)
{
for (var i in keyListener)
{
keyListener [i] = false;
}
}
}
}
/////////////////////////////////////////////////