用户指南 取消(C)

使用表达式在动态图形模板中创建下拉列表

  1. After Effects 用户指南
  2. Beta 版
    1. Beta 版项目概述
    2. After Effects Beta 版主页
    3. Beta 版中的功能
      1. “属性”面板(Beta 版)
      2. 可选轨道遮罩图层(Beta 版)
      3. 原生 H.264 编码(Beta 版)
  3. 快速入门
    1. After Effects 快速入门
    2. After Effects 的新增功能 
    3. 发行说明 | After Effects
    4. After Effects 系统要求
    5. After Effects 中的键盘快捷键
    6. 支持的文件格式 | After Effects
    7. 硬件建议
    8. 适用于 Apple Silicon 的 After Effects
    9. 规划和设置
    10. 设置和安装
  4. 工作区
    1. 常规用户界面项
    2. 了解 After Effects 界面
    3. 工作流程
    4. 工作区、面板和查看器
  5. 项目与合成
    1. 项目
    2. 合成基础知识
    3. 预合成、嵌套和预渲染
    4. 使用合成分析器查看详细的性能信息
    5. CINEMA 4D 合成渲染器
  6. 导入素材
    1. 准备并导入静止图像
    2. 从 After Effects 和 Adobe Premiere Pro 导入
    3. 导入和解释视频与音频
    4. 准备和导入 3D 图像文件
    5. 导入和解释素材项目
    6. 使用素材项目
    7. 使用“场景编辑检测”检测编辑点
    8. XMP 元数据
  7. 文本和图形
    1. 文本
      1. 设置字符格式和“字符”面板
      2. 文本效果
      3. 创建和编辑文本图层
      4. 设置段落格式和“段落”面板
      5. 凸出文本和形状图层
      6. 为文本设置动画
      7. 文本动画的示例和资源
      8. 实时文本模板
    2. 动态图形
      1. 在 After Effects 中使用动态图形模板
      2. 使用表达式在动态图形模板中创建下拉列表
      3. 使用“基本属性”创建动态图形模板
      4. 替换动态图形模板和基本属性中的图像和视频
  8. 绘图、绘画和路径
    1. 形状图层、路径和矢量图形的概述
    2. 绘画工具:笔刷、仿制图章和橡皮擦
    3. 将形状描边椎体化
    4. 形状图层的形状属性、绘画操作和路径操作
    5. 使用“位移路径”形状效果更改形状
    6. 创建形状
    7. 创建蒙版
    8. 使用内容识别填充面板,移除视频中的对象
    9. Roto 笔刷和调整遮罩
  9. 图层、标记和摄像机
    1. 选择和排列图层
    2. 混合模式和图层样式
    3. 3D 图层
    4. 图层属性
    5. 创建图层
    6. 管理图层
    7. 图层标记和合成标记
    8. 摄像机、光和目标点
  10. 动画、关键帧、运动跟踪和抠像
    1. 动画
      1. 动画基础知识
      2. 使用人偶工具制作动画
      3. 管理形状路径和蒙版并对其进行动画制作
      4. 使用 After Effects 为 Sketch 和 Capture 形状制作动画
      5. 分类动画工具
      6. 使用数据驱动的动画
    2. 关键帧
      1. 关键帧插值
      2. 设置、选择和删除关键帧
      3. 编辑、移动和复制关键帧
    3. 运动跟踪
      1. 跟踪和稳定运动
      2. 人脸跟踪
      3. 蒙版跟踪
      4. 蒙版引用
      5. 速度
      6. 时间拉伸和时间重映射
      7. 时间码和时间显示单位
    4. 抠像
      1. 抠像
      2. 抠像效果
  11. 透明度与合成
    1. 合成和透明度概述及资源
    2. Alpha 通道和遮罩
  12. 调整颜色
    1. 颜色基础知识
    2. 色彩管理
    3. 颜色校正效果
  13. 效果和动画预设
    1. 效果和动画预设概述
    2. 效果列表
    3. 模拟效果
    4. 风格化效果
    5. 音频效果
    6. 扭曲效果
    7. 透视效果
    8. 通道效果
    9. 生成效果
    10. 过渡效果
    11. 果冻效应修复效果
    12. 模糊和锐化效果
    13. 3D 通道效果
    14. 实用效果
    15. 遮罩效果
    16. 杂色和颗粒效果
    17. 保留细节放大效果
    18. 旧版效果
  14. 表达式和自动化
    1. 表达式
      1. 表达式基础知识
      2. 了解表达式语言
      3. 使用表达式控件
      4. JavaScript 与旧版 ExtendScript 表达式引擎之间的语法差别
      5. 正在编辑表达式
      6. 表达式错误
      7. 使用表达式编辑器
      8. 使用表达式编辑和访问文本属性
      9. 表达式语言引用
      10. 表达式示例
    2. 自动化
      1. 自动化
      2. 脚本
  15. 沉浸式视频、VR 和 3D
    1. 在 After Effects 中构造 VR 环境
    2. 应用沉浸式视频效果
    3. 用于 VR/360 视频的合成工具
    4. 跟踪 3D 摄像机运动
    5. 使用 3D 设计空间
    6. 3D 变换 Gizmo
    7. 使用 3D 动画执行更多操作
    8. 使用实时引擎实时预览对 3D 设计的更改
    9. 向图形添加响应式设计 
  16. 视图和预览
    1. 预览
    2. 使用 Mercury Transmit 进行视频预览
    3. 修改和使用视图
  17. 渲染和导出
    1. 渲染和导出基础知识
    2. 将 After Effects 项目导出为 Adobe Premiere Pro 项目
    3. 转换影片
    4. 多帧渲染
    5. 自动渲染和网络渲染
    6. 渲染和导出静止图像及静止图像序列
    7. 在 After Effects 中使用 GoPro CineForm 编解码器
  18. 使用其他应用程序
    1. Dynamic Link 和 After Effects
    2. 使用 After Effects 和其他应用程序
    3. After Effects 中的同步设置
    4. After Effects 中的 Creative Cloud Libraries
    5. 增效工具
    6. CINEMA 4D 和 Cineware
  19. 协作:Frame.io 和团队项目
    1. 在 Premiere Pro 和 After Effects 中协作
    2. Frame.io
      1. 安装和激活 Frame.io
      2. 将 Frame.io 与 Premiere Pro 和 After Effects 搭配使用
      3. 常见问题解答
    3. 团队项目
      1. 开始使用团队项目
      2. 创建团队项目
      3. 使用团队项目进行协作
  20. 内存、存储、性能
    1. 内存和存储
    2. After Effects 处理预览时内存不足问题的方式    
    3. 提高性能
    4. 首选项
    5. After Effects 的 GPU 和 GPU 驱动程序要求

