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

Help -> Revolution Documantation -> Development Guide -> Objects & messages -> About... object types and object references


About object types and object references
オブジェクトタイプとオブジェクトの参照
==============

参照:
--------------
About messages and the message path, Memory and Limits Reference, How to refer to a control on another card, Object menu > Object Properties, View menu > Application Overview, control keyword, ID property, marked keyword, mouseControl function, mouseStack function, name property, number property, owner property, recent keyword, templateAudioClip keyword, templateButton keyword, templateCard keyword, templateEPS keyword, templateField keyword, templateGraphic keyword, templateGroup keyword, templateImage keyword, templatePlayer keyword, templateScrollbar keyword, templateStack keyword, templateVideoClip keyword



 オブジェクトとは、Revolution アプリケーションを構成する要素である。スクリーンに見える全てのものは、メニューバーのメニューも、スタックウィンドウも、その中のボタンやフィールドも、全てオブジェクトである。

 このトピックでは、Revolution の12のオブジェクトタイプと、ハンドラからオブジェクトを参照する方法と、オブジェクトをグループにまとめる方法について解説する。

 このトピックを充分に理解するためには、コントロールの作り方と、オブジェクト階層についての知識が必要である。 'Getting Started' チュートリアルが済んでいるなら、このトピックを理解するための知識は得られている。


Contents:
Revolution Objects
Stacks
Cards
Buttons
Fields
Scrollbars
Images
Graphics
Players
EPS Objects
Audio Clips
Video Clips
Groups
Referring to Objects


Revolution Objects
Revolution のオブジェクト
 Revolution には12種類のオブジェクトがある:スタック、カード、ボタン、フィールド、スクロールバー、イメージ、グラフィックス、プレイヤー、EPS、オーディオクリップ、ビデオクリップ、そしてグループ。各オブジェクトタイプはそれぞれ独自の外観と動作を持ち、そのオブジェクトで使う独自のプロパティを持っている。 Revolution のオブジェクトは、全てこのどれかである。


Stacks
スタック
 スタックは Revolution のオブジェクトの基本要素である。全てのウィンドウはスタックである。

 Revolution の各スタックファイルは、少なくとも1つのメインスタックを持ち、複数のサブスタックを含むことが出来る。メインスタックとサブスタックは同じ構造と外観を持ち、同じようなオブジェクトを含めることが出来る。

 メインスタックは少なくとも1つのカードと、いくつかのバックグラウンド、オーディオクリップ、ビデオクリップ、サブスタックを持つことが出来る。メインスタックは他のオブジェクトに含むことは出来ず、オブジェクト階層のトップに位置する。

 サブスタックは少なくとも1つのカードと、いくつかのバックグラウンド、オーディオクリップ、ビデオクリップを持つことが出来る。サブスタックはメインスタックに含まれる。

スタックは、stack、window、wd を使って参照する:

  show stack "My Stack"
  go card 3 of wd "Some Stack"
  set the name of window 3 to "Help"
A note about stack names:
スタック名の注意:
 'rev' で始まるスタック名は、Revolution の開発環境が予約している。


Cards
カード
A card is a single panel of a stack. One card of a stack can be displayed in the stack's window at any given time.
 カードはスタックのパネルである。スタックウィンドウにスタックのカードを1つ表示することが出来る。

 カードには、任意の組み合わせの、ボタン、フィールド、イメージ、グラフィックス、EPS オブジェクト、プレイヤー、そしてグループを含めることが出来る。カードはスタックに含まれる。

カードは card または cd を使って参照する:
  go card 3
  set the backgroundColor of this cd to "black"

Buttons
ボタン
 ボタンは、カード上の、クリックできるオブジェクトである。 style と menuMode プロパティをセットして、プッシュボタン、ラジオボタン、チェックボックス、またはメニューとして使うことが出来る。

 ボタンはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。ボタンはグループかカードに含まれる。

ボタンは button または btn を使って参照する:
  select button "Font"
  set the top of btn myButton to zero

Fields
フィールド
 フィールドは、スタイル付きテキストを表示できる、カード上の四角いオブジェクトである。

 フィールドはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。フィールドはグループかカードに含まれる。

フィールドは field または fld を使って参照する:
  select after text of field "Content"
  set the showBorder of fld 3 to false

Scrollbars
スクロールバー
 スクロールバーは、スクロール位置を示すパーツを移動出来るオブジェクトである。スクロールバーはカード上にあり、height と width プロパティを使って、水平に表示するか、垂直かを変更することが出来る。

 スクロールバーはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。スクロールバーはグループかカードに含まれる。


Images
イメージ
 イメージは、ビットマップデータを持つ、カード上のオブジェクトである。

 イメージはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。イメージはグループかカードに含まれる。

