我正在制作一些 Adobe Bridge (CS 5.1) 插件。
我的问题是我无法弄清楚如何确保它们各自的菜单项将变灰,除非用户为脚本选择了有效的项目。
我可以通过编写类似的代码来达到所需的状态
function greyOutMenu () {
var doc = application.document;
var these = [];
these = doc.selections;
menuItem.enabled = true;
if ( these.length < 1 ) {
menuItem.enabled = false;
return;
}
for ( var i in these ) {
if ( these[i] /* is invalid */ ) { menuItem.enabled = false;
return;
}
}
但是如何在打开菜单时直接运行此检查?如果我使用
myMenu.onSelect = greyOutMenu();
它只是在启动时而不是在打开菜单时运行检查!