AEJoy —— 27 个表达式实例(三)【JS】

361 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

保持描边宽度(Maintain Stroke Width)

在缩放图层时保持描边宽度。应用于描边宽度属性

value / length(toComp([0,0]), toComp([0.7071,0.7071])) || 0.001;

文本层的最大宽度(Max Width Scale of Text Layer)

通过缩放属性限制文本层的最大宽度

maxW = effect("max-width")("Slider"); // pick whip to your slider
sourceW = sourceRectAtTime(time,true).width;

间隔时间+摆动(Posterize Time + Wiggle)

用 wiggle 表达式添加间隔时间停止运动效果。

f = 2;
a = 10;
posterizeTime(f);
wiggle(f, a);

缩放层到某个宽度(缩放图层到一定的宽度)

缩放图层以适应像素宽度。适用于 scale 属性

w = 600; // set to your target width\
s = 100*w/thisLayer.width;\
[s,s]

下拉显示/隐藏图层(Show/Hide Layer With Dropdown)

应用于图层的不透明度属性。更改图层的名称以 [1,2,3] 开始,以匹配下拉控件。

select = effect("Dropdown Control")("Menu").value;

标记上的触发表达式

使用标记触发动作的模板表达式

n = 0;
if (marker.numKeys > 0) {
    n = marker.nearestKey(time).index;
    if (marker.key(n).time > time) {
        n--;
    } if (n == 0) {
        value;
    } else {
        t = time - marker.key(n).time; //time since marker
        //Do Stuff
    }
} else {
    value;
}

在二值之间摇摆(Wiggle Between Two Values)

在两个值之间随机摆动。

min = -10; // minimum value
max = 50; // maximum value
freq = 5; // wiggles per second
amp = Math.abs(max-min)/2; // amount to wiggle
offset = (max+min)/2;
wiggle(f, a) + offset;

在一维上摇摆(Wiggle on One Dimension)

限制摆动到一维(X 或 Y)。注意:摆动 X 维。

frequency = 2;
amplitude = 10;
w = wiggle(frequency, amplitude);
[w[0],value[1]]

对于仅 Y 维摆动的话,更改最后一行为[value[0],w[1]]