実際にAppleScriptを使ってMacOS 9用アプリケーションを作ってみます。
細かい説明よりも、実際に使えるものを作ってみるのが一番早く理解できるかと思います(私はそうでした)。
必要なもの
・AppleScript:機能拡張フォルダに入っているはず。--AppleScriptを動かすために必須。
・スクリプティング機能追加:システムフォルダにあるはず。--AppleScriptの基本機能にない機能を追加するためのファイル(OSAX)が入っている。
・スクリプト編集プログラム:Apple エクストラにあるはず。--スクリプトの編集、実行を行う専用エディタ。
上記は普通にシステムをインストールしていれば組み込まれているはずです。
では、OS 9上でクリエータの変更を行うアプリケーションを作ってみたいと思います(OS Xではタイプ/クリエータではなく、拡張子によってファイルの種類とアプリケーションを決めています)。
次のような順を追って作っていきましょう。
【1-1】対象を得る
【1-2】情報を得る
【1-3】情報を書き換える
【2-1】アプリケーションにする
【2-2】インターフェイスを付ける
|
〈説明〉
・tell〜end tell:命令を送る対象を指定する -- ここではFinderというアプリケーションに命令を送っている。
アプリケーション名はダブルクォーテーションで囲む
・selection:Finder上で選択されているもの
・item 1:項目の1番目 -- selectionで得られたファイルの1番目だけを指定している。
【1-2】情報を得る
次に、スクリプトを下のように書き換えて下さい。
|
〈説明〉
・creator type:クリエータ -- ファイルタイプの場合は file type 。
他の情報も得られる -- name:名前、modification date:修正日、comment:コメント、等
〈用語〉
1-1で得られた対象を「オブジェクト」(の参照)と呼び、オブジェクトの持つ性質(creator type等)を「属性」と呼ぶ。
【1-3】情報を書き換える
さらにスクリプトを書き換えます。
2行目の **** は書き換えたいクリエータコードを入力して下さい(必ず半角で)。
テキストファイルなら"ttxt"、"iTxt"、"JED4"、"MSIE"、"MOSS"
等、
グラフィックファイルなら"ogle"、"8BIM"、"GKON"
等、
サウンドファイルなら"TVOD"、"hook"、"SCPL" 等、
|
〈説明〉
・set△△to××:△△に××の値を代入する -- ここでは選択ファイルのクリエータに"****"を代入している。
【2-1】アプリケーションにする
一応クリエータを書き換えることができるようになりましたが、このままでは使い難いので、ファイルをドロップして使うことのできるアプリケーションにします。
3行目の **** は書き換えたいクリエータコードを入力して下さい。
|
〈説明〉
・on open 〜:ドロップしたファイルを〜に代入する。
・obj:変数 -- スクリプト中の様々なデータを保存しておく領域。任意の名称を付けられる(objでなくても良い)。
〈用語〉
on 〜 end から成る一連の命令の書かれた部分を「ハンドラ」と言い、on openを含むスクリプトはドロップされたファイルを扱えるようになる。こうして作られた、ドロップ可能なアップルスクリプトアプリケーションは、通称「ドロップレット」と呼ばれる。openハンドラを持たずに作られたアップルスクリプトアプリケーションは「アプレット」と呼ぶ。
なお、1-1では「on run 〜 end run」と言うrunハンドラが省略されている(runハンドラに限って省略可能)。
【2-2】インターフェイスを付ける
このままでは保存時に設定したクリエータにしか書き換えられません。そこで、ファイルをドロップした後でダイアログを表示し、書き換えたいクリエータを入力できるようにします。
|
〈説明〉
・display dialog "〜":"〜"と書かれたダイアログを表示(括弧に入れているのは命令の順序を明確にするため)。
・default answer "〜":ダイアログにテキスト入力欄を付ける -- デフォルトの文字が"〜"になる。
・text returned:入力されたテキスト -- 押されたボタンをbutton returnedで得ることもできる。
・creatorData:変数 -- text returnedで得られたテキストデータ(ここではクリエータコード)を収めている。
補足:「display dialog」が「tell application "Finder"〜end
tell」の外に書かれているのは、display dialog命令が標準機能追加(OSAX)のものであり、Finderへ命令を送らなくても良いからです(tell〜end tellの中に書いてもかまいません)。
おまけ
クリエータを調べるドロップレット
|