2017-07-13 7 views
0

Adob​​e After EffectsスクリプトのUIを作成しようとしています。私は、ボタンを押さずにボタンをクリックするのではなく、ちょっと違った動作をさせるために、ユーザーがボタンをクリックする機能を追加したいと考えています。キーボードのキーを押しながらボタンをクリックしたことを検出するにはどうすればよいですか? (Ctrlキーを押しながらクリック、Altキーを押しながらクリックなど)

ただし、ボタンをクリックしたときにキーが押されたかどうかを検出する方法はわかりません。

私は

myPanel.addEventListener("keydown", function (kd) {alert(kd.keyIdentifier); return(kd.keyIdentifier);}); 

コードのこの作品でのキー押下を検出するために管理してきましたが、それを押しているとき、私のボタンの名前を警告するリスナーを追加します。ボタンを押したときの動作を制御するボタンonClickもあります。しかし、私はこれらの2つのリスナーをどのように組み合わせ、ボタンがクリックされたときにキーが押されたかについての情報を得る方法を理解することはできません。私は​​リスナをonClickの中に入れようとしましたが、全く動作しません。

答えて

1

私はそれを動作させることができました。

Adob​​e ScriptUI環境では、Keyboard stateオブジェクトを使用してキーボードのステータスを常に監視できます。あなたはScriptUI.environment.keyboardStateからそれを得ることができます。 altKey,ctrlKeyなどのプロパティを持ち、キーが押されたかどうかに基づいてブール値を返します。あなたがしなければならないのは、ボタンのonClickイベントにオブジェクトの開始を入れている:私は、AdobeのJavaScriptツールガイドのP.155残念ながら

0
<button onclick="sample(event)">Click Me!</button> 

function sample(event){ 
    if (event.ctrlKey){ 
     alert('Button click with ctrlKey pressing.'); 
    }else{ 
     alert('Button click without ctrlKey pressing.'); 
    } 
} 

イベントオブジェクトには、いくつかのキーが押されているかどうかがありません。それを確認して使用してください。

Example

+0

を参照してください、詳細については

button.onClick = function() { isCtrlPressed = ScriptUI.environment.keyboardState.ctrlKey; } 

、これはそうではありませんAdobe ScriptUI環境で作業する –

関連する問題