これはUserland Frontierを用いた、AppleScriptの開発環境です。スクリプト編集プログラムの機能が余りにも貧弱なので、その代わりとして作りました。スクリプト編集プログラムの代わりに使うメリットとしては
という事があげられます。デメリットとしては、
といったところです。"履歴"の様なDebug機能が使えないのはどうしようもありませんが、それ以外は改善の余地があります。しかし現在実現されていない機能は、自分自身がほとんど必要としないため、特に誰かが要求してくれないかぎり作るつもりはありません。だいたい、自分以外が使っている様子はないし・・・・
Frontier5に対応し、もうFrontier4.2.3では動きません。私は、Frontier5.0.2b20を使っています。多分Frontier5.0.1でも動くと思いますが、何か問題がありましたらご一報ください(試していません。ごめんなさい)。
Finder上で をDouble Clickしてください。するとFrontierがsuite.AppleScirptDeveloperというTableをimportするかどうか聞いて来ますので、そこでOKとすれば無事installが終了します。
このScriptそのものはFrontierおよび、UserTalkについて、知らなくても使えると思いますが(多分)、Frontierについては少しばかりの予備知識は必要かと思われます。私が、Frontierについて解説するのはおこがましいとは思いますが(まだまだ初心者です)、Frontierについてまったく知らないAppleScript Userにむけて簡単に書きたいと思います。
Frontierとは、もう一つのAppleScriptとでもいいましょうか、Userland Softwareからreleaseされているscripting環境です。とうとう最新のversionはfreeではなくなってしまいましたがversion5.0.1はfreeで使えます。言語としてはUserTalkと呼ばれる物が用いられます。AppleSciptとの最も大きな違いは、すべてのscriptはobject databaseと呼ばれてる物に格納されている事です(厳密にはそうでない場合もあります)。object databaseとはscriptingのためのもう一つのfile systemとでもいいましょうか、それはfile systemのように階層化され、script自身だけでなく、scriptにかかわるもの全て--文字列から、pict、resourceなどおよそ考え付くもの--を格納することができます。
AppleScriptと比較してFrontierのそのメリット、デメリットは
メリット
デメリット
と言ったところでしょうか。
また、AppleScriptはobject database中においても実行する事が出来ます。そして、UserTalkで書かれたscriptと連携させる事が出来ますが、そこには幾つか決定的な制限があるので、私自身はAppleScriptをObject Database中において置くことには、ほとんど意味が無いと考えています。従って、このsuite(ある目的のためのscriptのset)はあくまでobject databaseの中で開発されたAppleScriptをexportして使うための物です(そうでなければ、こんなものは必要ないです)。
このsuite AppleScript Developerを使うためには、object databaseについて、いくらかの予備知識が必要とされます。先にもobject databaseとはscriptingのためのfile systemのような物といいましたが、file systemにおけるfolderに相当する物はtableと呼ばれます。一番上のtableは“root"と名付けられており、tableの階層はperiodによって示されます。例えば、"root"の中の"user"というtableの中の"AppleScriptDeveloper"というobjectは、"root.user.AppleScriptDeveloper"という風に書きます。ここでrootと言うのは自明ですから、省略する事ができ、一般的には“user.AppleScriptDeveloper"と書かれます。
Frontierを知らない人を前提にして書きますので、既にFrontierのUserのかたには冗長になると思いますが(その様な方は、こんなものは使わないかもしれません)、我慢してください。
無事installがすむと、Froniterの"Main" menuにあるsubmenu "Suite"にAppleScript Developerという項目が出来ます。それを選択してください。すると、user.AppleScriptDeveloper.tablesというtableが開きます。このtableがdefaultでは作業AppleScriptのための作業スペースです。そして、AppleScriptというmenuが新たにあらわれます。この中に必要なcommandが納められています。menu AppleScript から "New AppleScript..."を選んでください。すると、新たに作るscriptの名前を聞いてきます。
取り敢えず"newAppleScript"としましょう。ちなみにここで、入力された名前は、実際にfileとしてobject databaseからexportするときの名前とは無関係です。object database中のobjectに名前をつけるときは、spaceやperiod、等の文字はさけてください。
ここでOKを押すと、user.AppleScriptDeveloper.tablesというtableの中に、newAppleScriptという名前のtableが作られ、そのtableが開かれます。
user.AppleScritptDeveloper.tables.newAppleScriptの中に含まれるobjectが、あなたがこれから作るAppleScriptの構成要素になります。ここに含まれる項目は
scriptの項目だけはしっかりと書いてください(当たり前ですが)。あとは適当でも構いません。
簡単にscript編集windowについて説明します。object "script"の頭にある三角マーク、もしくは"Value"の部分ををDouble Clickするとscript編集windowが開きます。
無事scriptを書き上げたとしましょう。そのscriptをexportします。exportしたいscriptのtableが最前面にある状態、もしくはその上の階層で、exportしたいtableを選択した状態で、Menu AppleScriptから“Export..."を選んでください。すると、Comiled Script fileかApplication Typeのscriptか選択してexportする事が出来ます。
ここで、Application Typeを選んだとき、script中にopen Handler(すなわち"on open"というstatement)が存在すれば、Dropletとして、exportされます。したがって日本語表記の場合は、まともに動きません。
無事exportする事が出来ると、exportしたtableに"targetAlias"という項目ができて、export先のfileのpathが記されています。ここの値は、まさにFinderにおけるエイリアス程度にexport先のfileとlinkされており、export先のfileを動かしても、それを追跡します。そして新たにscriptに変更を加えてexportするときは、このlinkがきれない限り常に同じfileにexportされます。あえて、別のfileにexportしたいときはMenu AppleScriptから"Export as..."を選んでください。
AppleScript Developerの環境に、既存のAppleScriptをimportするには二つの方法があります。まずは、menu AppleScriptから、"import..."を選んでDialogからFileを選択する方法と、Droplet "Import AppleScript"に、これまでスクリプト編集プログラムで作ったscriptをDrag&Dropしてください。user.AppleScriptDeveloper.tablesにimportされます。
Scriptが他のScriptに依存している場合、例えばPropertyとしてload scriptによって他のscriptを取り込んでいたりすると、まず、そちらのscriptを先にExportしてやらなければ為りません。そういったScriptの依存関係を記述して、もしその依存しているscriptに何らかの修正が加えられていたら、その依存関係に従って先ににExportすると言う事が出来ます。
今、作成しているscriptが他のscriptに依存している場合、DependenceというTableを新たに加えてください。そしてその中に、依存しているScriptのTableのAddressもしくは、AppleScript Tableそのものを書き込んでください。
Menu "Suite"からAppleScript Developerを選んで、suite AppleScript Developer起動したときにMenubarにinstallされるMenuAppleScriptの各項目について解説します。
Indent(字下げ)はTab keyによってできます。IndentのlevelをあげるにはShiht-Tabです。 また行の先頭の三角マークをつかんで、Drag&Dropで行の位置を変えることができます。
FrontierのScript Editorはとても便利です。特に長いscriptを書くのに優れています。
例えば、
のように、より上位のlenelにある行の先頭の三角マークをDouble Clickすることにより、折り畳むことができます。こうしてscriptの細かい部分をかくして、より見通しよく編集作業ができ、長いscriptでも効率良く、目的の場所を探せます。
ふつうAppleScriptのcommentは"--"で始まり、そこから行の終りまでと見なされます。当然、同じことが、Frontier内でもできます。そして、Frontier独自のcomment outの方法も使うことができます。あるぎょうで、command-を押してください。すると、その行からその行の下のlevelも含めて一度にcomment outすることができます。この方法で、comment outした行は、exportしたときには空行になります。
|
||
Tetsuro Kurita scriptfactory@mac.com |
This page was last built on |