これは RuntimeRevolution 1.1.1 のヘルプにある文書を邦訳したものです。この文書の文責はUDIにあり、またUDIはこの文書についての一切の債務を負いません。 間違いがありましたら eudio@chabashira.co.jp までお知らせ下さい。この文書は必要と思われる時に適宜アップデートされます。

Help -> Revolution Documantation -> Development Guide -> Writing Transcript code -> About... the structure of a script


About the structure of a script
スクリプトの構造
==============

参照:
--------------
About commands and functions, How to edit an object's script, end keyword, function control structure, getProp control structure, local command, on control structure, script property, setProp control structure


 スクリプトとは、Transcript コードで書かれた、ひとつのオブジェクトプロパティである。このトピックでは、スクリプトの構成要素、スクリプト全体の構造、スクリプトをコンパイルするプロセスについて、解説する。

 このトピックを充分に理解するためには、オブジェクトの作り方と簡単なスクリプトの書き方について知っている必要がある。もし 'Getting Started' チュートリアルが済んでいるなら、このトピックを理解するための情報は得られている。


Contents:
What is a Script?
Declarations and Comments
Handlers
Compiling a Script


What is a Script?
スクリプトとは何か?
 スクリプトとは、script と呼ばれるプロパティに入れられた、ある規則に従ってまとめられたテキストの集まりである。 Revolution の各オブジェクトは(それが empty であれ)スクリプトを持っている。スクリプトのテキストは、スクリプトエディタを使って編集することが出来る。

 オブジェクトのスクリプトプロパティをコンパイルする時、Revolution はハンドラのリストを作成する。後で Revolution がオブジェクトにメッセージを送る時、そのオブジェクトがそのメッセージに対応するハンドラを持っているか、そのリストがチェックされる。そしてもしハンドラがあれば、それを実行する。この解説を読めば、スクリプトがハンドラの集合体であり、全てはスクリプトプロパティの中にあるということが、次第に理解できるようになるだろう。

 スクリプトには、ハンドラに加えて、コメント( Transcript ではない、実行されない注釈)や、変数と定数の宣言文を含めることが出来る。

 他のプロパティと同様、スクリプトプロパティはハンドラやメッセージボックスから set コマンドを使って設定することが出来る。 Revolution のスクリプトエディタを使う場合は、Apply ボタンをクリックすれば、オブジェクトのスクリプトプロパティを新しいものに変更することが出来る。

A note for Starter Kit users:
スターターキットを使う場合の注意:
 無料のスターターキット版は、コンパイル出来るスクリプトの長さに制限がある。(ライセンスを受けた Revolution のコピーには、そのような制限はない) スターターキットの制限内で効率よく作業するには、Revolution ドキュメンテーションの 'Using the Starter Kit' を参照しなさい。


