ADBE Mask Parade
レイヤーのマスクへのアクセス方法
var taget = app.project.item(1).layer(1);
とする
target.property("ADBE Mask Parade")
が、マスクのルートプロパティ。
マスクを追加するにはここに対してaddPropertyする
マスクの数を得るには
target.property("ADBE Mask Parade").numProperties;
1番目のマスクへのアクセス
target.property("ADBE Mask Parade").property(1);
active 有効か。ルートのプロパティは常に有効
addProperty 有効なプロパティの名前を渡して、プロパティを追加する
canAddProperty プロパティ名を渡して、そのプロパティが追加可能かどうかを返す。canAddPropertyでtrueならaddPropertyする
canSetEnabled enebledをセットできるかどうか
duplicate このルートのプロパティは複製出来ない。
elided 省略?
enabled canSetEnabledがfalseの場合、この値にfalseを追加することは出来ない
isEffect エフェクトかどうか
isMask マスクかどうか。Mask Paradeはマスクじゃない。あくまでも集合体。Mask Atomはマスク。
isModified 変更されたか?
matchName 正規名 "ADBE Mask Parade"
moveTo Mask Paradeは動かせないので使えない
name Mask Paradeは日本語環境では"マスク"、英語では"Mask"なので、この名前でもプロパティにアクセスできる target("Mask")
numProperties いくつプロパティがあるか。マスクもプロパティなので、Mask ParadeのnumPropertiesはマスクの数である
parentProperty 親のプロパティ。Mask ParadeのparentPropertyはレイヤーなので[object AVLayer]
property 子プロパティにアクセスするメソッド、引数にはインデックスか、名前か、matchNameを使う。1から始まる
propertyDepth プロパティの深さ。Mask Parade はルートのプロパティなので1
propertyGroup どのグループに属しているか?Mask Paradeの場合は[object AVLayer]を示す
propertyIndex プロパティの通し番号。レイヤーには不変の8個のプロパティのルートがある。Mask Paradeは4番目なので4
propertyType 4614
remove プロパティを削除。ルートのプロパティは削除出来ない
selected 選択しているか。ルートのプロパティは選択出来ない
プロパティには環境による名前、正規の名前などがあり、アクセスする方法が多岐に渡る。
マスク 1の名前を得るには
target.property("ADBE Mask Parade").property("マスク 1").name;
target.property("Mask").property("マスク 1").name;
target.property("マスク").property("マスク 1").name;
target("Mask").property("マスク 1").name;
target("マスク").property("マスク 1").name;
target.property(4).property("マスク 1").name;
target(4).property("マスク 1").name;
target.property("ADBE Mask Parade").property(1).name;
target.property("Mask")(1).name;
target(4)(1).name;
等々、様々に書くことができる。
()が連続してるのは見慣れないかもしれないが、普通のjavasctiptでも
(alert)("hoge");
などと記述できるので、特殊な用法というわけではない。
どれがいいかは書きやすさや、見やすさで判断しよう
ただし以下の形のほうが、互換性は高い
target.property("ADBE Mask Parade").property(1).name;
target(4)やtarget.property(4)はマスクであることがわかりづらいので、matchNameのほうがいいだろう
マスクの実体のmatchNameはADBE Mask Atomなのだが、それだとどのマスクかが得られないのでマスクの実体はindexで。