创建所含下拉列表允许用户在 Premiere Pro 中自定义的动态图形模板。

下拉菜单控件

在创作动态图形模板 (MOGRT) 时,可保持其属性的灵活性,以便编辑人员在 Premiere Pro 中对其进行自定义。一种方法是通过创建滑块和复选框来实现。您也可以使用具有不同选项的下拉列表来实现此目的。

创建下拉列表非常有用,因为它可为 Premiere Pro 编辑人员提供更多菜单控件和更简单的编辑体验。您可以将这些下拉列表控件设置保存为模板,以便将来用在其他合成和项目中。

在 After Effects 中使用下拉列表时显示的不同文本选项
在 After Effects 中使用下拉列表时显示的不同文本选项

创建下拉列表的原因

您可以将滑块和复选框作为编辑选项提供给 Premiere Pro 的编辑人员,但有时它们可能不太直观而且更耗时。在这种情况下,下拉列表可能更加适合。使用此选件可让 Premiere Pro 编辑人员进行以下选择:

 选择颜色方案 - 例如,您可以为一组要用于影片字幕的颜色添加一个下拉列表。

 不同位置或设计 - 例如,为下沿字幕的位置(例如左侧或右侧)添加一个下拉列表。

 动画选项 - 例如,添加一个下拉列表以选择不同的动画持续时间。

 文本或资源选项 - 例如,为一周的七天添加一个下拉列表。这样可避免重新键入源文本,并且还可以减少后期制作出错的可能性。