イメージは image または img を使って参照する:
  get the rect of image "Splash"
  put myPictureData into img ID 2231
 イメージは、イメージオブジェクト自身の持つデータだけでなく、外部のピクチャーファイルの内容を表示することも出来る。

 イメージは、GIF、JPEG、PNG、BMP、XWD、XBM、XPM、PBM、PGM、PBM フォーマットのデータを表示することが出来る。 Mac OS と OS X システムでは、PICT ファイル( Unix と Windows システムでは表示出来ない)を表示することも出来る。

 イメージにデータを入れるには、Paint パレットを使ってペイントするか、ピクチャーファイルをインポート( import コマンドを使うか、File メニューの 'Import as Control' サブメニューにある 'Image File' を選択)する。

 外部のピクチャーファイルをイメージに表示するには、イメージの fileName プロパティにそのファイルのファイルパスをセットするか、File メニューの 'Import Referenced Control' サブメニューにある 'Image File' を選択する。(訳注:「'New Referenced Control' サブメニュー」の間違いと思います)


Graphics
グラフィックス
 グラフィックスはリサイズ可能なベクター画像で、カード上のオブジェクトである。グラフィックスは style プロパティによって、四角(や正方形)、楕円(や円)、直線、正多角形、多角形、自由曲線、にすることが出来る。

 グラフィックスはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。イメージはグループかカードに含まれる。

グラフィックスは graphic または grc を使って参照する:
  select graphic "Divider Line"
  set the visible of grc thisGrc to false

Players
プレイヤー
 プレイヤーは、外部の QuickTime ファイルを表示する、カード上のオブジェクトである。

 プレイヤーはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。プレイヤーはグループかカードに含まれる。

プレイヤーは player を使って参照する:
  set the rect of player "Bouncing Betty" to myRect
 プレイヤーは自分のデータを持つことは出来ない。プレイヤーが表示するのは外部にあるムービーやサウンドである。プレイヤーで表示するファイルを指定するには、プレイヤーの fileName プロパティにそのファイルのファイルパスをセットするか、File メニューの 'Import Referenced Control' サブメニューにある、'Quicktime-Supported File' を選択する。(訳注:「'New Referenced Control' サブメニュー」の間違いと思います)


EPS Objects
EPS オブジェクト
 EPS オブジェクトは、カプセル化された PostScript データを持つ、カード上にある四角いオブジェクトである。 EPS オブジェクトはディスプレイポストスクリプト( Display PostScript )をサポートする Unix システム上でしかサポートされない。

 EPS オブジェクトはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。 EPS オブジェクトはグループかカードに含まれる。

EPS オブジェクトは EPS を使って参照する:
  delete EPS "Form Layout"

Audio Clips
オーディオクリップ
 オーディオクリップはオーディオデータを持つオブジェクトである。オーディオクリップは視覚情報を持たず、カード上には置かれない。

 オーディオクリップはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。オーディオクリップはスタックに含まれる。

オーディオクリップは audioClip を使って参照する:
  play audioClip "Eeek!"

Video Clips
ビデオクリップ
 ビデオクリップはビデオデータを持つオブジェクトである。ビデオクリップは視覚情報を持たず、カード上には置かれない。

 ビデオクリップはオブジェクト階層の底辺に位置し、他のオブジェクトを含めることは出来ない。ビデオクリップはスタックに含まれる。

ビデオクリップは videoClip を使って参照する:
  play videoClip "Munch Animated Scream"

Groups
グループ
 グループは、他のオブジェクトを含んでいる、複数のカード上に置くことの出来るオブジェクトである。

 グループは、任意のボタン、フィールド、イメージ、グラフィック、スクロールバー、EPS オブジェクト、プレイヤー、グループをの組み合わせを持つことが出来る。グループは、他のグループかカードに含まれる。

グループは group または grp を使って参照する:
  set the vScroll of group "Main" to 50
  select group ID 844
 またグループは、background、bkgnd、bg で参照することも出来る。グループの参照にこれらの用語を使った場合、それはカード上のグループだけを指すのではなく、スタックにあるグループのどれかを指す。

 グループオブジェクトについて更に詳しい情報は、このセクションの 'Groups and Backgrounds' トピックを参照しなさい。


Referring to Objects
オブジェクトの参照
 一般的に、オブジェクトを参照するには、そのオブジェクトの名前、番号、ID プロパティを使う。

Referring to objects by name:
名前でオブジェクトを参照する:
 オブジェクトタイプにオブジェクト名を続けて、そのオブジェクトを参照することが出来る。例えば 'OK' という名前のボタンを参照するには button "OK" というフレーズを使う:
  set the loc of button "OK" to 32,104
 オブジェクトの名前を変更するには、オブジェクトのプロパティパレットの name 欄を使うか、set コマンドを使ってオブジェクトの name プロパティを変更する:
  set the name of field "Old Name" to "New Name"
  select after text of field "New Name"
