位置にキーフレームを追加する、削除する

addKeyメソッドを使う

addKeyメソッドの引数に時間を渡す

app.project.item(1).layer(1).position.addKey(1);

返り値はindex

削除はremoveKeyメソッドを使う

removeKeyメソッドの引数は時間ではなく、キーフレームのインデックス番号

返り値はない

一気全部のキーフレームを削除しようとして以下のように書くと失敗する

var target = app.project.item(1).layer(1);

for(var i=1;i<=target.position.numKeys;i++){

target.position.removeKey(i);

}

キーフレームが4つあると仮定すると

一度目のforでは1つ目のキーフレームを削除するのだが、

ここでそれ以外のキーフレームのnumKeysもIndexも変わる。

最初index2だったキーフレームはindex1のキーフレームが削除されてindexが1になる

2度目のforではnumKeysが3になっている、iは++されて2である

indexが繰り下がっているので当初2番目のキーフレームのindexは1、3番目のindexは2になっている

この地点でiは2なので削除されるのは当初3番目だったキーフレームである。

当初3番目だったキーフレームが削除されてまたnumKeysとindexが変わる

numKeysが2でありiは++されて3になったのでforを抜けて終了

キーフレームは当初4つあったのにforループは2回しか行われていないことに。

すなわち奇数番目のキーフレームだけが削除されたことになる

これを回避する手段の一つとして

numKeysを一度変数に入れ、

削除するキーフレームのindexを常に1とするとよい

var target = app.project.item(1).layer(1);

var num = target.position.numKeys;

for(var i=1;i<=num;i++){

target.position.removeKey(1);

}

この場合、終端のキーフレームの値になってしまうので、改めてリセットするか

前もって任意のプロパティを保存しておき、改めてsetValueするなどするとよいかも