AI是当今和CDR主流的矢量平面设计排版软件,AI除了自身的功能外,还提供了多种语言的脚本支持,允许用户编写自己的脚本,实现复杂的的自动化操作,也就是通常所说的针对AI软件的二次开发。本文将对AI插件开发的相关知识,做一些基本介绍,部分内容翻译自官方文档。
什么是AI脚本
脚本就是一系列的命令,用来告诉AI执行一个或多个任务。这些任务可以是简单的,只影响当前文档中的一个对象,也可以是复杂的,影响所有当前打开的AI文档。这些任务甚至可能涉及其他应用程序,比如文字处理器WORD、电子表格EXCEL和数据库管理程序等。
在大多数情况下,脚本的构建模块对应于Illustrator工具、菜单、面板和您已经熟悉的对话框。如果你知道你想要AI做什么,你可以为此编写一个AI脚本。
AI脚本演示
TODO:这里待补充GIF动态图。
使用AI脚本的好处
平面设计是一个以创造力为特征的领域,但工作的各个方面都毫无创造力。在事实上,你可能会注意到你花在放置和替换图片、纠正文本错误上的时间,在图像设置服务提供商准备打印文件通常会减少你的时间适合从事创造性工作。
只需投入少量的时间和精力,您就可以学习编写简短、简单的执行脚本重复的任务。随着脚本技能的提高,您可以继续学习更复杂的脚本。脚本还可以提高你的创造力,通过快速执行你可能没有时间尝试的任务。为例如,您可以编写一个脚本来系统地创建一系列对象,修改新对象的位置,描边和填充属性。您还可以编写一个访问内置的脚本变换矩阵的功能是拉伸、缩放和扭曲一系列对象
没有脚本,你可能会错过这种劳动密集型技术的创造潜力。
AI脚本和动作有什么不同
动作和脚本都是自动化重复任务的方法,但它们的工作方式非常不同:
- 动作使用程序的用户界面来完成它们的工作。当动作运行时,菜单选项被执行,选择对象,并创建记录路径。脚本不使用程序的用户界面执行任务,脚本可以比动作执行得更快。
- 动作获取和响应信息的设施非常有限。您不能添加动作的条件逻辑;因此,动作不能基于当前做出决定情况,例如更改矩形而不是椭圆的描边类型。脚本可以获取信息和根据从AI获得的信息做出决定和计算。
- 一个脚本可以执行一个动作,但是动作不能执行脚本。
AI支持哪些脚本语言
AI脚本支持Windows的VBScript和JavaScript脚本,以及AppleScript和JavaScript用于Mac OS的脚本。脚本文件扩展名及支持的环境类型如下:
脚本类型 | 文件扩展名 | 平台 |
AppleScript | compiled script (.scpt) 或者 OSAS file(无扩展名) | Mac OS |
JavaScript or ExtendScript | text ( .js or .jsx) | Windows Mac OS |
VBScript | text ( .vbs ) | Windows |
JavaScript开发选项
您可以使用扩展脚本工具包为AI显式地创建JavaScript脚本,也可以使用Adobe扩展构建器和创意云SDK在动作脚本中开发扩展。扩展是基于Flash的(SWF),并且可能会在各种创造性的云应用程序中工作。
使用动作脚本开发一个CC扩展
创造性云应用程序具有可扩展性基础设施,允许开发人员扩展应用程序的功能;该基础设施基于Flash/Flex技术,每个扩展都作为编译的Flash(SWF)文件交付。创意云包括扩展管理器,以支持安装扩展。
产品附带的扩展的一个示例是AdobeKuler。Kuler在不同套件应用程序中具有一致的用户界面,但每个都有不同的逻辑,适用于主机应用程序。
扩展的用户界面是使用Flex框架用动作脚本编写的。扩展通常通过应用程序的“扩展”菜单中自己的菜单项访问。Adobe扩展生成器允许您使用Flash生成器的设计视图交互式地设计用户界面。创意云SDK还允许您在动作脚本中开发扩展的所有应用程序逻辑;您可以在熟悉的Flash构建器环境中开发和调试您的扩展。
为了开发应用程序逻辑,我们建议使用操作脚本包装库(CSAWLib),它将每个主机应用程序的脚本DOM公开为操作脚本库。这与Adobe扩展生成器环境紧密集成,其中包括向导来帮助您构建扩展的基本结构,并针对AdobeInDesign、phop和插件等套件应用程序运行和调试代码。
脚本DOM的方法、属性和行为如主机应用程序的JavaScript脚本参考中所述。有关如何使用Adobe Extension Builder和包装器库的详细信息,请参阅Creative Cloud SDK文档,该文档可从Adobe Extension Builder中访问。
用脚本编写的插件
CC JavaScript脚本接口允许为插件限制脚本。插件可以定义命令、事件和通知程序以及执行某些操作的处理程序。然后,JavaScript脚本可以使用app.sendScriptMessage()方法,向该插件定义的命令发送参数,并接收一个插件定义的响应。
例如,Adobe自定义工作区插件定义了一个命令“交换机工作区”。脚本可以使用以下代码调用此命令:
result = app.sendScriptMessage("Adobe Custom Workspace", "Switch Workspace", '<workspace="Essentials" >');
在这种情况下,插件返回的值是字符串“<error=errNo>”。
扩展脚本功能
如果您编写直接使用插图JavaScriptDOM的特定于AI的脚本,则将创建ExtendScript由。jsx扩展名区分的文件。给JavaScript文件一个。jsx扩展名(而不是JavaScript文件的标准。js扩展名)允许您利用扩展Script功能和工具。
扩展脚本Script提供了所有标准的JavaScript功能,以及一个开发和调试环境,扩展脚本工具包(ESTK)。ESTK与所有可编写脚本的Adobe应用程序一起安装,并且是JSX文件的默认编辑器。ESTK包括一个对象模型查看器,其中包含有关JavaScript对象的方法和属性的完整文档。有关访问ESTK和对象模型查看器的信息,请参见第9页上的“查看JavaScript对象模型”。
扩展脚本还提供了各种工具和实用工具,包括以下内容:
- 一个本地化实用工具
- 工具,允许您组合脚本并将它们引导到特定的应用程序
- 独立于平台的文件和文件夹表示
- 工具用于构建脚本的用户界面
- 消息框架,允许您在启用脚本的Adobe应用程序之间发送和接收脚本和数据
无论使用DOM直接使用JSX文件,还是间接通过操作脚本包装库和Adobe扩展生成器来使用,所有这些功能都可用。有关这些功能和其他功能的详细信息,请参见《JavaScript工具指南》。