HomeMonologue | Part of Script factory. scriptfactory@mac.com . |
Script Debugger 2.0では、ステップ実行時にpropertyとglobal変数だけでなく、なんとlocal変数までモニタすることができます。まあ、Debuggerというぐらいだから、これくらいはやってくれないとDebuggerと名乗って欲しくないのですが、それにしてもversion 1.0と比べると、とても大きな進歩です。
しかし!!それと引き換え、とても大きな代償を背負ってしまっております。
以下のスクリプトを見てください。このスクリプトはScript Debugger 2.0のDebugging modeではうごかんのです。
on run tell application "Finder" set theList to selection end tell revealInFinder(theList) end run on revealInFinder(theList) tell application "Finder" reveal theList end tell end revealInFinder |
上記のスクリプトは何の問題も無いはずです。実際、スクリプト編集プログラムでも、Script Debugger 1.0.5でもちゃんと動きます。
上記のスクリプトが動かない原因は、theListにFinder固有のファイル参照形式をおさめて、それを何の変換もせずに、handler 「revealInFinder」に渡していることです。もっと一般的に言えば、あるアプリケーション固有のobjectへの参照(Object Specifierと言うらしい)をhandlerに渡してしまっているということです。このスクリプトをちゃんと動かすには、revealInFinderに渡す前に、theListの中身をすべてaliasに変換してやる必要があります。
on run tell application "Finder" try set theList to selection as alias list on error number -1700 set theList to {selection as alias} end try end tell revealInFinder(theList) end run on revealInFinder(theList) tell application "Finder" reveal theList end tell end revealInFinder |
この制限はかなり痛い!!上記の例では、aliasに変換できるからいいものの、AppleScriptに内蔵されているobjectに変換できない物の場合は、涙がちょちょぎれます。
この件についてLate Night Softwareに問い合わせてみました。
I'm aware of this problem. At present, I have not found a way to resolve it so you will have to avoid passing object specifiers between tell blocks as you do in the example you give. The workarounds are these: - combine the tell blocks into a single handler - convert the object specifiers into aliases I realize these workarounds are far from perfect. I'm working to identify ways of improving the debugger to remove the limitation. Cheers -Mark --------------------------------------------------------------------- Mark Alldritt Late Night Software Ltd. Phone: 250-380-1725 333 Moss Street FAX: 250-383-3204 Victoria, B.C. WEB: http://www.latenightsw.com/ CANADA V8V-4M9 |
だそうです。「わかっちょる、ちょっとまて」といったところでしょうか?
というわけで、頑張ってにゃんまげ>Late Night Software
|
This page was last built on |