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

Help -> Revolution Documantation -> Development Guide -> Developing with Revolution -> About... Revolution for New developers


About Revolution for new developers
初心者のための Revolution
==============

参照:
--------------
Supported Platforms Reference, Getting Started Tutorial


 このトピックは、プログラミング経験の浅い、新規の Revolution 開発者に向けて書かれたものである。 Revolution の概要とプログラミング概念を学習することによって、アプリケーション作成のスタートラインに立つことが出来る。

 これから開発を始めようとする人は、Revolution のチュートリアルを実際にやって、簡単な Revolution アプリケーションを作る経験をしておく必要がある。このトピックを読み終わってから 'Getting Started' チュートリアルを始めてもいいし、このウィンドウを開いたままチュートリアルをやっても良い。


Contents:
Starting Out in Revolution
Stacks and Objects
Introducing Programming With Transcript
What's Next?


Starting Out in Revolution
Revolution で始めよう
 これまでのアプリケーション作成は、強力で難解なプログラミング言語を操る一部の専門家にしか出来ない、非常にホネの折れる作業であった。コンピュータが人に優しくなる一方で、そのプログラミングはむしろ困難になっている。ウィンドウ、メニュー、ボタンなどのモダンインターフェースを作るためには、複雑な命令を駆使なければならない。最も単純なアプリケーションを作るのでさえ、オペレーティングシステム内部の知識が不可欠だった。

 Revolution は全てを変えた。 Revolution は基本的なパーツであるプッシュボタン、ウィンドウ、テキストフィールドなどを提供し、あなたはそれをあなたのアプリケーションに置くことが出来る。これらはテキスト入力やボタンのハイライトなどの基本動作を自動的にこなすので、あなたはアプリケーションの本質部分に集中することが出来る。 Transcript 言語はそれだけで十分な能力を持ち、読み易く、修得しやすい。

 プログラミング経験が無い人でも、ユーザーインターフェイスを作り、簡単なスクリプトを入れて、それを発展させて行くのが容易であることに気付くだろう。もちろん正式な訓練を受けたプログラマならより早く Revolution をマスターすることが出来る。


Stacks and Objects
スタックとオブジェクト
 Revolution アプリケーションの基礎を作っているのは、オブジェクトと呼ばれるものである。 Revolution のオブジェクトには、スタック、カード、コントロール、そしてグループがある。

Object types
オブジェクトタイプ
 Revolution でアプリケーションを作る最初のステップは、スタックを作ることである。 Revolution の各ウィンドウはスタックである。パレット、ダイアログボックス、そして標準のウィンドウも、全てスタックである。

 各スタックはカードと呼ばれるいくつかの情報を持っている。各カードはそれぞれ違う外見を持っていることもあるし、全てのカードが同じ場合もある。カードから他のカードに移動することによって、あなたはスタックウィンドウに表示される内容を変更することが出来る。 Revolution スタックをカードを次々に切り替えるカードプレイヤーと考えることも出来るが、一度に表示できるカードは一枚だけである。

 スタックウィンドウを作ったら、あとはボタンやテキストフィールドや他のコントロールを描いて、あなたのアプリケーションをメイクアップすることが出来る。 Revolution を使ったデザインはドローソフトに似ている:コントロールをクリックして選択し、ドラッグして動かしたり、リサイズしたり、背面や前面に移動することが出来る。

 コントロールのセットが欲しければ、それらをグループとしてまとめることが出来る。例えばスタックにカード移動インターフェースが欲しければ、そのためのコントロールをひとつのグループにまとめ、それを各カードから使えるようにすることが出来る。

Object properties
オブジェクトのプロパティ
 プロパティとは、Revolution のオブジェクトの属性のことである。各タイプのオブジェクトには、そのオブジェクトの外観と動作を決定するプロパティがある。

 オブジェクトのカラー、サイズ、座標などの特徴は、オブジェクトのプロパティによって決定されている。例えばボタンのアイコン、スタックウィンドウの表示状態、テキストフィールドにスクロールバーがあるかなどは、全てそのオブジェクトのプロパティが決定している。

 オブジェクトのプロパティにアクセスするには、オブジェクトを選択して、Object メニューの 'Object Properties' を選択する。プロパティパレットの上部にはこのようなタブが並んでいる:
* 基本プロパティ(全てのオブジェクトに共通)
* オブジェクトのスクリプト
* オブジェクトのカスタムプロパティ
* そのオブジェクトタイプに特有のプロパティ(ボタンなどのオブジェクトにはこのタブが2つある)

Ownership and inheritance
所有権と継承
 これらのオブジェクトはそれぞれ別の種類のオブジェクトのパーツである。ボタンやフィールドのようなコントロールはカードのパーツであり、カードはスタックのパーツである。もしコントロールがグループ化されていたら、それぞれのコントロールはグループのパーツであり、またグループはカードのパーツである。あるオブジェクトが他のオブジェクトのパーツである時、そのオブジェクトは二番目のオブジェクトの所有物である。

 各オブジェクトは上位階層のオブジェクトに所有され、そのオブジェクトもまた上位のオブジェクトに所有され、という具合に、オブジェクト階層の中で整理されている。(例えばボタンのオブジェクト階層はそのボタン自身を含み、ボタンが乗っているカードや、そのカードのあるスタックに含まれている) この階層は2つの意味で重要である:

