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

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

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

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

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

【问题讨论】:

    标签: flash dialog jsfl suppress


    【解决方案1】:

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

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

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

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

    像往常一样为 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

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 2013-09-02
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多