6

最初に少し背景を説明します。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公開して?pushpop

基本的な考え方は、実行時に型情報を提供し、型安全な Flash Player のバージョンに依存しない「コレクション」を呼び出しコードで使用するために、あらゆる場所で条件付きコンパイル フラグメントを気にする必要がないということです。

Haxe はそのようなことを行うことができますか? はいの場合、どのように機能させることができますか?

4

1 に答える 1

3

Haxeには、Haxeのネイティブクラス(例int)をオーバーライドする機会があります。メタデータのマニュアルをご覧ください。メタデータはバージョン2.06で追加されました。

メソッドのアナログとしてgetDefinitionByName()。クラスresolveClass()のメソッドを見てください。Type

于 2011-05-23T12:53:32.467 に答える