- 360 名前:名前は開発中のものです。 mailto:sage [2010/02/28(日) 03:07:50 ID:/VGQe75O]
- >>352
C++ベースの独自オブジェクトでよければ PropGetByNum と PropSetByNum を実装すればいい。 ただしその場合はクラスではないので new での生成はできないので、生成メソッドを Scripts とか 適当なクラスの static method としてはやして対応することになる てっとりばやくつくりたければ tTJSDispatch を継承して必要な部分だけ書けば良い。 TJS のオブジェクトの機能も欲しいなら、TJSCreateCustomObject() で基底オブジェクトの インスタンスが作れるので、それを保持して他のメソッドではそれに対してブリッジするようにすれば良い どうしても NativeClass として作った上で new したい場合は、 「数値として解釈できたら数値添え字とみなす」というルールでよければ※1、 生成したインスタンスに対して instance->ClassInstanceInfo(TJS_CII_SET_MISSING, 0, メソッド名) を呼び出すことで、「指定メンバが存在しないときに呼び出されるメンバ」をエントリできるので、 そこで処理してしまえばいい。 数値名になってるメンバは明示的に辞書書式でつくらない限りは存在してないから、確実に呼び出しがくる。 元のインスタンスに PropSet してしまうと次から呼び出しがこなくなってしまうので、情報は別の形で 記録するようにする必要があるのには注意 ※1 残念ながら吉里吉里での NativeClass のベースになってる CustomObject では PropGetByNum / PropSetByNum は文字列変換されてPropGet/PropSet の呼び出しに さしかわっていて、missing 処理的に区別されてないのでmyObj["0"] と myObj[0] の区別はできない
|

|