Declarations and Comments
宣言とコメント

 任意の行(やその一部)に、二重のダッシュ( -- )やハッシュマーク( # )で始まるコメントを置くことが出来る。もしコメントに Transcript の構文が入っていても、Revolution はそれを無視する。これらのキャラクタで始まる行は、「コメントアウトされた」行と呼ばれる。

 この機能を使って、一時的に文やハンドラを取り除くことが出来る。(複数行を一度にコメントアウトするには、スクリプトエディタの Script メニューから 'Comment' を選択する)

 コメントは実行されないので、ハンドラの中でも、ハンドラの外にも、スクリプトのどこにでも置くことが出来る。

 宣言文は変数や定数を作るコマンドである。 global、local、constant コマンドによる宣言文は、ハンドラの中、またはハンドラの外に置くことが出来る。もし宣言文がハンドラの中にある時は、その変数や定数はそのハンドラの中でだけ有効である。もし宣言文がハンドラの外にあった場合は、その変数や定数は、そのスクリプトの全てのハンドラで有効である。

 宣言文は、ハンドラの外に置くことの出来る唯一のコマンドである。


Handlers
ハンドラ

 各ハンドラは完結したコードから出来ており、独立して実行することが可能である。ハンドラには4つのタイプがある: メッセージハンドラ、関数ハンドラ、getProp ハンドラ、そして setProp ハンドラである。

Message handlers:
メッセージハンドラ:
 それぞれのメッセージハンドラは on 制御構造で始まり、そのハンドラが受け取るメッセージの名前がその後に続く。ハンドラは end 制御構造に続くメッセージ名で終わる。メッセージハンドラはこのようになる:

  on mouseUp
    beep
  end mouseUp
 ハンドラを含むスクリプトを持つオブジェクトがメッセージを受け取った時に、そのメッセージハンドラが実行される。このサンプルは mouseUp メッセージに反応するハンドラである。

 任意の組み込みメッセージのハンドラを書くことも出来る。またあなたのカスタムメッセージのハンドラを書いて、send コマンドでそのメッセージをオブジェクトに送ったり、そのメッセージ名をコマンドのように使うことも出来る。

Function handlers:
関数ハンドラ:
 それぞれの関数ハンドラは function 制御構造で始まり、その後にこのハンドラが計算を行う関数の名前が続く。ハンドラは end 制御構造と、その関数名で終わる。関数ハンドラはこのようになる:
  function currentDay
    return item 1 of the long date
  end currentDay
 関数ハンドラは、同じスクリプト内(や、オブジェクト階層内でより下にあるオブジェクトのスクリプト)で、関数がコールされた時に実行される。このサンプルハンドラは今日の曜日を返す。

getProp handlers:
getProp ハンドラ:
 それぞれの getProp ハンドラは getProp 制御構造で始まり、そのハンドラでサポートするカスタムプロパティの名前がそれに続く。このハンドラは end 制御構造と、そのプロパティ名で終わる。 getProp ハンドラはこのようになる:
  getProp myCustomProperty
    return the scroll of me + 20
  end myCustomProperty
 getProp ハンドラは、Transcript 文からカスタムプロパティの値を要求された時に実行される。

 getProp ハンドラを使って、スクリプトのあるオブジェクトや、そのオブジェクトよりも下の階層にあるオブジェクトのカスタムプロパティを、処理することが出来る。

setProp handlers:
setProp ハンドラ:
 それぞれの setProp ハンドラは setProp 制御構造で始まり、そのハンドラで扱うカスタムプロパティ名がそれに続く。ハンドラは end 制御構造と、そのプロパティ名で終わる。 setProp ハンドラはこのようになる:
  setProp myCustomProperty newSetting
    set the hilite of me to true
    pass setProp
  end myCustomProperty
 setProp ハンドラは、そのハンドラと同じ名前のカスタムプロパティが、set コマンドによって変更される時に実行される。

 setProp ハンドラを使って、スクリプトのあるオブジェクトや、そのオブジェクトよりも下の階層にあるオブジェクトのカスタムプロパティを、処理することが出来る。

 メッセージハンドラと関数ハンドラについては、このセクションの 'Commands and Functions' トピックにより詳しい情報がある。 getProp ハンドラと setProp ハンドラについては、このセクションの 'Properties, Custom Properties, and Property Sets' トピックにより詳しい情報がある。

 全てのハンドラはそのタイプに関係なく、必ず4つの種類のうちの1つの制御構造で始まり、end 制御構造で終わる。


Compiling a Script
スクリプトのコンパイル

 スクリプトエディタの Apply をクリックした時や、set コマンドでスクリプトを変更した時に、スクリプトはコンパイルされる。

 コンパイルはスクリプト全体が対象になる。もしコンパイル時にスクリプトエラーが起きた場合は、エラーを修正して再度コンパイルしない限り、そのスクリプトは実行できない。(一方で、実行時にハンドラ内で起きたエラーは、他のハンドラの実行には影響を与えない)

 これは、スクリプト実行中に、スクリプトを変更できないことを意味する。実行されるのはスクリプトプロパティ内のテキストではなく、コンパイルされたものである。


邦訳/文責:UDI
2003.01.08

inserted by FC2 system