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で。