* カラーやテキストフォントなどいくつかのオブジェクトプロパティは、そのオブジェクトの上の階層から受け継がれる。例えばフィールドのバックグラウンドカラーが設定されていなければ、その所有者であるカードのバックグラウンドカラーが適用される。もしカードのバックグラウンドカラーも設定されていなければ、スタックのバックグラウンドカラーが使われる。

 つまりそれぞれのオブジェクトのバックグラウンドカラーをいちいちセットしなくても、スタックのバックグラウンドカラーを設定するだけで、全てのオブジェクトのバックグラウンドカラーを自動的に設定することが出来る。このようなオブジェクトの繋がりを継承と呼ぶ。各オブジェクトはバックグラウンドカラー(や、他のカラー設定や、フォント関連の設定)を、上位階層のオブジェクトから継承する。

* 同様にして、オブジェクトに書かれたプログラムコードも、下位階層にあるオブジェクトへ継承される。


Introducing Programming With Transcript
Transcript でプログラミングを始める
 いくつかの基礎さえ分かっていれば、Transcript プログラミングは簡単に始めることが出来る。経験を積むに従って、あなたはどんどん複雑なプログラムを書けるようになるだろう。プログラミングを始めるために、ここにプログラミングの基本概念と、それを Transcript で使う方法を提示する。

 ティップス: Transcript Dictionary を調べなさい。各トピックの最初にあるサンプルは、その文が Transcript でどのように使われるかを示している。もし意味の分からない専門用語が出てきたら、それをクリックして、Glossary の説明を読みなさい。

 オブジェクトのスクリプトを見るには、オブジェクトのプロパティパレットを開いて、上部の Script タブをクリックする。スクリプトはハンドラと呼ばれるモジュールに分割されており、それぞれはそのメッセージに対応するようになっている。

Messages
メッセージ
 メッセージとは、オブジェクトで起こったイベントを告知するものである。イベントには、ユーザーアクション(キータイプ、マウスクリックなど)と、プログラムアクション(ファイルのダウンロードが完了した、アプリケーションを終了する、など)がある。 Revolution はイベントを監視し、特定のオブジェクトにメッセージを送って、イベントが発生したことを知らせる。

 例えばボタンをクリックすると、Revolution は mouseDown と呼ばれるメッセージをそのボタンに送る。もしボタンに mouseDown に対応するプログラムコードがあれば、それが実行される。特定のメッセージに対応させたプログラムコードのことを、そのメッセージのハンドラと呼ぶ。

Handlers
ハンドラ
 mouseDown ハンドラでよく見かけるのはこのようなものである:

  on mouseDown
    beep
    go to next card
  end mouseDown
 このメッセージハンドラの最初と最後の行は、ボタンが mouseDown メッセージを受け取った時に実行するコードの範囲を示している。全てのメッセージハンドラは on とメッセージ名で始まり、end とメッセージ名で終わる。これらに挟まれた行は実際に実行されるコードである。各行は Revolution に何かを指示するステートメントである。ボタンをクリックすれば、ビープ音を鳴らし、スタックの次のカードへ移動するよう Revolution に指示を出すことが出来る。

Transcript のコードはまるで英語のように見える。これは大部分のプログラミング言語に比べて、読みやすく、理解しやすい。しかし忘れてはならない。これはプログラミング言語であり、決して英語ではない。相手が人ならば単語の順序を間違えても理解出来るかも知れないが、コンピュータはそれほど柔軟ではない。あなたはプログラムコードにミススペルや他のつまらない間違いが無いか、慎重に調べなければいけない。

 ボタンが mouseDown メッセージ用のハンドラを持っていなかったらどうなるか? そのために継承がある。ボタンが mouseDown メッセージを処理しなかった場合は、Revolution はそのメッセージをボタンの所有者に渡す。もしそのオブジェクトにも mouseDown ハンドラが無ければ、同様にしてオブジェクトの上に階層に渡し続ける。もし mouseDown ハンドラを持つオブジェクトがどこにも無ければ、何も起こらない。

 この種類のハンドラはメッセージハンドラと呼ばれ、メッセージに反応する。ひとつのスクリプトには複数のメッセージハンドラを入れることが出来、各ハンドラはそれぞれ違ったメッセージに反応する。スクリプトには値を計算するための関数ハンドラや、カスタムプロパティを処理する getProp、setProp と言ったハンドラを入れることも出来る。これらのハンドラについては、'Commands and Functions' や 'Properties, Custom Properties, and Property Sets' を参照のこと。

