...

EB GUIDE Script reference card 言語機能

by user

on
Category: Documents
20

views

Report

Comments

Transcript

EB GUIDE Script reference card 言語機能
言語機能
EB GUIDE Script reference card
機能
名前空間
説明
例
モデル要素を参照する際は、要素名にプレフィックスを付ける必要がありま
す。使用可能なプレフィックス:
dp:x = 100; // set a global property
fire ev:back(); // fire an event
f:trace_string(“hello world”); // call a function
dp:(グローバルプロパティ)、ev:(イベント)、v:(ローカル変数)、f:(関数)
グローバルプロパ
ティへのアクセス
イベントの送信
グローバルプロパティに値を書き込むには、代入式の左辺に配置します。グ
ローバルプロパティから値を読み取るには、式の左辺以外の場所に配置しま
す。リダイレクト参照(=>)は、グローバルプロパティへの代入の特殊形態で
す。
dp:x = 5; // writing to x
dp:x = dp:y + dp:z; // reading y and z
length dp:aList; // read the length of a list property
dp:refX => dp:x; // redirect
構文:
fire ev:<identifier>(<parameter-list>);
イベントは、タイムアウト後に送信できます。
この遅延イベントは、cancel_fire式を使って取り消すことができます。
fire ev:back();
fire ev:mouseClick(10, 20);
構文:
fire_delayed <timeout>, ev:<identifier>(<parameter-list>);
cancel_fire ev:<identifier>;
fire_delayed 3000, ev:back(); // send the event
“back” in 3 seconds.
cancel_fire ev:back; // cancel the event
イベントに応答するには、match_eventを使用します。これは、if-then-else
文の特殊形態です。Ifとelse分岐は、常に同じタイプでなければなりません。
代入式の右辺に使う場合は、else分岐が必須です。
match_event v:event = ev:back in {
f:trace_string(“back event received”);
}
構文:
v:this.x = match_event v:event = ev:back in 10 else
0;
イベントパラメータ
match_eventのin式で、イベントパラメータにアクセスできます。イベント
match_event v:event = ev:mouseClick in {
v:this.x = v:event.x;
v:this.y = v:event.y;
}
プライベートウィジ
スクリプトがウィジェットの一部(ウィジェットアクション、入力への応答)
である場合は、スクリプトからそのウィジェットのプロパティにアクセスで
きます。現在のウィジェットを参照するために、特殊な変数v:thisが用意され
ています。プライベートプロパティを参照するには、ドット記法を使用しま
す。
v:this.text = “hello world”;
v:this.x = 10;
ウィジェットツ
スクリプトがウィジェットの一部である場合は、スクリプトから他のウィジ
ェットのプロパティにアクセスできます。ウィジェットツリーナビゲーショ
ン演算子:
->.親ウィジェットへのアクセスに使用する識別子:^.
v:this->^->caption.text = “Play”;
// goto parent, goto caption, property text
v:this->^.x -= 1; // goto parent, property x
文
字列の書式
設定
+演算子で、文字列を連結できます。他の文字列変換関数については、ドキュ
v:this.text = “current speed: ” +
f:int2string(dp:speed) + “km/h”;
イベントへの応答
match_event v:<identifier> = ev:<identifier>
in <sequence>
else <sequence>
へのアクセス
ェットプロパティへ
のアクセス
リーのナビゲー
ション
Version
Version6.0
6.0
パラメータにアクセスするには、ドット記法を使用します。
メンテーションを参照してください。
11
言語機能
EB GUIDE Script reference card
機能
説明
例
定数
文字列の定数は、引用符で囲まずに記述できます。
色定数は、RGBA形式で指定します。
“hello world” // string constant
Napoleon // string constant
5 // integer constant
color:0,235,0,255 // EB green
算術、論理、代入
加算と文字列連結:+、減算:-、乗算:*、除算:/、剰余:%、より大きい:>、より
小さい:<、以上:>=、以下:<=、等しい:==、等しくない:!=、論理積:&&、論理
和:||、否定:!、代入:=、1加算して代入:+=、1減算して代入:-=
dp:myString = “Hello” + “World”;
dp:count += 1; // increment one
シーケンス
シーケンスは、1つの式または一連の式を波括弧で囲んだものです。シーケン
スの最後の式が、シーケンス全体の値になります。
if( dp:something )
dp:x = 5; // single expression
if( dp:other ) {
dp:x = 5; // sequence enclosed
dp:y = 10; // in curly braces
}
ローカル変数
ローカル変数を指定するには、letバインディングを使用します。初期値が設
定されてない変数は使用できません。
letバインディングはネストできます。
let v:x = 42;
v:text = “hello world”;
in {
v:this.x = v:x;
v:this.text = v:text;
}
演算子
構文:
let v:<identifier> = <expression>;
v:<identifier2> = <expression>;
...
in <sequence>
WHILEループ
whileループは、条件と本文の2つで構成されます。条件が偽になるまで、本
文が繰り返し評価されます。
構文:
while( <expression> ) <sequence>
IF-THEN-ELSE
If-then-elseは、CやJavaの三項条件演算子と似た動作をします。代入式の右
辺に使う場合は、else分岐が必須で、両方の分岐は同じ型でなければなりま
せん。
構文:
if( <expression> ) <sequence> else <sequence>
dp:i = 0;
while( dp:i <= 10 ) {
dp:sum += i;
dp:i += 1;
}
if( dp:buttonClicked ) {
v:this.x = dp:x;
}
else {
v:this.x = 0;
}
v:this.x = if( dp:buttonClicked ) dp:x else 0;
コメント
Cスタイルのブロックコメントと
C++スタイルの行コメントを使用できます。
/* this is a C style block comment */
// this is a C++ style line comment
戻り値
スクリプトの最後の式が戻り値です。
戻り値の型を強制的に無効にするには、unitまたは{}を使用します。
dp:x + 2; // returns datapool entry x plus 2
Version
Version6.0
6.0
22
Fly UP