2017-07-13 175 views
0

我想为Adobe After Effects脚本编写一个UI。我想添加一个功能,用户可以按CTRL点击一个按钮,而不用点击按钮来获得稍微不同的行为。如何检测按下的键盘按键是否被点击? (Ctrl-点击,Alt-点击等)

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

我已经成功地检测按键与

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

这段代码补充说,通知我的按钮的名称被按下时,它是一个倾听者。我还有一个按钮onClick事件来控制按下按钮时发生的情况。但是,我无法弄清楚如何组合这两个监听器,并获得有关在点击按钮期间是否按下按键的信息。我试图将​​听众放在onClick函数中,但它根本不起作用。

回答

1

我设法使它工作。

使用Adobe ScriptUI环境,您可以始终使用Keyboard state对象监视键盘状态。你可以从:ScriptUI.environment.keyboardState。它具有诸如altKey,ctrlKey等属性,根据是否按下了键来返回布尔值。所有您需要做的就是把物体开始进入onClick事件的按钮:

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

欲了解更多信息,我指到Adobe的JavaScript工具指南

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

可惜的第155页,这不在Adobe ScriptUI环境中工作 –