Commands and functions
コマンドと関数
 コマンドは Revolution に何かの作業をさせるものである。プログラムの全ての文はコマンドで始まる。

 上の例では beep と go の2つのコマンドを使っている。 Transcript には 150 以上の組み込みコマンドがあり、その全ての解説が Transcript Dictionary に収められている。いくつかのコマンドの実例を挙げる:
  beep
  answer "Hello world!"
  create folder "New Folder"
 ティップス: メッセージボックスからコマンドを試すことが出来る。 Tools メニューの 'Message Box' を選択するとメッセージボックスが開く。サンプルのどれか1行を入力して Return キーを押せば、Revolution がそれを実行する。

 go 文の行がコマンド名より長いことに気付いたろうか。これは go で移動すべき先の説明を含んでいる。この部分はコマンドのパラメータと呼ばれる。パラメータはコマンドが行うべきことの詳細を指定する。サンプルにある "New Folder" は、新しく作ったフォルダの名前を指定している。

 コマンドは何らかのアクションを起こすものであり、他方、関数は、何らかの結果を得るためのものである。例えば sum 関数は、数値リストの合計を返す。
  sum(12,22,3)
 Transcript は三角関数からインターネットアドレスの取得までをカバーする、200 近い組み込み関数を持っている。

 コマンドと違って、関数は何もしない −値を返すだけである− ので、関数の返す値を使って何かをするために、コマンドを使わなければならない。例えばこのサンプルでは、time 関数と共に put コマンドを使っている:
  put the time into field "Clock"
Variables
変数
 変数とは、値を入れるコンテナである。ハンドラ内で何か −数値、単語、長いテキストや、ファイルの中身など− を変数に入れることが出来、またその値をいつでも変更することが出来る。

 変数は画面に見えないが、ハンドラからその中身を扱うことが出来る。 Transcript のステートメント内で変数を使うと、Revolution は変数名を変数の内容に置き換える。

 例えばこのコマンドは、"Hello world!" をダイアログボックスに表示するものである:
  answer "Hello world!"
 ここで、同じダイアログボックスを、ハンドラ内の様々な場所で使いたいと考えたとしよう。あなたは 'Hello world!' と言うテキストを変数に入れることが出来る:
  put "Hello world!" into whatToSay
 このステートメントは 'Hello world!' というテキストを 'whatToSay' という変数に入れるものである。

 ハンドラ内の answer コマンドで変数を使うと、Revolution は変数名を変数の中身で置き換える。例えば:
  answer whatToSay
は、このようになる:
  answer "Hello world!"
 ダイアログボックスに表示するテキストを変えたければ、これを設定する put コマンドの行を変えるだけで良い。

Control structures
制御構造
 時に、ある種の条件になった時にだけステートメントを実行したい場合がある。例えばマウスボタンが押されている時だけビープ音を鳴らしたいという場合。プログラミング言語には、ステートメントを実行するかどうかをコントロールするものがあり、これを制御構造と言う。

 Transcript には様々な目的のために用意されたいくつかの制御構造がある。 if/then (条件が true の時だけステートメントを実行する)や repeat (複数行のステートメントを実行する)は、最も多く使われる制御構造だろう。

 これは if/then 制御構造を使った例である:
  wait 3 seconds
  if the mouse is down then
    beep
  end if
 このサンプルは、3秒待ってからマウスボタンをチェックして、もしボタンが押されていたらビープ音を鳴らす。もしマウスボタンが押されてなければ、Transcript は if と end if に囲われた部分をスキップする。

 repeat 制御構造は複数行のステートメントを実行する。リピートさせる回数を指定することも出来るし、指定した条件が true になるまでリピートさせ続けることも出来る。このサンプルは、マウスクリックで止めるまで、次のカードへ移動し続ける:
  repeat until the mouseClick
    go to next card
  end repeat
 ティップス: メッセージボックスのマルチラインモードで制御構造を試したり、複数行のセットを実行することが出来る。メッセージボックスは上部の2つめのアイコンをクリックするとマルチラインモードになる。そして上記のサンプルを入れて Enter キーを押せば、Revolution がそれを実行する様子を見ることが出来る。


What's Next?
次は?
Going Further With Revolution
Revolution と共に進む
 次にすべきは、Getting Started のチュートリアルで、簡単なアプリケーションを作る方法と、そのスクリプティングを学ぶことである。

 そしてその次に行うべきは Independent Study チュートリアルである。ここにはサンプルアプリケーションがあり、そのスクリプトを学ぶことが出来る。サンプルアプリケーションのスクリプトには、1行ごとに説明のコメントが付いている。

 Transcript で作業を続けていくために、Transcript Dictionary を参照することを習慣付けなさい。この辞書には全ての Transcript コマンド、関数、オペレータ、プロパティ、そして制御構造が収められており、それぞれの使い方を調べることが出来る。

 ティップス: 強調文字で表された Transcript 用語には説明が用意されている。単語をクリックすればその単語についての Transcript Dictionary を参照することが出来る。


邦訳/文責:UDI
2003.01.01
2003.04.17

inserted by FC2 system