如何在按下键盘键时检测是否单击了按钮? (按住Ctrl键单击,按住Alt键单击等)

时间:2017-07-13 10:51:03

标签: javascript mouseevent keyboard-events extendscript

我正在尝试为Adobe After Effects脚本编写UI。我想添加一个功能,用户可以按CTRL单击按钮而不是单击它而不使用按键来获得稍微不同的行为。

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

我设法用

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

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

2 个答案:

答案 0 :(得分:1)

我设法让它发挥作用。

Adob​​e ScriptUI环境允许您使用$this->middleware('auth'); $this->middleware('log', ['only' => ['fooAction', 'barAction']]); $this->middleware('subscribed', ['except' => ['fooAction', 'barAction']]); } 对象随时监控键盘状态。你可以从Keyboard state获得它。它具有诸如ScriptUI.environment.keyboardStatealtKey之类的属性,它们根据是否按下了键来返回一个布尔值。您所要做的就是将对象启动放入按钮的ctrlKey事件中:

onClick

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

答案 1 :(得分: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

相关问题