Referring to objects by number:
番号でオブジェクトを参照する:
 コントロールの番号は、奥から手前に向かう、カード上のレイヤーである。カードの番号はスタック上の位置を表す。スタックの番号は、スタックファイル中での作成順である。(メインスタックの番号は常にゼロ)

 オブジェクトタイプに番号を続けて、そのオブジェクトを参照することが出来る。例えばカード上の後ろから3番目にあるフィールドを参照するには、field 3 というフレーズを使う:
  set the backgroundColor of field 3 to blue
 カードやコントロールの番号を変更するには、オブジェクトのプロパティパレットの Layer 欄を使うか、set コマンドを使ってオブジェクトの layer プロパティを変更する:
  set the layer of field "Backmost" to 1
 ティップス: 新しいオブジェクトは常にトップレイヤーに作られる。作ったばかりのオブジェクトを参照するには、last という語を使うことが出来る:
  create button
  set the name of last button to "My New Button"
Referring to objects by ordinal:
順序でオブジェクトを参照する:
 オブジェクトを参照する時に、first から tenth、または middle や last といった、順序を表す語を使うことが出来る。 any を使ってランダムなオブジェクトを参照することも可能である。例えば現在のスタックの最後のカードを参照するには、last を利用する:
  go to last card
Referring to objects by ID:
ID でオブジェクトを参照する
 Revolution の全てのオブジェクトは ID 番号を持っている。 ID プロパティは変更することが出来ず(スタックの ID を除く)、スタック中でユニークな番号であることが保証されている。つまりひとつのスタック中に、同じ ID を持ったオブジェクトが2つ存在することはない。

 オブジェクトタイプに ID 番号を続けて、そのオブジェクトを参照することが出来る。例えば ID プロパティが 1154 であるカードを参照するには、card 1154 というフレーズを使う(訳注: "card ID 1154" の間違いと思います)
  go to card ID 1154
 オブジェクトの ID プロパティは変更することが出来ない。(スタックを除く)

The special descriptor 'this':
特別な用語 'this':
 このキーワードはカレントスタックや、スタック中のカレントカードを指す:
  set the backgroundColor of this stack to white
  send "mouseUp" to this card
  set the textFont of this card of stack "Menubar" to "Sans"
Control references:
コントロールの参照:
 コントロールとは、カード上に置くことの出来る、フィールド、ボタン、スクロールバー、イメージ、グラフィック、プレイヤー、EPS オブジェクト、グループを指す。(スタック、カード、オーディオクリップ、ビデオクリップはコントロールではない)

 'control' という語に ID や名前や番号を続けて、これらのコントロールオブジェクトを参照することが出来る:
  hide control ID 2566
  send mouseDown to control "My Button"
  set the hilite of control 20 to false
 オブジェクトタイプと番号を使ってコントロールを参照した場合は、そのオブジェクトタイプ中の番号を指す。例えば field 1 というフレーズは、そのカードの一番奥にあるフィールドを指す。しかしこれは一番奥のコントロールであるとは限らない。そのフィールドよりも奥に、他のタイプのコントロールがあるかも知れない。

 一方 'control' と番号を使ってコントロールを参照した場合は、全てのタイプのコントロール中の番号を指す。 control 1 というフレーズは、オブジェクトのタイプに関わらず、そのカードの一番奥にあるコントロールを参照する。

 ティップス: mouseControl 関数を使って、マウスポインタの下にあるオブジェクトの参照を得ることが出来る。

Nested object references:
ネストしたオブジェクトの参照:
 他のオブジェクトに属しているオブジェクトを参照するには、オブジェクト階層と同じ順番で参照する。例えば 'My Card' というカードにある 'My Button' というボタンを参照するには、このようにする:
  show button "My Button" of card "My Card"
 ネストしたオブジェクトの参照で、それぞれの階層の参照に、名前、番号、順番、ID を混在することが出来る。唯一の制限は、参照の順序がオブジェクト階層の順序と同じになるように、オブジェクトからそのオブジェクトのオーナーへ向かっていなければならないことである:
  field ID 34 of card "Holder"
  player 2 of group "Main" of card ID 20 of stack "Demo"
  first card of this stack
  stack "Dialog" of stack "Main" -- "Dialog" is a substack
 もしカード上にあるオブジェクトをカードの指定なしで参照した場合、Revolution はそれをカレントカード上のオブジェクトとして扱う。もしスタックの指定が無かった場合は、Revolution はそれをカレントスタック上のオブジェクトとして扱う。

 グループに入っているオブジェクトを参照する場合、そのグループを含めてネストした参照を使っても良いし、グループの指定を省略しても構わない。例えばカレントカードの 'Stereotypes' グループに 'Guido' ボタンが含まれているとしよう。このボタンを参照するには、以下のどの表現式も使うことが出来る:
  button "Guido"
  button "Guido" of card 5
  button "Guido" of group "Stereotypes"
  button "Guido" of group "Stereotypes" of card 5
 もしカード上に 'Guido' というボタンが他に無ければ、これらの表現式は全て正しい。もし別のグループ(またはグループではなくカード上)に同じ名前のボタンがある場合は、正しいボタンを参照するためにグループを指定する(2番目と3番目の書式)か、ボタンを ID で指定しなければならない。

邦訳/文責:UDI
2003.01.20

inserted by FC2 system