设置下拉列表控件

使用“下拉菜单控件”效果创建下拉列表。要了解此功能的工作原理,请执行以下步骤:

  1. 创建一个合成。
    单击项目面板底部的合成图标,或在主页屏幕上选择新建合成

  2. 要添加文本图层,请选择“图层”>“新建”>“文本”,然后键入要添加的文本。在本例中,让我们写入“Morning”。

  3. 打开“效果和预设”面板并搜索“填充颜色”,然后放置到文本图层上。

  4. 所有图层就位后,请在“效果和预设”面板中,搜索“下拉菜单控件”,并将其放置到图层上。您也可以通过“效果”>“表达式控制”>“下拉菜单控件”来访问该菜单。

    时间轴面板中,旋转打开文本图层属性,然后按住 Alt 键并单击“源文本”旁边的秒表图标。

    在表达式文本字段中,复制以下可更改源文本的表达式代码片段:

    var x = effect("Weekday")("Menu").value;

    if ( x === 1 ) {
    "Morning";
    } else if ( x === 2 ) {
    "Evening";

    } else if ( x === 3 ) {

    "Night";

    }

    使用关联器工具,并将名为“Weekday”的下拉菜单链接到源文本属性。

    效果控件面板中,单击“编辑”。该下拉菜单控件附带了一个默认菜单,其中包含三个项:项 1、项 2、项 3。使用此功能可命名菜单选项。您还可以使用“+”图标将更多选项添加到菜单。

  5. 添加另一个下拉菜单并将其重命名为“Color”。接下来,旋转打开填充颜色图层,然后按住 Alt 键并单击“颜色”属性。要更改文本颜色,请在表达式字段中复制以下文本:

    dropDownIndex = effect("Color options")("Menu").value;

    switch ( dropDownIndex )
    {
    case 1: hexToRgb("FF3211");
    break;
    case 2: hexToRgb("CC1234");
    break;
    default: hexToRgb("BBB001")
    };

    使用关联器工具并将下拉菜单链接到“颜色”属性。将此下拉列表命名为“Color options”。您可以让颜色跟随颜色属性旁边的颜色图表而变化。 

  6. 要将两个下拉菜单属性相互挂钩,请使用“Color options”关联器工具,并将其链接到“Weekday”下拉菜单。“Color options”下拉菜单会引用“Weekday”下拉菜单,这意味着您选择的“Weekday”也会更改文本颜色。

  7. 接下来将这些下拉菜单拖到基本图形面板中,然后使用它们创建动态图形模板。

为了帮助您开始创建项目,请下载此示例文件。

下载

下拉列表控件的表达式示例

与其他表达式控件(如滑块)一样,菜单值也称为表达式中的索引。您可以从下面的示例表达式中复制到表达式文本字段中,以使用下拉菜单获得不同的结果。

注意:

表达式不会读取菜单项本身的名称。而是读取索引,即该菜单项在列表中的层次位置。

示例 1:定义图层的颜色,并将其引用到下拉控件中的菜单项:

示例 2

dropDownIndex = thisComp.layer("Null 2").effect("Dropdown Menu Control")("Menu").value;

switch ( dropDownIndex )
{
case 1: hexToRgb("FF4678");
break;
case 2: hexToRgb("CC1234");
break;
default: hexToRgb("BBB007")
};

使用表达式片段更改颜色
使用表达式片段更改颜色

dropDownIndex = thisComp.layer("Null 2").effect("Dropdown Menu Control")("Menu").value;

switch ( dropDownIndex )
{
case 1: hexToRgb("FF3211");
break;
case 2: hexToRgb("CC1234");
break;
default: hexToRgb("BBB001")
};

示例 2:将源文本与下拉菜单控件结合使用

如果您有一个下拉菜单,其中包含以下菜单项:

  1. 星期一
  2. 星期二
  3. 星期三

则“星期一”为索引 1,“星期二”为索引 2(只要它是列表中的第二项)。如果将“星期二”重命名任何其他名称,则该表达式也不会被破坏,因为它仍是索引 2。

