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:抑制/自动单击对话框的主要内容,如果未能解决你的问题,请参考以下文章