プロフィール

Author:はるかわ しおん
なにか、新しいものを。
そして、楽しいものを。

FC2カウンター


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Illustrator の ActionIsRunning がおかしい

Illustrator CS3 の VBSスクリプトからアクション (実行時間 5秒くらいのもの) を実行しています。
しかし、どうしても ActionIsRunning が正しく動作しているようには見えません。

リファレンスには

appRef.DoScript "Opacity 60 (selection)", "Default Actions"
WHILE(appRef.ActionIsRunning)
WScript.sleep 1000
WEND

などとしてループして待て的なことが書いてありますが、いやいや、アクション実行中なのに WEND の先に行ってます!!!

すでに徹夜で何時間もはまっており、条件文のミスといった基本的なことではないです。
仕方なく、Excel 2000 を入れて VBE からデバッグしながらやっています。






今回の対策ですが、非常に情けないことに

WScript.sleep 30000 'app.ActionIsRunning は当てにならないので、十分な時間を待っておく
While (app.ActionIsRunning)
WScript.sleep 1000
Wend

ということになりました。何度もループするところなので、ループ回数×30秒の待ち時間です。


他の対策も考えてはみたものの、アクションの実行終了がわかるような何か (レイヤー名を変えるとか) をアクションに組み込み、それを While で監視する――のは馬鹿らしくてやめました。


レイヤーのコピーは layers(0).Copy とかでできるわけもなく、layer の中身を一個ずつ見てやる必要がある。とか。レイヤーの選択は layers(1).Selected = true とかでできることもなく。とか。
不便ばっかり、リファレンスが役に立たないばっかりで、時間まで浪費してしまう。悪口はなんではありますが、ちょっとひどいですよこりゃ。
日本語版のリファレンスなんてぜいたくなことは言わないので、英語版のリファレンスをもっとわかりやすくし、そしてオブジェクトモデルももっと再考してほしいものです。切に願います。


# バグレポート上げればいいのかしらん?



コメント

コメントの投稿

   管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。