ae里的wiggle表达式(17.AE表达式之function)

说明:AE一般指Adobe After Effects。

前面我们对对象(Object)有了一定的了解,而且我们还介绍了一个特定的对象:方法(Method)。方法(Method)可以对值的进行操作并且可以生成新值。但是,如果我们需要的方法(Method)不存在,而我们想要创建自己的方法,该怎么办?

创建一个函数 function

接下来我们介绍下一个关键字 function

// 创建一个 function: function nameFunction (){ // 你的 function 代码 return result; // 返回一个结果 }; // 调用上面创建的 function: nameFunction(); // 使用 function 名称调用

我们通过一个例子来看看这是如何工作的,创建一个椭圆形状图层,并将其放置在合成的左上角:

ae里的wiggle表达式(17.AE表达式之function)(1)

接下来,我们打开图层的位置属性的表达式编辑器,并写入:

function center(){ return [thisComp.width/2,thisComp.height/2]; }; center();

ae里的wiggle表达式(17.AE表达式之function)(2)

我们看到,使用刚刚创建的这个自定义的函数,来将图层移动到了合成的中心。

function 创建详解

function nameFunction /* 要创建一个函数,我们首先需要写该函数关键字 function,然后命名该函数。 在我们的示例中,我们给自定义函数命名为 center。 你可以根据需要为你函数命名,就像定义一个变量一样,只要你遵守我们提到的关于命名一个变量的规则。 这也适用于创建的任何新术语,但不要以数字开头,也不要使用已经在表达式中存在的术语。 */ () /* 为函数命名后,需要在后面添加一个括号 ()。 */ {} /* 接下来,我们在花括号内来定义函数体,即,编写函数要执行的操作。 请记住,当我们编写表达式时,它可以完全写在花括号之间; 创建函数时,就像创建一个可以通过快捷方式调用的表达式。 */ return /* 在花括号内,我们可以编写一个函数,就像编写一个独立存在的表达式一样。 需要注意的是,函数的结果需要使用关键字return返回,因此它将生成函数创建的新值。 没有return返回内容,它就不会产生任何内容。 当表达式执行到达return时,函数将停止执行。 return关键字有一个特定规则,函数的结果需要在同一行上才能起作用。 在我们的示例中,我们只有一条语句,因此我们直接在return关键字之后编写语句。 我们需要一个数组值来生成位置值,所以在括号中我们将创建一个数组值来描述x和y坐标。 宽度和高度是组成的值,将宽度和高度的数值,除以2,得到每个维度的中间值。 */ 使用这个函数 function /* 一旦创建并定义了函数,就必须调用它,就像调用对象一样。 创建了函数并不代表被使用了,在表达式中创建对象或函数后,还得需要去调用它。 要调用该函数,我们需要输入要使用的函数的名称,但请注意,函数名称后需要加上括号。 在上述示例中,我们在表达式编辑器中输入 center() 来调用了而这个函数, 这个 center() 函数通过计算返回给我们最终要转到的位置的宽高值。 */

创建一个带参数的函数 function

上面我们创建了一个可以自己进行工作的函数,那么,如果我们需要让函数按照我们特定的要求,对我们告诉他的一些数据进行处理,并返回给我们结果,要如何处理呢?

这就需要我们创建一个带参数的函数 function :

// 创建一个带参数 arguments 的函数 function: function nameFunction (arguments){ // 你的 function 代码,并包含对参数 arguments 的处理 return result; // 返回一个结果 }; // 调用上面创建的 function,并带上参数 arguments: nameFunction(arguments); // 使用 function 名称调用

下面,我们尝试创建一个函数,使用函数我们反转图层的x和y坐标,仍然在位置属性的表达式编辑器中写入表达式代码。

初始状态:

ae里的wiggle表达式(17.AE表达式之function)(3)

初始位置是 [372,204]。

位置属性中写入,带有1个参数的函数:

function invert (a){ return [a[1],a[0]]; }; invert(position);

ae里的wiggle表达式(17.AE表达式之function)(4)

我们可以看到,当表达式写入后,位置属性数值改变成了 [204,372]。

在这里,我们的函数本身是并不知道对哪个数据进行处理的,而是在调用这个函数时,我们通过传递参数的方式,将一个数据(这里传递的是位置数据)告诉了我们自定义的函数 invert。

上面我们传递的参数是一个数组值,仅传递了1个参数,当然我们也可以将参数数据分开传递。

位置属性中写入,带有2个参数的函数:

function invert (a,b){ return [b,a]; }; invert(position[0],position[1]);

ae里的wiggle表达式(17.AE表达式之function)(5)

大家可以看到,效果是一样的。

函数的参数

函数的参数是可以添加若干个的,需要注意,多个参数之间要用英文逗号“,”进行分隔,就像这样:

nameFunction (argument 1, argument 2,..., argument n)

以上是函数 function 的基础使用方法,大家可以尝试一下!

以上便是本节全部内容,如果你对AE表达式感兴趣,请关注后续文章!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页