// キー押しっぱで動作が異常になるのはキーダウンごとに kag.processでラベル移動しちゃうのが問題

function myKeyDownHook( key ){
if( !f.myKeyDownHook_enabled ) return; // trueで無い時は無視 ■enabled==trueで動かすのなら要修正
if( f.myKeyDownHook_lock ) return true; // ■キーロック時は無視 returnだけのがいいかも。自分で検証して

switch(key){ // ■キー押下時に一時ロック
case VK_LEFT : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_left' ); return true;
case VK_UP : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_up' ); return true;
case VK_RIGHT : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_right' ); return true;
case VK_DOWN : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_down' ); return true;
}
}
kag.keyDownHook.add( myKeyDownHook ); // 関数を登録
//(中略)

//関数用いたい場所で
f.myKeyDownHook_enabled = true; f.myKeyDownHook_lock=false;

// ■キーダウンのkag.processで飛んだ先のラベルで一通り処理が終わったら([s]タグの直前で)
f.myKeyDownHook_lock=false; // 一時ロック解除

// ■移動パート(?)を完全に終了する際に
f.myKeyDownHook_enabled = false; f.myKeyDownHook_lock=false;

// ←↑の同時押しの斜め移動とか、キーリピート対策とかは無理
// 諦めるか、タイマオブジェクトの勉強するしかない