最初に少し背景を説明します。Flash Player のバージョン ベースの実装 (FP10 ではベクター、FP9 では配列) を呼び出しコードから抽象化する「コレクション」ライブラリを作成する方法を探しています。私はすでにそれを行う小さなAS3ライブラリを作成しましたが...
- ...パフォーマンスが悪い (特に、2 レベルの間接化と、配列実装のランタイム型チェックのため)
- ...コードは醜いです (Vector 型はコンパイル時に定義する必要があるため、サポートされている型のみを含む Enum に基づいて具体的な Vector インスタンスを返すファクトリが必要でした)
型パラメーターをサポートし、さまざまな Flash Player バージョンにコンパイルできる (さらに最適化されたバイトコードにコンパイルできるように見える) ため、私は現在、可能な解決策として Haxe を検討しています。
さて、私の質問は次のとおりです: AS3 コードでこのように使用できるライブラリを Haxe で作成する方法はありますか?
var foo:IMyInterface = new MyImplementation(int);
var bar:IMyInterface = new MyImplementation(getDefinitionByName("my.package.MyClass"));
必要なメソッド ( 、、 ...)をIMyInterface
公開して?push
pop
基本的な考え方は、実行時に型情報を提供し、型安全な Flash Player のバージョンに依存しない「コレクション」を呼び出しコードで使用するために、あらゆる場所で条件付きコンパイル フラグメントを気にする必要がないということです。
Haxe はそのようなことを行うことができますか? はいの場合、どのように機能させることができますか?