首页 > web前端 > js教程 > 脚本编写:为 After Effects 脚本创建窗口

脚本编写:为 After Effects 脚本创建窗口

Patricia Arquette
发布: 2025-01-22 20:35:11
原创
315 人浏览过
Contents
1. Introduction 6. Buttons
2. Windows 7. Options
3. Groups 8. Example
4. Panels 9. Conclusion
5. Text

介绍

当您需要最终用户输入信息并显示说明时,为脚本创建窗口是理想的选择。在本文中,我将介绍使用一些基本的 javascript 和 Adob​​e Extendscript Toolkit CC 为 AE 脚本创建窗口的基础知识。


视窗

制作你的窗户,非常简单:

//New Window
var mainWindow = new Window("palette", "Title", undefined);
登录后复制
登录后复制
登录后复制

new Window() 是创建窗口的参数。然后,您需要在内部指定类型、标题和边界。调色板窗口适用于 After Effects 脚本,并且还建议将边界保留为未定义,因为大小和位置稍后可能会受到影响。

呼叫您的窗口:

mainWindow.show();
登录后复制
登录后复制

由于窗口中当前没有任何内容,这将简单地调用一个小窗口来显示它正在工作。

Screenshot of window with nothing in it


团体

接下来要做的是创建一个对象来存储窗口的信息。

“组”允许您组织其中的对象。在 mainWindow.show() 之前将此行添加到您的脚本中:

group01 = mainWindow.add("group", undefined, "Group 01");
登录后复制
登录后复制

我们将组添加到主窗口,概述类型、边界和文本属性。由于我们要添加一个组,因此第一个参数是“group”。同样,您可以不定义边界。最后,包括您希望为该组命名的内容。默认情况下,这不会显示在窗口中。

Screenshot of a group object with the text

面板的默认方向是按行。如果您想将其更改为列排序,可以通过将其添加到脚本中来实现:

group01.orientation = "column";
登录后复制
登录后复制

面板

但是,如果您确实希望组的名称可见,则可以考虑使用“面板”对象。这种类型的对象有助于分割窗口的某些部分:

group02 = mainWindow.add("panel", undefined, "Group 02");
登录后复制
登录后复制

它与“组”对象具有相同的属性,但显示略有不同。

Screenshot of a panel object with the text

面板的默认方向是按列。如果您想将其更改为按行排序,可以通过将其添加到脚本中来实现:

group02.orientation = "row";
登录后复制

文本

您可能希望在脚本中包含 2 种类型的文本:静态文本和可编辑文本。

静态文本
静态文本可用于向最终用户提供说明。将“statictext”添加到您的对象中,如下所示:

//New Window
var mainWindow = new Window("palette", "Title", undefined);
登录后复制
登录后复制
登录后复制

我们再次使用添加控制对象,具有相同的类型、边界和文本参数。

可编辑文本
可编辑文本提供了一个文本框字段供最终用户输入。如果我们的脚本需要来自最终用户的信息(例如可自定义的文本层),这非常有用。将“edittext”添加到您的对象中,如下所示:

mainWindow.show();
登录后复制
登录后复制

这只是一种不同类型的对象。我们在文本参数中提供的文本最初将位于文本框中,供最终用户删除并在其中写入自己的文本。

Screenshot of script displaying a static text and editable text example.

如您所见,由于未定义框的大小,可编辑框中的文本被稍微剪切掉。我们可以通过事后定义大小来解决这个问题:

group01 = mainWindow.add("group", undefined, "Group 01");
登录后复制
登录后复制

这使我们能够在以后调整文本框的大小,如果我们愿意的话。

Screenshot of script displaying a static text and editable text example,with a slightly bigger text box.


按钮

您的脚本也可能需要按钮,至少为最终用户提供“运行”脚本的选项。

添加按钮是类似的过程:

group01.orientation = "column";
登录后复制
登录后复制

这将创建我们的按钮。

Screenshot of a script with a run button.

但是,为了让我们的按钮执行任何操作,我们需要告诉脚本在按下按钮时要做什么。我喜欢创建一个函数来容纳我希望按钮完成的所有任务。

group02 = mainWindow.add("panel", undefined, "Group 02");
登录后复制
登录后复制

在这里,我们使用 button01.onClick 运行我们的第一个函数,我们要求它运行 app.beginUndoGroup("Tutorial"),以便撤消脚本是 After Effects 内部的单个操作。接下来,我们告诉它运行我们的函数completeTasks。在下面,我定义了函数completeTasks。在这里,包括您希望按钮完成的所有操作(目前,我的按钮仅关闭脚本窗口),并通过添加 app.endUndoGroup("Tutorial") 来关闭撤消组来完成该功能。

我将在以后的文章中详细介绍这一点。


选项

可用的控制对象的其他选项位于 Javascript 工具指南 CC

此处涵盖了复选框、下拉菜单、单选按钮和滑块等对象,仅举几例,并遵循类似的过程来添加文本或按钮。


例子

让我们将有关 Windows 的知识与上一篇文章联系起来,并制作一个用于创建和打开新合成的示例脚本。

//New Window
var mainWindow = new Window("palette", "Title", undefined);
登录后复制
登录后复制
登录后复制

让我们看一下这个脚本。

我首先创建我的窗口和组。 Group01 是我的“面板”,将标题“描述”添加到静态文本中。与此同时,我的其余对象进入 Group02,一个“组”对象。因为我希望 Group02 的方向是一列,所以我在这里设置。

然后,我创建我的对象。我从 Group01 内的静态文本开始。接下来,我在 Group02 内创建 2 个 edittext 对象,以便用户指定他们想要创建的新合成的大小,并指定这两个文本字段的大小。最后,我创建一个按钮,以便最终用户可以运行该脚本。

创建了所有变量后,我就创建了函数。我首先按照说明为按钮设置 onClick 函数,方法是打开撤消组并运行自定义函数completeTasks。

然后我定义completeTasks。首先,我需要对 compWidth 和 compHeight 编辑文本对象的文本使用 parseInt()。这会将它们从文本转换为整数,以便脚本的其余部分可以理解输入。完成此操作后,我创建一个新的合成,将宽度和高度设置为用户输入的值。然后,在脚本窗口关闭之前,合成将打开并成为活动合成,并且撤消循环将关闭。

运行此脚本允许您将新的合成设置为文本字段中指定的宽度和高度值。

可以通过添加警报来改进此脚本,如果文本字段中添加的任何内容不是整数(或者可能设置最大值),则警告用户脚本已失败。我将在另一篇文章中更详细地讨论这一点。目前,如果文本字段中存在非法字符,则脚本将无法工作,直到宽度和高度文本字段都输入数字为止。

Screenshot of completed script


结论

使用 Adob​​e Extendscript Toolkit CC 为 After Effects 脚本创建窗口的初学者指南到此结束。下一篇文章我将介绍为您的作品创建不同类型的图层。

以上是脚本编写:为 After Effects 脚本创建窗口的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板