JSFL:抑制/自动单击对话框

Posted

技术标签:

【中文标题】JSFL:抑制/自动单击对话框【英文标题】:JSFL: Suppressing/auto clicking on Dialog boxes 【发布时间】:2011-05-10 06:19:42 【问题描述】:
var tmpDoc = fl.createDocument();
/*..some logic...*/
tmpDoc.addItem(x:0,y:0,item);

我的 JSFL 有上面的代码。 在第三行,我得到一个对话框: 标题为:“解决库冲突” 两个单选按钮选项:“替换”、“不替换” 两个按钮:“确定”、“取消”

由于这个对话框,我必须手动监控 脚本执行并单击一个按钮。

我想要: 1. 完全禁止此类对话框ex。 2. 或以编程方式为此类对话框提供默认选项。

我如何使用 JSFL 做到这一点?

【问题讨论】:

【参考方案1】:

我能够解决这个问题。诀窍是,当您添加一个新项目时,它会位于库的顶层并在那里查找冲突,即使库文件夹中的某处存在“相同”项目。

当您使用 JSFL (library.moveToFolder) 将库项目移动到文件夹中相同项目的位置时,该项目将被替换,并且不会出现冲突对话框。

    如果可能,请手动将所需的库项目从库的顶层移动到文件夹中。这只需要执行一次,并且会永久更改您的库结构。 在脚本时,当您将每个项目添加到文档时,调用 library.moveToFolder(folderPath, itemPath, true); 这将覆盖文件夹中的项目并跳过提示

根据您的需要,您的具体方法可能会有所不同,但关键是在添加时不要将项目放在库的顶部。先把它们移到别的地方。

像往常一样为 Flash 向后弯腰!希望这会有所帮助。

P.S.,这也适用于向库中添加组件。

【讨论】:

从组件面板将组件添加到库时不再适用于 CS6。我发现的唯一解决方法是使用一些自动化软件专门单击对话框。【参考方案2】:

您可以尝试在将项目添加到库之前使用库的itemExists() 函数检查项目是否存在:

var doc = fl.getDocumentDOM();
var lib = doc.library;
//check if the item already exists first, if so, keep count of symbols with the same name, append random, etc.
if(!lib.itemExists('item')) lib.addNewItem('movie clip','item');
else                        lib.addNewItem('movie clip','item'+Math.random());

HTH

【讨论】:

以上是关于JSFL:抑制/自动单击对话框的主要内容,如果未能解决你的问题,请参考以下文章

抑制 WebBrowser 控件中的保存/打开对话框

OpenGL 抑制基于 MFC 对话框的应用程序中的异常

Selenium Chrome 抑制/关闭客户端证书选择对话框

如何在 Excel 下载时抑制文件损坏警告?

Matlab:抑制uiputfile的警告对话框

如何抑制由我​​无法更改的代码显示的对话框?