これは 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 に指示を出すことが出来る。
beep answer "Hello world!" create folder "New Folder"ティップス: メッセージボックスからコマンドを試すことが出来る。 Tools メニューの 'Message Box' を選択するとメッセージボックスが開く。サンプルのどれか1行を入力して Return キーを押せば、Revolution がそれを実行する。
sum(12,22,3)Transcript は三角関数からインターネットアドレスの取得までをカバーする、200 近い組み込み関数を持っている。
put the time into field "Clock"Variables
answer "Hello world!"ここで、同じダイアログボックスを、ハンドラ内の様々な場所で使いたいと考えたとしよう。あなたは 'Hello world!' と言うテキストを変数に入れることが出来る:
put "Hello world!" into whatToSayこのステートメントは 'Hello world!' というテキストを 'whatToSay' という変数に入れるものである。
answer whatToSayは、このようになる:
answer "Hello world!"ダイアログボックスに表示するテキストを変えたければ、これを設定する put コマンドの行を変えるだけで良い。
wait 3 seconds if the mouse is down then beep end ifこのサンプルは、3秒待ってからマウスボタンをチェックして、もしボタンが押されていたらビープ音を鳴らす。もしマウスボタンが押されてなければ、Transcript は if と end if に囲われた部分をスキップする。
repeat until the mouseClick go to next card end repeatティップス: メッセージボックスのマルチラインモードで制御構造を試したり、複数行のセットを実行することが出来る。メッセージボックスは上部の2つめのアイコンをクリックするとマルチラインモードになる。そして上記のサンプルを入れて Enter キーを押せば、Revolution がそれを実行する様子を見ることが出来る。