如何检测是否在按下键盘键的情况下单击了按钮? (按住 Ctrl 单击、按住 Alt 单击等)
How do I detect if a button was clicked with a keyboard key pressed? (Ctrl-click, Alt-click etc.)
我正在尝试为 Adobe After Effects 脚本编写 UI。我想添加一个功能,用户可以在其中按 CTRL 单击按钮,而不是只单击按钮而不用按键来获得稍微不同的行为。
但是,问题是我不知道如何检测在单击按钮时是否按下了某个键。
我已经成功检测到按键
myPanel.addEventListener("keydown", function (kd) {alert(kd.keyIdentifier); return(kd.keyIdentifier);});
这段代码添加了一个侦听器,在按下按钮时提醒我按钮的名称。我还有一个按钮 onClick
事件来控制按下按钮时发生的情况。但是,我无法弄清楚如何将这两个侦听器组合起来并获取有关在单击按钮期间是否按下了某个键的信息。我试图将 keydown
侦听器放在 onClick
函数中,但它根本不起作用。
<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.');
}
}
事件对象是否有按键按下。检查然后使用它。
我成功了。
Adobe ScriptUI 环境允许您使用 Keyboard state
对象随时监控键盘状态。您可以从:ScriptUI.environment.keyboardState
获取。它具有 altKey
、ctrlKey
等属性,return 是一个基于是否按下键的布尔值。您所要做的就是将对象初始化放入按钮的onClick
事件中:
button.onClick = function() {
isCtrlPressed = ScriptUI.environment.keyboardState.ctrlKey;
}
有关更多信息,请参阅 Adobe JavaScript 工具指南的第 155 页
我正在尝试为 Adobe After Effects 脚本编写 UI。我想添加一个功能,用户可以在其中按 CTRL 单击按钮,而不是只单击按钮而不用按键来获得稍微不同的行为。
但是,问题是我不知道如何检测在单击按钮时是否按下了某个键。
我已经成功检测到按键
myPanel.addEventListener("keydown", function (kd) {alert(kd.keyIdentifier); return(kd.keyIdentifier);});
这段代码添加了一个侦听器,在按下按钮时提醒我按钮的名称。我还有一个按钮 onClick
事件来控制按下按钮时发生的情况。但是,我无法弄清楚如何将这两个侦听器组合起来并获取有关在单击按钮期间是否按下了某个键的信息。我试图将 keydown
侦听器放在 onClick
函数中,但它根本不起作用。
<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.');
}
}
事件对象是否有按键按下。检查然后使用它。
我成功了。
Adobe ScriptUI 环境允许您使用 Keyboard state
对象随时监控键盘状态。您可以从:ScriptUI.environment.keyboardState
获取。它具有 altKey
、ctrlKey
等属性,return 是一个基于是否按下键的布尔值。您所要做的就是将对象初始化放入按钮的onClick
事件中:
button.onClick = function() {
isCtrlPressed = ScriptUI.environment.keyboardState.ctrlKey;
}
有关更多信息,请参阅 Adobe JavaScript 工具指南的第 155 页