2
var tmpDoc = fl.createDocument();
/*..some logic...*/
tmpDoc.addItem({x:0,y:0},item);

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

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

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

我如何用 JSFL 做到这一点?

4

2 回答 2

1

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

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

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

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

像往常一样为Flash弯腰!希望这可以帮助。

PS,这也适用于向库中添加组件。

于 2011-01-06T01:38:02.460 回答
0

您可以尝试在使用库的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());

高温高压

于 2010-11-15T22:50:10.810 回答