0

我正在尝试为 Adob​​e After Effects 脚本编写 UI。我想添加一个功能,用户可以 CTRL 单击一个按钮,而不是在没有按键的情况下单击它以获得稍微不同的行为。

但是,问题是,我不知道如何检测单击按钮时是否按下了键。

我已经设法检测到一个按键

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

这段代码添加了一个监听器,当它被按下时会提醒我按钮的名称。我还有一个按钮onClick事件来控制按下按钮时会发生什么。但是,我无法弄清楚如何组合这两个侦听器并获取有关在按钮单击期间是否按下键的信息。我试图将keydown监听器放在onClick函数内,但它根本不起作用。

4

2 回答 2

1

我设法使它工作。

Adobe ScriptUI 环境让您可以随时使用该Keyboard state对象监控键盘状态。你可以从:ScriptUI.environment.keyboardState. 它具有诸如altKey,ctrlKey之类的属性,这些属性根据按键是否被按下来返回一个布尔值。您所要做的就是将对象启动放入onClick按钮的事件中:

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

有关详细信息,请参阅 Adob​​e JavaScript 工具指南的第 155 页

于 2017-07-13T11:39:14.600 回答
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.');
    }
}

事件对象是否有按键按下。检查然后使用它。

例子

于 2017-07-13T11:00:30.630 回答