スクリプトオブジェクト
Script Objects

 スクリプトオブジェクトは、スクリプトの中でユーザが定義し、使用できるオブジェクトです。ここではスクリプトオブジェクトを定義したり、使用するための構文について説明します。

 スクリプトオブジェクトの定義
 継承の定義
 続ける (Continue)


スクリプトオブジェクトの定義
Defining Script Objects

構文

(日本語表現形式)

スクリプト [ scriptVariable ] は
  [ 属性:propertyLabelinitialValue ] ...
  [ handlerDefinition ] ...
  [ statement ] ...
以上

(英語表現形式)

script [ scriptVariable ]
  [ property propertyLabel : initialValue ] ...
  [ handlerDefinition ] ...
  [ statement ] ...
end [ script ]

(日本語表現形式)

スクリプトJohnは
  属性:HowManyTimes=0
  someoneへsayHelloとは
    HowManyTimesをHowManyTimes+1にする
    “こんにちは、”&someoneを返す
  以上
以上

Johnについて
  “かおり”へsayHello
  “ようこ”へsayHello
以上

(英語表現形式)

script John
  property HowManyTimes : 0
  to sayHello to someone
    set HowManyTimes to HowManyTimes + 1
    return "こんにちは、" & someone
  end sayHello
end script

tell John
  sayHello to "かおり"
  sayHello to "ようこ"
end tell


継承の定義
Defining Inheritance

構文

(日本語表現形式)

属性:親=variable

(英語表現形式)

property parent : variable

スクリプトXは
  sayHello()とは
    “こんにちは、”&getName() を返す
  以上
  getName()とは
    “えみ”を返す
  以上
以上

スクリプトYは
  属性:親=X
  getName() とは
    “つよし”を返す
  以上
以上

YについてsayHello()

    or

script X
  on sayHello()
    return "こんにちは、" & getName()
  end sayHello
  on getName()
    return "えみ"
  end getName
end script

script Y
  property parent : X
  on getName()
    return "つよし"
  end getName
end script

tell Y to sayHello()


続ける (Continue)

構文

(日本語表現形式)

parameterList commandName を続ける
  or
parameterList commandName の続き --- 返された値を得る場合

(英語表現形式)

continue commandName parameterList

註)
 continueは、命令を親オブジェクトに継承するための命令です。例えばアプリケーションの終了時に何らかのアクションを行いたい場合「quit」ハンドラを定義しますが、アプリケーション終了のイベントがそのハンドラにインタラプトされてしまうと、本来行うべき終了動作が行われなくなってしまいます。

 これを回避するために、continueを使って親オブジェクトにそのイベントを継承するわけです。

スクリプトNotSoSimpleは
  属性:親=John

  someoneへsayHelloとは
    もしHowManyTimes>10ならば
      “もう挨拶するのには疲れたよ。”を返す
    そうでなければ
      someoneへsayHelloを続ける
    以上
  以上
以上

    or

script NotSoSimple
  property parent : John

  on sayHello to someone
    if HowManyTimes > 10 then
      return "もう挨拶するのには疲れたよ。"
    else
      continue sayHello to someone
    end if
  end sayHello
end script


リファレンスに戻る
AppleScriptのページに戻る
このホームページに関するお問い合わせは、karino@drycarbon.comまで。