先说一下布尔运算,简单说就是判断,如果满足条件,则返回值为true,如果不满足条件,则返回值为false。
AE里面不用理解得太复杂,来看基本写法:
if (条件){
当条件为 true 时执行的代码
}else{
当条件不为 true 时执行的代码
}
其判断过程如下图:

ps,注意一下格式,按标准写有助于自己写时候的思路。
如果有三个条件语句,可用else if语句,其判断过程如下图:

看一个小例子:
if(time >1){
if(time < 2){
wiggle(2,10);}
else if(time > 2 && time <3){
wiggle(5,20);}
}else{
value
}
这个表达式的作用是:
0~1秒,不执行 # 不满足"(time >1)",直接跳到"}else{"后,返回value
1~2秒,执行wiggle(2,10) #满足"(time >1)",然后又满足"(time < 2)",返回值wiggle(2,10)
2~3秒,执行wiggle(5,20) #满足"(time >1)",然后又满足"(time > 2 && time <3)",返回值wiggle(2,10)
3秒后,不执行 #满足"(time >1)",但是不满足"(time < 2)"、"(time > 2 && time <3)"中的任何一个,返回值value
另:布尔运算的且和或
或 : "||" 如: a || b:如果a是true,那么b不管是true还是false,都返回true。
且 : "&&" 如: a && b:如果a是false,那么b不管是true还是false,都返回false。需同时满足a和b,才会返回true。
fadeFrames = 10; m = 0;t = time;
if(marker.numKeys > 0){
m = marker.nearestKey(time).index;
tag = marker.key(m).comment;
if (tag == "In"){
t = marker.key(m).time - time;}
else if(tag == "Out"){
t = time - marker.key(m).time;}
linear(t, 0, framesToTime(fadeFrames), value, 0)
}else{
value;
}

最上面的M=0 T=time 意义在哪儿?下面又重新赋予了T和M的值,是不是下面重新写了 上面就失效了?
Good!