防止在InDesign CC JavaScript中显示进度条时出现对话框和警告
Prevent dialogs and alerts while showing a progress bar in InDesign CC JavaScript
我的脚本分析一堆InDesign文件。任何关于缺少字体等的警告都是无关紧要的,因此我在核心工作期间关闭了用户交互:
// preparation code
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
// core work code
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
// finish code
尽管如此,我还是想显示一个进度条。我用ScriptUI:
设置了这一点progressPanel = new ProgressPanel(files.length, 500);
progressPanel.show();
for (i = 0; i < files.length; i++) {
processFile( files[i] );
progressPanel.incr();
progressPanel.setText( files[i].name );
progressPanel.show();
}
// Progress Panel, inspired from:
// http://wwwimages.adobe.com/content/dam/Adobe/en/devnet/indesign/sdk/cs6/scripting/InDesign_ScriptingGuide_JS.pdf
// We make it a class.
function ProgressPanel (myMaximumValue, myProgressBarWidth){
this.myProgressPanel = new Window('window', 'analyse InDesign files…');
this.value = 0;
this.myProgressPanel.myProgressBar
= this.myProgressPanel.add('progressbar',
[12, 12, myProgressBarWidth, 24],
0, myMaximumValue);
this.myProgressPanel.myText
= this.myProgressPanel.add("statictext",
[15, 6, myProgressBarWidth, 24]);
this.show = function() {
this.myProgressPanel.show();
}
this.hide = function() {
this.myProgressPanel.hide();
}
this.setValue = function(value) {
this.value = value;
this.myProgressPanel.myProgressBar.value = value;
}
this.incr = function() {
var inc = arguments.length ? arguments[0] : 1;
this.value += inc;
this.myProgressPanel.myProgressBar.value = this.value;
}
this.setText = function(text) {
this.myProgressPanel.myText.text = text;
}
}
这在InDesign cs6中工作得很好。但在CC 2015中不会,除非我删除所有NEVER_INTERACT语句。
在InDesign cs6和更新版本中,我如何在显示进度条的同时抑制其他用户交互?
至少在InDesign CC 2017中,调用win.update()可以做到!(参见进度条错误。Adobe论坛中关于ID CC中调色板窗口的更多信息的情况摘要。
this.show = function() {
this.myProgressPanel.show();
this.myProgressPanel.update();
}
this.incr = function() {
var inc = arguments.length ? arguments[0] : 1;
this.value += inc;
this.myProgressPanel.myProgressBar.value = this.value;
this.myProgressPanel.update();
}
相关文章:
- 着色引导框对话框
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- CKeditor:更改对话框中的默认选择选项
- 搜索api在mac上显示对话框
- 使用密码对话框Javascript请求帮助
- 为什么JavaScript对话框(警告、确认)会停止页面重绘
- 我的jQuery UI对话框没有'如果前面没有警告,则不会打开
- 在文本区域旁边显示一个对话框,不显示弹出窗口或警告框
- 警告对话框不会在Firefox上使用超时阻塞UI
- 在AngularJs中带转轮的甜蜜警告对话框
- 防止在InDesign CC JavaScript中显示进度条时出现对话框和警告
- 更改窗口关闭时的警告对话框
- 如何将警告框替换为对话框?
- 在输入类型文件上添加JavaScript警告可以防止在Internet Explorer中出现打开文件对话框
- 点击& # 39;好# 39;在警告或确认对话框通过jquery/javascript
- 从javascript bookmarklet中删除确认/警告对话框
- 会话超时警告在javascript与jquery对话框
- FireFox不会为window beforeunload事件显示任何警告对话框
- 如何创建带有"more"的警告对话框或“;details"不重复使用的部分
- 保持文件对话框打开后,即使显示警告