2011-07-27 14 views
0

私のような[]演算子を使用して、アクセスのような配列をサポートするhaXeの中にクラス記述しようとしています:Haxeでは、クラスの配列演算子をどのように実装していますか?

var vector = new Vec3(); 
trace(vector.length); // displays 3 
vector[0] = 1; // array like access to the class, how? 
vector[1] = 5.6; // more array access 
vector[2] = Math.PI; // yet more array access 

問題は、私はそれが[]オペレータを可能にするように、クラスを定義する方法がわからないですが。私は書くことができるのC#ではどのストーリーボードを使用してベクトルのパーツへの参照(http://www.youtube.com/watch?v=ijF50rRbRZIを参照)

私のアニメーションシステムをサポートすることで起こっていくつかの策略があるので、私はむしろArray<Float>またはList<Float>を使用するよりも、このクラスが必要:

public float this[index] { get { ... } set { .... } } 

私はHaxeのドキュメントを読んで、ArrayAccess<T>が見つかりましたが、インターフェイスは空です。それはの実装方法がわかりません。ArrayAccess<Float>を実装していれば、FloatのところでFloatを取得するために呼び出されるメソッドはどれですか?

答えて

2

Haxeは演算子のオーバーロードをサポートしていません(まだ)ので、get/setペアを使用する必要があります。メソッド内で発生する魔法をスピードのために最適化する必要がある場合は、インラインで使用できます。

関連する問題