我正在尝试为Adobe After Effects脚本编写UI。我想添加一个功能,用户可以按CTRL单击按钮而不是单击它而不使用按键来获得稍微不同的行为。
但问题是,我不知道如何在点击按钮时检测是否按下了某个键。
我设法用
检测按键myPanel.addEventListener("keydown", function (kd) {alert(kd.keyIdentifier); return(kd.keyIdentifier);});
这段代码添加了一个监听器,在按下按钮时会提醒我按钮的名称。我还有一个按钮onClick
事件来控制按下按钮时会发生什么。但是,我无法弄清楚如何组合这两个侦听器并获取有关按钮单击期间是否按下了某个键的信息。我试图将keydown
侦听器放在onClick
函数中,但它根本不起作用。
答案 0 :(得分:1)
我设法让它发挥作用。
Adobe ScriptUI环境允许您使用$this->middleware('auth');
$this->middleware('log', ['only' => ['fooAction', 'barAction']]);
$this->middleware('subscribed', ['except' => ['fooAction', 'barAction']]);
}
对象随时监控键盘状态。你可以从Keyboard state
获得它。它具有诸如ScriptUI.environment.keyboardState
,altKey
之类的属性,它们根据是否按下了键来返回一个布尔值。您所要做的就是将对象启动放入按钮的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.');
}
}
事件对象有没有按键。检查然后使用它。