javascript 是否可以在Adobe Illustrator脚本中异步运行函数?

3yhwsihp  于 2023-05-21  发布在  Java
关注(0)|答案(2)|浏览(230)

我为Adobe Illustrator做了一个脚本。但我有个问题我需要一些功能来应用一步一步(异步)。这些职能是:prepareToScript、selectTextObjects、mergeTextObjects、moveNamesToNewLayer或leaveNamesOnCurrentLayer。有可能吗?下面是代码的一部分:

function runThisScript() {

  var doc = app.activeDocument;

    doc.selection = null;
    var layer = doc.activeLayer;

    var layer = doc.layers.getByName("Layer 1");

    doc.activeLayer = layer;

    prepareToScript();
    selectTextObjects();
    mergeTextObjects();

  if (processAllChk.value) {
    processAllNames();
    app.preferences.setStringPreference(allKey, "true");
  }

  if (moveNamesChk.value) {
    moveNamesToNewLayer();
  } else {
    if (!wasTrans) {
        leaveNamesOnCurrentLayer();
    }
    moveNamesToNewLayer();
  }
}

我试过回调和等待。要么我做错了什么,要么它们在Adobe Illustrator中不起作用。

3phpmpom

3phpmpom1#

如果你指的是经典的Extendscript(Adobe遗留的JavaScript变体,jsx文件),答案是“否”。它没有async/await函数。
如果你指的是新的UPX脚本,那就是另一回事了。但是,据我所知,UPX目前不支持Adobe Illustrator:https://community.adobe.com/t5/illustrator-discussions/when-will-adobe-uxp-for-illustrator-be-released/td-p/13473663
如果你指的是CEP面板的脚本,有现代的Javascript,但它只在CEP界面内工作。一旦您需要访问文档中的图形,您就必须再次调用经典的Extendscript脚本,包括它的所有限制。

0aydgbwb

0aydgbwb2#

await仅适用于async函数。尝试在function关键字之前写入async

相关问题