PropertyBase object
記述
app.project.item(index).layer(index).propertySpec
概要
プロパティへはレイヤーを経由してアクセスしますが、様々な種類の構文のを使用してアクセスが可能です。以下の例では、書式は違いますが、どれも同じEffectsグループへのアクセスを行っています。(propertyGroup() method参照)
var effect1 = app.project.item(1).layer(1).effect("Add Grain")("Viewing Mode");
var effect1again = app.project.item(1).layer(1).effect.addGrain.viewingMode;
var effect1againtoo = app.project.item(1).layer(1)("Effects").addGrain.viewingMode;
var effect1againtoo2 = app.project.item(1).layer(1)("Effects")("Add Grain")("Viewing Mode");
• PropertyBaseはPropertyおよびPropertyGroup objectのベースオブジェクトです。PropertyBaseのアトリビュートとメソッドはPropertyおよびPropertyGroup objectでも使用可能です。
サンプル
参照しているオブジェクトが無効になるような変更が加えられた場合、スクリプトがオブジェクトを参照するとエラーを生成します。例えば、オブジェクトを削除してから、そのオブジェクトを参照しようとすると、"Object is Invalid"(日本語版では"オブジェクトが無効です")というエラーが発生します。
var layer1 = app.project.item(1).layer(1);
layer1.remove();
alert(layer1.name); // invalid reference to deleted object
同様に削除されたオブジェクトのAEプロパティを参照しようとしてもエラーが発生します。
var layer1 = app.project.item(1).layer(1);
var layer1position = layer1.transform.position;
layer1.remove();
alert(layer1position.value); // invalid reference to property in selected object
もう少し混みいったケースでは、プロパティグループからプロパティが削除される場合が挙げられます。このような場合インデックス位置が変化してしまうために、After Effectsはユーザーがアイテムまたはグループ内のアイテムを参照した直後に"Object is Invalid"(日本語版では"オブジェクトが無効です") というエラーを生成します。
var effect1 = app.project.item(1).layer(1).effect(1);
var effect2 = app.project.item(1).layer(1).effect(2);
var effect2param = app.project.item(1).layer(1).effect(2).blendWithOriginal; effect1.remove();
alert(effect2.name); // invalid reference because group index positions have changed