Property(屬性及方法)組中的方法和屬性,可用于查看或操作屬性的關(guān)鍵幀,、取值,、時(shí)間采樣、循環(huán)與平滑等方面的信息,。通過這些方法,,可以實(shí)現(xiàn)復(fù)雜的動(dòng)畫邏輯和自定義行為,例如通過 loop* 系列方法重復(fù)關(guān)鍵幀動(dòng)畫,,通過 wiggle 或 smooth 制作隨機(jī)或平滑的動(dòng)態(tài)效果,,通過 valueAtTime 和 velocityAtTime 等進(jìn)行更精確的時(shí)間操作,等等,。返回值:Number、Array 或 String,具體取決于屬性類型,。例如,,位置屬性通常返回二維或三維數(shù)組,旋轉(zhuǎn)屬性返回?cái)?shù)值,,不透明度返回?cái)?shù)值,,文本屬性可能返回字符串。// 示例 1:獲取當(dāng)前屬性并加以改動(dòng) value + 10;
//示例 2:使用另一個(gè)屬性進(jìn)行混合 value * thisComp.layer("Control").effect("滑塊控制")("滑塊"); 獲取屬性在指定時(shí)間點(diǎn)的值,。t :Number,,要采樣的時(shí)間,以秒為單位,。返回值:與 value 相同類型,,可以是 Number、Array 或 String,,具體取決于屬性類型,。// 示例 1:假設(shè)在 0、1,、2,、3 秒處設(shè)置了四個(gè)關(guān)鍵幀,隨機(jī)在這四個(gè)時(shí)間點(diǎn)的關(guān)鍵幀中選擇屬性值,。 randomValue = Math.floor(Math.random() * 4); ransform.rotation.valueAtTime(randomValue);
// 示例 2:讓屬性等于1秒前的值 valueAtTime(time - 1);
// 示例 3:為形狀圖層設(shè)置“旋轉(zhuǎn)”關(guān)鍵幀動(dòng)畫并添加表達(dá)式,,。之后,,復(fù)制圖層多次,。 valueAtTime(time - index/10) 獲取屬性在當(dāng)前時(shí)間的“速度”或“速率”值,。對(duì)于時(shí)域?qū)傩裕ㄈ缤该鞫龋?,它表示?shù)值隨時(shí)間的變化速率。對(duì)于空間屬性(如位置),,它表示切線向量(X,、Y、Z 的變化速率),。返回值:Number 或 Array ,。如果是數(shù)值屬性(如不透明度),返回一個(gè)數(shù)值,;如果是空間屬性(如位置),,返回一個(gè)與其維度對(duì)應(yīng)的數(shù)組。結(jié)果與屬性的維度相同,,且根據(jù)運(yùn)動(dòng)方向會(huì)出現(xiàn)負(fù)值的速度,。// 示例 1:返回在 x 軸上的運(yùn)動(dòng)速度 thisComp.layer("mediaTEA").transform.position.velocity[0]
// 示例 2:可以根據(jù)當(dāng)前屬性的速度進(jìn)一步調(diào)整動(dòng)畫,從而實(shí)現(xiàn)慣性或動(dòng)力學(xué)效果。 var v = velocity; value + v; // 根據(jù)速度來改變屬性,,比如給位置增加動(dòng)力學(xué)效果 獲取屬性在指定時(shí)間點(diǎn)的“速度”或“速率”值,。t :Number,要采樣的時(shí)間,,以秒為單位,。返回值:與 velocity 返回相同類型,可為 Number 或 Array,,取決于屬性類型,。// 示例 1:取比當(dāng)前時(shí)間早 0.1 秒處的速度,用于延遲動(dòng)畫 velocityAtTime(time - 0.1);
// 示例 2:檢測(cè)一段時(shí)間前屬性的變化速率 prevVel = velocityAtTime(time - 0.5); // 如果在 0.5 秒前速度較大,,當(dāng)前做某些處理 preVel<10 ? value - 10 : value + 10; 獲取屬性在當(dāng)前時(shí)間的“速度標(biāo)量”,,即一個(gè)正數(shù)值表示屬性變化的速率。僅適用于空間屬性(如位置),。返回值:Number,,表示屬性在當(dāng)前時(shí)間的變化速率(標(biāo)量),不含方向信息,。// 示例 1:讓縮放屬性隨著位置屬性的速度而變化,,速度越快,變得越小,。 var s = position.speed/20; value - [s,s]
// 示例 2:在速度較小時(shí)添加緩動(dòng) if (speed < 5) { // 當(dāng)運(yùn)動(dòng)速度較小時(shí),,減小振幅 wiggle(2, 10);} else { wiggle(5, 20);} 獲取屬性在指定時(shí)間點(diǎn)的速度標(biāo)量(正數(shù)),僅適用于空間屬性(如位置),。t :Number,,要采樣的時(shí)間,以秒為單位,。返回值:Number,,表示指定時(shí)間點(diǎn)的屬性變化速率。// 示例 1:統(tǒng)計(jì)過去某時(shí)刻的運(yùn)動(dòng)速度 var spd = speedAtTime(time - 0.2); // 根據(jù)過去的速度決定當(dāng)前操作 spd > 10 ? 100 : 50;
// 示例 2:將屬性按照過去速度的2倍進(jìn)行延后動(dòng)畫效果,,適用于慣性或拖尾動(dòng)畫 speedAtTime(time - 0.1) * 2; wiggle(freq, amp, octaves=1, amp_mult=0.5, t=time)讓屬性值隨時(shí)間按指定的頻率和幅度進(jìn)行隨機(jī)變化,。freq :Number,頻率,,即,,每秒抖動(dòng)的次數(shù)。amp :Number,,振幅,,即,每次抖動(dòng)的最大偏移量,。基于原屬性值進(jìn)行正,、負(fù)擺動(dòng)。比如,旋轉(zhuǎn)屬性值為 100,,當(dāng) amp 設(shè)為 50 時(shí),,旋轉(zhuǎn)屬性值將在 50 ~ 150 之間隨機(jī)擺動(dòng)。octaves:可選,,Number,,疊加噪聲的層數(shù),默認(rèn)值 1,。用于控制抖動(dòng)的復(fù)雜程度,。每增加一個(gè) octave,都會(huì)在 freq 上疊加更高頻率的細(xì)節(jié)噪聲,,使得 wiggle 看起來更不規(guī)則,。amp_mult :可選,Number,,疊加噪聲衰減,,默認(rèn)值 0.5。指的是每增加一層 octave,,振幅遞減的倍數(shù),。范圍在 0 ~ 1 之間,。接近 1 時(shí),細(xì)節(jié)越多,,變化更突兀,。接近 0 時(shí)則細(xì)節(jié)越少,,抖動(dòng)更平滑,。t :可選,,Number,計(jì)算起點(diǎn)的時(shí)間,,默認(rèn)為 time,,表示隨時(shí)間變化。如果希望輸出成為在不同時(shí)間采樣的屬性值的擺動(dòng),,請(qǐng)使用此參數(shù),。比如設(shè)為 5 時(shí),將僅使用第 5 秒的屬性值來擺動(dòng),。返回值:與屬性的類型一致,可為 Number 或 Array,。
//示例 1:每秒5次抖動(dòng),,抖動(dòng)幅度約20單位,可用于位置等二維或三維屬性 wiggle(5, 20); //示例 2:按相同值擺動(dòng)兩個(gè)維度 v = wiggle(5, 10); [v[0], v[0]] //示例 3:只在 Y 軸上搖擺 w = wiggle(3,50); [value[0],w[1]]; //示例 4:每秒產(chǎn)生約 5 次擺動(dòng),,平均大小約 20 像素,。除了主要擺動(dòng)之外,其他兩個(gè)級(jí)別的詳細(xì)擺動(dòng)發(fā)生的頻率為每秒 10 次和 20 次擺動(dòng),各自的大小為 5 和 10 像素 position.wiggle(5, 20, 3, .5) temporalWiggle(freq, amp, octaves=1, amp_mult=0.5, t=time)temporalWiggle 并非對(duì)屬性的值進(jìn)行抖動(dòng),,而是對(duì)時(shí)間采樣進(jìn)行抖動(dòng),。也就是說,屬性本身必須已經(jīng)動(dòng)畫化,,否則無意義,。freq :頻率,即,,每秒抖動(dòng)的次數(shù),。amp_mult :每增加一層噪聲,振幅的遞減倍數(shù),。t :可選,,時(shí)間起點(diǎn),默認(rèn)當(dāng)前時(shí)間 time,。返回值:與屬性類型相同,,可為 Number 或 Array。因?yàn)樗蓸恿恕半S機(jī)化時(shí)間”的屬性值,。//示例 1:只更改采樣時(shí)間而不是值,。 scale.temporalWiggle(5, .2)
//示例 2:在關(guān)鍵幀基礎(chǔ)上隨機(jī)化時(shí)間采樣 scale.temporalWiggle(5, .2);
// 示例 3:讓透明度在關(guān)鍵幀時(shí)間周圍隨機(jī)波動(dòng) opacity.temporalWiggle(2, 0.5); smooth(width=.2, samples=5, t=time)平滑屬性在一定時(shí)間范圍內(nèi)的值,過濾掉短時(shí)尖峰,。width :Number,,以秒為單位的時(shí)間范圍,默認(rèn)為 0.2,。samples :Number,,取樣次數(shù),默認(rèn)為 5,。為更大的平滑度可使用更大的值,,但性能會(huì)下降。t :Number,,可選,,表示時(shí)間起點(diǎn),默認(rèn)當(dāng)前時(shí)間 time,。返回值:與屬性和類型一致,,返回平滑后的值,可能是 Number 或 Array,。//示例 1:在 0.1 秒的時(shí)間窗口內(nèi),,取 5 次樣本,,對(duì)位置進(jìn)行平均過濾,減少抖動(dòng) position.smooth(.1, 5)
//示例 2:對(duì)音頻振幅進(jìn)行平滑,,防止過于尖銳的音頻峰值影響動(dòng)畫 var amp = thisComp.layer("音頻振幅").effect("兩個(gè)通道")("滑塊"); amp.smooth(0.2, 5); loopIn(type="cycle", numKeyframes=0)用于設(shè)置關(guān)鍵幀動(dòng)畫的入點(diǎn)循環(huán),。即,從圖層的入點(diǎn)開始重復(fù)播放指定的動(dòng)畫段,,直到第一個(gè)關(guān)鍵幀,。指定動(dòng)畫段的界定方法是:從第一個(gè)關(guān)鍵幀開始數(shù),比如 loopIn("cycle", 1) 表示從第 1 個(gè)關(guān)鍵幀到第 2(numKeyframes + 1)個(gè)關(guān)鍵幀之間為要重復(fù)播放的指定動(dòng)畫段,。type :String,,可選,指定循環(huán)方法,,默認(rèn)值為"cycle",。--"cycle" :重復(fù)播放指定動(dòng)畫段,類似于 4321 4321 的循環(huán)播放,。--"pingpong" :往返播放指定動(dòng)畫段,,類似于 1234 4321 的循環(huán)播放。--"offset" :將第一個(gè)關(guān)鍵幀與第二個(gè)關(guān)鍵幀的變化(偏移)值重復(fù)疊加到每次循環(huán),,從入點(diǎn)開始并從最后一次循環(huán)開始播放,,類似于 (1+1.3n)(1+1.2n)(1+1.1n)(1)的遞減循環(huán)。 --"contiune" :此方法下,,無 numKeyframes 參數(shù),,動(dòng)畫會(huì)按照第一個(gè)動(dòng)畫段的速度和方向并以其變化量(前面兩個(gè)關(guān)鍵幀)持續(xù)循環(huán),從入點(diǎn)開始并從最后一次循環(huán)開始播放,,類似于 (1+1.3)(1+1.2)(1+1.1)(1),。numKeyframes :Number,可選,,指定要參與循環(huán)的動(dòng)畫段數(shù),,0(默認(rèn))表示從第 1 個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀之間的動(dòng)畫段。1 表示從第 1 個(gè)關(guān)鍵幀到第 2 個(gè)關(guān)鍵幀之間的 1 段動(dòng)畫,,2 表示從第 1 個(gè)關(guān)鍵幀到第 3 個(gè)關(guān)鍵幀之間的 2 段動(dòng)畫,。返回值:與屬性類型一致,返回基于指定循環(huán)規(guī)則的屬性值,。 為確保入點(diǎn)循環(huán)動(dòng)畫結(jié)束后與第一個(gè)關(guān)鍵幀無縫銜接,,loopIn 會(huì)根據(jù)參數(shù)的設(shè)置計(jì)算出入點(diǎn)時(shí)屬性的值。//示例 1:以下寫法,,意義一致,。不斷重復(fù)從第一個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀的動(dòng)畫 loopIn(type="cycle", numKeyframes=0); loopIn(type="cycle"); loopIn("cycle"); loopIn();
//示例 2:從圖層入點(diǎn)開始,循環(huán)播放第1個(gè)關(guān)鍵鍵到第2個(gè)關(guān)鍵幀之間動(dòng)畫段落 loopIn("cycle", 1);
//示例 3:從圖層入點(diǎn)開始,,往返播放第1個(gè)關(guān)鍵鍵到第3個(gè)關(guān)鍵幀之間動(dòng)畫段落 loopIn("pingpong",2); loopOut(type="cycle", numKeyframes=0)用于設(shè)置關(guān)鍵幀動(dòng)畫的出點(diǎn)循環(huán),。即,從最后一個(gè)關(guān)鍵幀開始重復(fù)播放指定動(dòng)畫段,,直到圖層出點(diǎn),。指定動(dòng)畫段的界定方法是:從最后一個(gè)關(guān)鍵幀往回?cái)?shù),比如 loopOut("cycle", 1) 表示從倒數(shù)第 2 (numKeyframes + 1)個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀之間為要重復(fù)播放的指定動(dòng)畫段,。type:指定循環(huán)方法,,默認(rèn)值為"cycle"。--"cycle":重復(fù)播放指定動(dòng)畫段,,類似于 1234 1234 的循環(huán),。--"pingpong":往返播放指定動(dòng)畫段,類似于 4321234 的來回循環(huán),。 --"contiune":此方法下,,無 numKeyframes 參數(shù)。以最后一個(gè)動(dòng)畫段的速度和方向并以其變化量(最后兩個(gè)關(guān)鍵幀)持續(xù)循環(huán),。即,,類似于 1234 (4+4.1)(4+4.2)(4+4.3) ... 的重復(fù)。--"offset":第一次循環(huán)時(shí)會(huì)疊加從倒數(shù)第 2 個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀的變化(偏移)值,,第二次循環(huán)時(shí)再疊加,,依次類推,循環(huán)動(dòng)畫遵循從倒數(shù)第 2 個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀同樣的速度與方向,,類似于 1234(4+4.1n)(4+4.2n)(4+4.3n)...的遞增循環(huán),。 numKeyframes :Number,可選,,指定要參與循環(huán)的動(dòng)畫段數(shù),,0(默認(rèn))表示從第 1 個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀之間的動(dòng)畫段。1 表示從倒數(shù)第 2 個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀之間的 1 段動(dòng)畫,,2 表示從倒數(shù)第 3 個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀之間的 2 段動(dòng)畫,。返回值:與屬性類型一致,返回基于指定循環(huán)規(guī)則的屬性值,。
// 示例 1:循環(huán)倒數(shù)第2個(gè)關(guān)鍵幀到最后一個(gè)關(guān)鍵幀之間的動(dòng)畫段落 loopOut("cycle", 1);
// 示例 2:往返循環(huán)所有關(guān)鍵幀動(dòng)畫段 loopOut("pingpong");
// 示例 3:按最后一個(gè)動(dòng)畫段的方向和速度持續(xù)循環(huán) loopOut("continue")
// 示例 3:按最后兩個(gè)動(dòng)畫段遞增循環(huán) loopOut("offset",2) loopInDuration(type="cycle", duration=0)用于設(shè)置關(guān)鍵幀動(dòng)畫的入點(diǎn)循環(huán),。即,從圖層的入點(diǎn)開始重復(fù)播放指定動(dòng)畫段,,直到第一個(gè)關(guān)鍵幀,。指定動(dòng)畫段的界定方法是:從第1個(gè)關(guān)鍵幀開始計(jì)算,比如 loopInDuration("cycle",1),,表示從第 1 個(gè)關(guān)鍵幀到其后的 1 秒處的范圍作為要重復(fù)播放的指定動(dòng)畫段,。type :String,選項(xiàng)同 loopIn 方法,。duration :Number,,要循環(huán)的時(shí)間長度,,以秒為單位。默認(rèn)值為 0,,意味著要重復(fù)的指定動(dòng)畫段是,,從第 1 個(gè)關(guān)鍵幀到圖層出點(diǎn)。為 2 時(shí),,表示第 1 個(gè)關(guān)鍵幀到它之后兩秒的范圍,。 返回值:與屬性類型一致,返回基于指定循環(huán)規(guī)則的屬性值,。 為確保入點(diǎn)循環(huán)動(dòng)畫結(jié)束后與第一個(gè)關(guān)鍵幀無縫銜接,,loopInDuration 會(huì)根據(jù)參數(shù)的設(shè)置計(jì)算出入點(diǎn)時(shí)屬性的值。// 示例 1:重復(fù)播放從第一個(gè)關(guān)鍵幀開始的 1 秒范圍內(nèi)的動(dòng)畫段 loopInDuration("cycle", 1);
// 示例 2:將第一個(gè)關(guān)鍵幀開始的 2 秒范圍內(nèi)的動(dòng)畫段落進(jìn)行 “乒乓” 循環(huán) loopInDuration("pingpong", 2); loopOutDuration(type, duration)用于設(shè)置關(guān)鍵幀動(dòng)畫的出點(diǎn)循環(huán),。即,,從最后一個(gè)關(guān)鍵幀開始重復(fù)播放指定動(dòng)畫段,直到圖層出點(diǎn),。指定動(dòng)畫段的界定方法是:從最后一個(gè)關(guān)鍵幀往回計(jì)時(shí),,比如 loopOutDuration("cycle", 2) 表示從最后一個(gè)關(guān)鍵幀開始倒數(shù) 2 秒處到最后一個(gè)關(guān)鍵幀之間作為要重復(fù)播放的指定動(dòng)畫段。type :String,,選項(xiàng)同 loopOut 方法,。duration :Number,要循環(huán)的時(shí)間長度,,以秒為單位,。默認(rèn)值為 0,意味著要重復(fù)的指定動(dòng)畫段是,,從圖層入點(diǎn)到最后一個(gè)關(guān)鍵幀,。為 1 時(shí),表示從最后一個(gè)關(guān)鍵幀倒數(shù) 1 秒處到最后一個(gè)關(guān)鍵幀之間的范圍,。返回值:與屬性類型一致,,返回基于指定循環(huán)規(guī)則的屬性值。
// 示例 1:反復(fù)循環(huán)最后一個(gè)關(guān)鍵幀往前 1 秒?yún)^(qū)間的動(dòng)畫段 loopOutDuration("cycle", 1);
// 示例 2:將最后一個(gè)關(guān)鍵幀往前 2 秒?yún)^(qū)間的動(dòng)畫段按遞增方式進(jìn)行循環(huán) loopOutDuration("offset", 2); 獲取屬性在某個(gè)關(guān)鍵幀(或標(biāo)記)的信息對(duì)象,。index :Number,,指定關(guān)鍵幀的序號(hào)(從 1 開始)。返回值:Object,。對(duì)于標(biāo)記(Marker)屬性,,會(huì)返回 MarkerKey 對(duì)象;對(duì)于數(shù)值屬性,,會(huì)返回 Key 對(duì)象,。
//示例 1:返回位置屬性的第一個(gè)關(guān)鍵幀的時(shí)間 transform.position.key(1).time;
//示例 2:返回位置屬性的第一個(gè)關(guān)鍵幀的值 thisLayer.position.key(1).value
//示例 3:圖層的第2個(gè)標(biāo)記的時(shí)間 thisLayer.marker.key(2).time 僅適用于標(biāo)記屬性,根據(jù)標(biāo)記名來獲取對(duì)應(yīng)的 MarkerKey 對(duì)象,。 markerName :String,,標(biāo)記的名稱,。其實(shí)就是標(biāo)記的注釋內(nèi)容。返回值:返回一個(gè) MarkerKey 對(duì)象,,包含此標(biāo)記的信息(如時(shí)間,、注釋等),。
//示例:獲取名為 “圖層標(biāo)記1” 的時(shí)間 thisLayer.marker.key("圖層標(biāo)記1").time 獲取在指定時(shí)間點(diǎn) t 附近的關(guān)鍵幀(或標(biāo)記)對(duì)象,。即找到最接近 t 時(shí)刻的關(guān)鍵幀或標(biāo)記。t :Number,,指定時(shí)間點(diǎn),,以秒為單位。返回值:對(duì)于標(biāo)記(Marker)屬性,,會(huì)返回 MarkerKey 對(duì)象,;對(duì)于數(shù)值屬性,會(huì)返回 Key 對(duì)象,。// 示例 1:獲得最接近1秒時(shí)的關(guān)鍵幀的值 thisLayer.transform.position.nearestKey(1).value
// 示例 2:持續(xù)獲得最接近的標(biāo)記的注釋 thisLayer.marker.nearestKey(time).comment
// 示例 3:檢測(cè)是否接近某個(gè)關(guān)鍵幀,,并作相應(yīng)處理 var result = value; // 默認(rèn)使用當(dāng)前屬性值 if (thisProperty.numKeys > 0) { var nKey = thisProperty.nearestKey(time); // 獲取最近的關(guān)鍵幀 if (Math.abs(nKey.time - time) < 0.1) { result = wiggle(5, 50); // 只有接近關(guān)鍵幀時(shí)才應(yīng)用 wiggle } } result; // 確保返回值 返回某個(gè)屬性的關(guān)鍵幀總數(shù),或者對(duì)于標(biāo)記屬性則返回標(biāo)記的總數(shù),。返回值:Number,,表示關(guān)鍵幀或標(biāo)記數(shù)量。// 示例 1:返回當(dāng)前屬性的關(guān)鍵幀數(shù)目 x = thisProperty.numKeys;
// 示例 2:循環(huán)讀取所有關(guān)鍵幀的時(shí)間并把它們拼接為字符串 var n = transform.position.numKeys; var times = ""; for (var i = 1; i <= n; i++) { times += "Key " + i + ": " + transform.position.key(i).time + "\n"; } times;
// 示例 3:根據(jù)關(guān)鍵幀是否存在決定是否執(zhí)行后續(xù)動(dòng)畫邏輯 if (thisProperty.numKeys > 0) { // 有關(guān)鍵幀時(shí)的處理 } else { // 沒有關(guān)鍵幀時(shí)的處理 } 獲取當(dāng)前屬性或?qū)傩越M的名稱字符串,。返回值:String,,當(dāng)前屬性或?qū)傩越M的名稱。// 示例 1:輸出當(dāng)前屬性的名稱 thisProperty.name;
// 示例 2:根據(jù)屬性名稱來執(zhí)行不同的表達(dá)式邏輯 if(transform.rotation.name.trim() === "旋轉(zhuǎn)") { // 如果名稱是 "旋轉(zhuǎn)",,執(zhí)行某些操作 } 檢查屬性是否在當(dāng)前上下文中處于激活狀態(tài),。返回值:Boolean。true 表示激活,,false 表示未激活,。// 示例: thisProperty.active 返回值:Boolean,。true 表示啟用,,false 表示禁用。// 示例: thisComp.layer("形狀圖層 1").effect("高斯模糊")("重復(fù)邊緣像素").enabled 獲取相對(duì)于當(dāng)前屬性所在的父級(jí)(或更高層級(jí))屬性組對(duì)象,。適用于在表達(dá)式中進(jìn)行層級(jí)引用時(shí)使用,。countUp :Number,表示向上查找多少級(jí)的屬性組,。默認(rèn)值為 1,,表示向上查找一層。為 2 時(shí)返回其上一級(jí)的屬性組(上二級(jí)對(duì)象),,以此類推,。返回值:返回一個(gè) Group 對(duì)象,,表示屬性所處的父級(jí)屬性組。//示例 1:propertyGroup 的 numProperties 方法返回屬性組中屬性的數(shù)目,。 var pGroup = thisProperty.propertyGroup(1); pGroup.numProperties;
//示例 2:可用于在表達(dá)式中相對(duì)地引用到父級(jí)或更高層級(jí)的屬性,,適合在復(fù)雜圖層層級(jí)里。 var pGroup = thisProperty.propertyGroup(2); pGroup.transform.rotation 返回當(dāng)前屬性在其父屬性組中的索引值(以 1 為開始),。返回值:Number,,表示當(dāng)前屬性在父屬性組中的位置索引。//示例 1:旋轉(zhuǎn)屬性所在上級(jí)對(duì)象依次為:變換組(1),,橢圓 1 (2),,內(nèi)容(3) r = thisComp.layer("形狀圖層 1").content("橢圓 1").transform.rotation r.propertyGroup(2).propertyIndex; //橢圓 1 在“內(nèi)容” 里的序號(hào)
//提示 :在圖層對(duì)象(最高級(jí)別)里面的“內(nèi)容” 序號(hào)總為 2,因?yàn)樗懊孢€有一個(gè)隱藏的 Marker 屬性組,。
//示例 2:輸出當(dāng)前屬性在同一級(jí)屬性列表中的位置 var idx = thisComp.layer("形狀圖層 1").content("橢圓 1").transform.rotation.propertyIndex; var gName =thisComp.layer("形狀圖層 1").content("橢圓 1").transform.rotation.propertyGroup(1).name; "此屬性是 No. " + idx + " 在" + gName + "屬性組中";
|