位置にキーフレームを追加する、削除する
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するなどするとよいかも