先说一下布尔运算,简单说就是判断,如果满足条件,则返回值为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!