SSブログ

[AP]ハンドラ [AppleScript辞書はつくれるか?]

● ハンドラ・・・実行系、補助系、ユーザー任意と様々な形がありますが、それぞれ命令の分担分けのする書き方の事です。

(スクリプトエディタ)

 run
  --ダブルクリックなどで起動した場合に最初に実行されます。
   --(runとend runはセットで省略可です)
 end run


 idle
  --ダブルクリックでは即に実行されない部分ですが、returnの後の整数値
   --(×秒)の間に何のアクションもなければ実行される部分です。
  return x
 end idle


 on open Drop_items
  --ドロップされたアイテムがあると実行される部分です。
 end open


(Xcode)

 on clicked theObject
  --いずれかのオブジェクトにクリックをしたときに実行されます
 end clicked


 on awake from nib theObject
  --アプリケーションが実行された最初に実行されます。
 end awake from nib

(ユーザー任意)
 ユーザーが任意で作る事のできるハンドラで、ハンドラ名はユーザーで決定できる。
 ただし付けられる名前は、変数の名前をつける時とと同じ制限があります。

 on |ハンドラ名|(|変数|)
  --(任意の作業スクリプトを記入)
  return |返す値|
 end |ハンドラ名|

 ユーザーハンドラを呼び出すときは、
 |ハンドラ名|(|変数|)
 でよい。与える変数がなければ|変数|は省略できる。
 返す値が不要であれば return |返す値|の行は不要。







スクリプトエディタで使う実行型のハンドラは、主に3つです。

○ Runハンドラ(実行型)
 run
   (* スクリプトが記述される部分 *)
 end run
「ダブルクリック」や「開く」などで起動した場合に最初に実行されます。
Runハンドラは最も基礎的なハンドラなので ハンドラ定義部分は省略ができます。

 run 
   display dialog "起動しました" 
 end run

省略できるので、
   display dialog "起動しました"
と直接記述してもOK!

※ただし、他のハンドラをまたぐ記述はできません。
Runハンドラ
他のハンドラ
Runハンドラ
というような、1つのスクリプト内に同じハンドラが2つ以上、存在する事ができません。
これはRunハンドラに限った事ではなく、他のハンドラでも同様です。
アプリケーションで保存しても、スクリプトのままでも実行可能。

○ Idleハンドラ(常駐型)

 idle
   (* スクリプトが記述される部分 *)
  return x -- (xは整数。省略可)
 end idle

何もアクションが無い待機状態が、指定時間(省略時は1秒)空くと実行されます。(設定できる最小時間は1秒単位)
スクリプトエディターで保存する際に、「アプリケーション」を選んだ上で「自動的に終了しないを選ばれていないと活動しません。
 ・1秒毎に何かを実行させたい。
 ・何かイベントの発生するのを監視させたい。
など

○ ドロップレット

 on open Drop_items
   (* スクリプトが記述される部分 *)
 end open

アプリケーションとして保存すると、アイコンの形がちょっと変わっています。(アイコンの中に矢印が表示されます)
こちらは、ダブルクリック(または開く)で実行させても何も起きません。
何かの書類を作ったアイコンにドラック&ドロップして はじめて実行されます。
Drop_itemsの変数の中にドロップされたファイルの情報が入ります。

○ ユーザ任意ハンドラ

 on |ハンドラ名|(|変数|)
  --(任意の作業スクリプトを記入)
  return |返す値|
 end |ハンドラ名|

on run
   yobidashi()
end run
on yobidashi()
   display dialog "RUNハンドラからよびだされました"
end yobidashi

on run
   set x to 10
   set y to keisan(x, 5)
   log y
end run
on keisan(a, b)
   set  c to a + b
   return c
end keisan





nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。