1

多くの場合、haxe では既存の非 haxe コードを使用する必要があるため、external を記述する代わりに、haxe コードでシステムの一部を吸収したり、システムに追加したりすることができます。

たとえば、js ターゲットを使用して、既存の JavaScript コードに機能を追加したいとします。現在の js コード内に機能またはクラスを挿入する必要がある haxe のエントリ ポイントを簡単に制御することはできません。複雑すぎて本当に haxe に適した形式に再編成できない JS コード。したがって、1 つのアプローチは、必要なものでクラスをモックアップし、それを自動的に挿入して変換し、現在のコードベースにマージするようにネコを作成しようとすることです... しかし、これはかなりオープンエンドの問題であり、他のターゲット。

だから私の質問は、既存のターゲット コード内に haxe ターゲット コードを混在させるためにどのようなアプローチを開発したかということです。ハクセクラス。しかし、他のターゲットでこれにどのようにアプローチするかにも興味があります.Haxeフラッシュのアイデアはおそらくありますが、PHPやc ++とは言いません. 標準のメイン ブート構造をセットアップできず、パブリッシュのたびに、ビルド ボタンを押したときに、haxe コードをメインの非 haxe プロジェクト コードに正しくマージしたいと本当に思っているとします。

トリッキーですが、ソリューションにより、より多くのプロジェクトで haxe を使用することがはるかに簡単になるため、非常に重要です。

4

2 に答える 2

1

私はあなたの言うことを少ししか経験していませんが、次のようになります。

  • JS - Haxe で書かれたカスタム Markdown ライブラリ ( mdownのバリアント) を、主に非 haxe JavaScript 環境で使用しました。可能な限り「ブラック ボックス」にしようとしました。Haxe ライブラリは@:expose metadataを使用して静的メソッドを公開していたので、Markdown.convert(str); を呼び出すことができました。私のJavascriptのどこからでも。可能な限り「ブラック ボックス」のままにしておくことが有益であることがわかったため、Hax 以外の Javascript は提供する入力と期待される出力を認識していましたが、それ以外はすべて不透明でした。

  • PHP - Haxe でいくつかの作業を行った 1 つまたは 2 つのプロジェクトを実行したことがあり、それを既存の PHP Web サイトに含める必要がありました。ユーザーが認証されていることを確認するために、既存の Web サイト セッションをピギーバックできることがわかりました。また、既存のサイトがアプリの Haxe 部分の「ベース テンプレート」を提供する方法を設定し、それを Haxe がレンダリングしました。 . かなりハックですが、うまくいき、Haxe セクションと非 Haxe セクションの両方のテンプレートが更新されました。

  • サーバー側の別のアプローチは、ユーザー向けのコードと API に分離することです。おそらく、Haxe が JSON API をセットアップし、PHP がそれと対話します。または、Haxe の Web サイトがあり、Ruby/Python API などとやり取りしているかもしれません。

ご覧のとおり、私は物事をかなり明確に区別しようとしました。Haxe が比較的スタンドアロンの方法で機能し、特定の入力を取得して特定の出力を提供することで他のコードとやり取りできる場合、物事は比較的予測どおりに動作します。私はそれ以上の統合を試みたことはありません。Haxe の動作方法 (独自のクラス システムやデータ構造などを使用する) は、緊密な統合が問題になる可能性があるほど十分に異なっていると思います。

于 2013-01-26T05:09:59.763 に答える