以下の様に、reduceKeysコマンドをforループで一括処理するようなスクリプトを作ったのですが、そこ全体にかけたUndoコマンドがうまく動作せず・・・。
Undo on(
for i in 1 to selection.count do(
reduceKeys コマンド
) -- end for loop
) -- end undo
どうもreduceKeysコマンド内に、Undoが内包されている?感じの動作がされて、ループ内でreduceKeysが行われるたびに1つずつUndoリストが増えてしまい、スクリプトを一括でUndoできなかった。
ネットで調べると、reduceKeysコマンドをUndoで囲むように記述されているスクリプトを発見・・・。とりあえず真似してみて、以下のように、記述すると解決された。
Undo on(
for i in 1 to selection.count do(
Undo on(
reduceKeys コマンド
) -- end undo
) -- end for loop
) -- end undo
おそらく、スクリプト側でreduceKyesにUndoを定義することで、forループの外側のUndoにひとまとめにするように処理がされるようになったのだと思われます。。。
reduceKeysコマンドでしか確認していませんが、これ以外にもコマンド自体にUndoが内包されているような場合に、同様に問題を解決できるのでは?と思われます。
0 件のコメント:
コメントを投稿