Вот, поясню проблему.

Код:
var obj1 = new Object();
var obj2 = new Object();
obj1.onKeyDown = function(){
if(Key.isDown(Key.UP)){
///бла-бла-бла
}
}
obj1.onKeyUp = function(){
///какие-то действия
}
obj2.onKeyDown = function(){
if(Key.isDown(Key.RIGHT)){
///бла-бла-бла
}
}
obj2.onKeyUp = function(){
///какие-то действия
}
Key.addListener(obj1);
Key.addListener(obj2);
Так вот: если пользователь зажимает клавишу
"Вверх", а затем нажимает клавишу
"Вправо", не отпуская при этом клавиши
"Вверх", то, оказывается, срабатывает событие
obj1.onKeyUp. Но почему: ведь пользователь не отпустил клавишу
"Вверх"?