2016-10-13 14 views
-5

私は、特定のキーが押されたときにカメラが前後にナビゲートするようなバビロンの3Dシーンを持っています。例えば、Tを押すとビューアが前方に移動します。マウスを押すたびにキーが押されたと思うような動作を作成するにはどうすればよいですか?

私は、ウィンドウのどこにでもマウスが置かれたときにTキーが押されたと思ったときにエフェクトを生成しようとしています。要するに、カメラを前方に動かすためにマウスが必要です。

document.addEventListener("mousedown", function(e) { 
    var code = 116;//T 
    $('document').trigger(
    jQuery.Event('keypress', { 
     keyCode: code, 
     which: code 
    }) 
    ); 
    $("#show").append("mousedown creates: " + code + "<BR>"); 
}); 

document.addEventListener("keypress", function(e) { 
    var key = e.which; 
    //If it's the T key 
    if (key == 116) { 
    $("#show").append("T key has been pressed<BR>"); 
    } 
}); 

// I would like the mousedown event to fire the keypress event 
// as if the T key has been pressed 

フィドルは、KeyPressイベントが発生するようですので、これはやや近づいhere

+5

は、コードブロック内のリンクをラップすることによって、コードを投稿周りに取得しようとしないでくださいです。質問は自己完結型であると考えられています。私たちはあなたの問題を見直すために、URLをコピー/ペーストしてサイトに行く必要はありません。助けが必要な人にとっては助けが必要なので、それを困難にしないでください。オフサイトデモを使用して、実際に問題自体にあるものをサポートしてください。 – charlietfl

+0

リンクを正常に動作させることは、期待されたものではありません。あなたのコードをここに投稿してください! – charlietfl

答えて

0

です。しかし、キーコードは通らない。出力に「key:undefined」と表示されます。

function fire(type, options) { 
    var event = new CustomEvent(type); 
    for (var p in options) { 
    event[p] = options[p]; 
    } 
    this.dispatchEvent(event); 
} 

window.addEventListener("mousedown", function(e) { 
    fire("keypress", { 
    keyCode: 116, 
    bubbles: true 
    }) 
}); 

window.addEventListener("keypress", function(e) { 
    var key = e.which; 
    $("#show").append("key: " + key + "<BR>"); 
    if (key == 116) { 
    $("#show").append("T key was pressed<BR>"); 
    } 
}); 

フィドルは here

関連する問題