我已经为Adobe Illustrator制作了一个脚本.但我有一个问题:我需要逐步(异步)应用一些函数.这些函数是:preparareToScrip、seltTextObjects、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();
  }
}

我已经try 了回调和等待.要么是我做错了什么,要么是它们在Adobe Illustrator中不起作用.

推荐答案

如果你指的是classic 的扩展脚本(传统Adobe的Java脚本、JSX文件的变体),答案是否定的.它没有异步/等待功能.

如果你指的是新的UPX脚本,那就是另一回事了.但是,据我所知,UPX目前不支持Adobe Illustrator:https://community.adobe.com/t5/illustrator-discussions/when-will-adobe-uxp-for-illustrator-be-released/td-p/13473663

如果您指的是CEP面板的脚本,则有现代的Java脚本,但它只能在CEP界面中工作.一旦需要访问文档中的图形,就必须再次调用classic 的扩展脚本脚本及其所有限制.

Javascript相关问答推荐

如何制作删除按钮以从列表中删除该项目所属的项目?

为什么子组件没有在reaction中渲染?

使用JavaScript单击上一个或下一个特定按钮创建卡滑动器以滑动单个卡

使用续集和下拉栏显示模型属性

为什么我的includes声明需要整个字符串?

如何修复我的js构建表每当我添加一个额外的列作为它的第一列?

PrivateRoute不是路由组件错误

在286之后恢复轮询

为什么我的导航条打开状态没有在窗口addeventlistener(Reaction Js)中更新?

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

如何强制Sphinx中的自定义js/css文件始终加载更改而不缓存?

我在Django中的视图中遇到多值键错误

本地库中的chartjs-4.4.2和chartjs-plugin-注解

Web Crypto API解密失败,RSA-OAEP

回溯替代方式

JS Animate()方法未按预期工作

在表单集中保存更改时删除';禁用';

在不扭曲纹理的情况下在顶点着色器中旋转UV

脚本语法错误只是一个字符串,而不是一个对象?

使用静态函数保存 node 前的钩子