Tonyu2では,1つのファイルに1つのクラスを定義します.
クラス名
.tonyu という形式になります.class MyClass {... }
など)は不要です.このクラスの親クラスを設定します.ファイルの先頭に次のように宣言します
extends 親クラス名;
null
を設定すると,親クラスがないクラスになります.このクラスに組み込むクラス(モジュールクラス)を設定します.ファイルの先頭,または継承宣言続いて次のように宣言します
includes モジュールクラス名[, モジュールクラス名...];
instanceof
演算子によって検査されるオブジェクトのクラスが,特定のモジュールクラスを組み込んでいるかどうかは判定できません.native宣言は,Tonyu2のプログラムからJavascriptのネイティブオブジェクトにアクセスするために用います.ファイル中で次のように宣言します.
native
native 変数名;
mainメソッドは,mainという名前をもつメソッドです.Actorクラスなどでは,オブジェクトが出現してから停止するまでの動作を記述するのに用いられます.
ファイルのトップレベル(メソッド定義に囲まれていない部分)に書かれた文はmainメソッドの内容として定義されます.
mainメソッドは引数を受け取ることはできません.
名前がmainでないメソッドは非mainメソッドです.
ファイルのトップレベルにおいて次の形式で定義します.
function メソッド名(引数リスト) {
処理内容
}
※function の代わりに \ が使用可能です(拡張構文参照)
プロパティ(getter/setter)は次の書式で定義します
//getter
\プロパティ名 {
処理内容
}
//setter
\プロパティ名=値 {
処理内容
}
例
\myProp {
print("Get myProp="+_myp);
return _myp;
}
\myProp=value {
print("Set myProp to "+value);
_myp=value;
}
myProp=10; // Set myProp to 10
x=myProp; // Get myProp=10
Tonyu.globals.グローバル変数名
で参照できます.Tonyu.classes.クラス変数名
で参照できます.()
を伴わない場合、この変数はこのオブジェクトに束縛されたメソッドになります。この値は関数オブジェクトであり、呼び出し方にかかわらずこのオブジェクトをthis
として呼び出します。this.x
という形式で参照されるものです.Tonyu2でもこの方式でも参照できます.MyClass
extends Actor;
native alert;
// main関数
x=3;
rate=5;
y=mult(x);
alert(y); // 15
// main関数終わり
\mult(a) {
var res=a*rate;
return res;
}
alert
関数を利用するx,rate,y
はフィールドa
は引数,res
はローカル変数,rate
はフィールド.