下面提供了一个将源文本与下拉菜单控件结合使用的简单示例:

x = comp("合成名称").layer("图层名称").effect("Dropdown Menu Control")("Menu");

if (x == 1) {

text.sourceText = ("星期一");

if (x == 2) {

text.sourceText = ("星期二");

}

if (x == 3) { 

text.sourceText = ("星期三");

}

示例 3:定义文本图层的源文本,并将其引用到下拉控件中的菜单项:

var listItems = [

"Lambs",
"Pups",
"Not a thing",
];
var dropDownValue = effect("Dropdown Menu Control")("Menu").value;
listItems[ dropDownValue - 1 ];

 

var x = effect("Dropdown Menu Control")("Menu").value;if ( x === 1 ) {
"Lambs";
} else if ( x === 2 ) {
"Pups";
} else {
"Not a thing";
}

 

x = effect("Dropdown Menu Control")("Menu").value;
switch (x) {
case 1 : "dog";
break;
case 2 : "cat";
break;
default : "default" }

使用下拉列表控件时需牢记的事项

  • 始终将下拉列表控件重命名为最能反映其内容的文字。
  • “下拉菜单控件”中的菜单选项并非区分大小写或文本的选项。这意味着,即使您重命名菜单项,表达式也不会被破坏。但是,它们是区分位置的,因此更改菜单选项的位置会破坏表达式。
  • 在动态图形模板中,应均衡使用各种不同的组件。对于存在范围的实例,请使用滑块;对于包含“是”或“否”选项的情况,请使用复选框。 
  • 链接了所有其他下拉菜单的下拉菜单,将变成父菜单。合成中的下拉菜单会引用父菜单并进行相应的行为。

下拉菜单控件的脚本支持

属性.setPropertyParameters()

方法

app.project.item(index).layer(index).propertySpec.setPropertyParameters([param-array])

描述:

为属性设置参数。

注释

  • 下拉菜单控件效果(matchname:ADBE Dropdown Control)是唯一允许设置参数的属性。 
  • 无论何时,此方法失败时都将引发异常。
  • 要核实某个属性是否允许设置参数,请在调用此方法之前,先核实 isDropdownEffect(请参阅“属性.isDropdownEffect”)。

参数详细信息

param-array

字符串数组。此方法将使用提供的字符串数组覆盖现有的菜单项组。 

对于指定为菜单项的字符串,存在一些限制:

1.不允许存在空项字符串

2.不允许存在重复的项字符串

3.在项字符串中不允许使用字符“|”。

4.仅允许使用字符串。

5.项字符串应采用可在当前代码页中编码的 ASCII 或多字节。换句话说,项字符串应该是所运行系统的脚本中提供字符串。例如:在英文系统上运行脚本时指定日语的项字符串,将生成项字符串中带有非法字符的下拉菜单效果。 

注意:字符串“(-”可指定为项字符串。该字符串在下拉菜单中显示为分隔线。作者需要记住,每个分隔线将为自身声明一个索引。 

示例

Dropdowneffect = Dropdowneffect.setPropertyParameters(["星期一", "星期三", "星期五", "星期日"]);

上面的语句将对下拉菜单进行编辑,使其拥有“星期一”、“星期三”、“星期五”、“星期日”作为项。返回的属性将是更新后的属性,且应将其用于所有其他用途。

返回

更新后的属性。用户应注意,此方法调用的属性对象因内部实施而无效,因此,返回的属性应用于所有其他用途。

属性.isDropdownEffect

方法:

app.project.item(index).layer(index).propertySpec.isDropdownEffect

描述:

如果属性是“下拉菜单控件”效果,则返回 true。

示例

appliedEffect.property("菜单").isDropdownEffect  // returns true

appliedEffect.property("颜色").isDropdownEffect  // returns false  

appliedEffect.property("羽化").isDropdownEffect  // returns false

返回:

布尔值

有问题或想法?

如果您有疑问或有希望分享的想法,请加入我们的 After Effects 社区。我们很荣幸能倾听您的意见并欣赏您的动态图形模板。

Adobe 徽标

登录到您的帐户