0

AS3をかなり長い間使用した後、最近Haxeで遊んでみましたが、非常に単純なゲームエンジンを作成しているときに問題が発生しました。

というクラスがありWorldます。行うことの1つは、ゲーム内のすべてのオブジェクトWorldを追跡することです。このオブジェクトのリストには、エンジン内からのみアクセスできるようにしEntityたいと思います。Entityエンジンのユーザーは、リストを直接変更できないようにする必要があります。

AS3では、internalキーワードを使用して、同じパッケージ内の他のクラスにアクセスできるようにすることができました。それでも不十分な場合は、カスタム名前空間を定義して、アクセス修飾子として使用できます。しかし、Haxeはそれらのどちらも持っていないようです。

TL; DR:変数のアクセスを特定のパッケージ/名前空間に制限するにはどうすればよいですか?不可能な場合、他にどのようなオプションがありますか?

4

1 に答える 1

2

Haxe 2.11(ナイトリービルド)を使用している場合は、を使用できます@:allow

Haxe.org wikiからコピー:

@:allow(my.pack):これにより、クラスのすべてのプライベートフィールドに、パッケージmy.pack(およびそのサブパッケージ)内のすべてのクラスにアクセスできるようになります。詳細については、アクセス制御を参照してください。(2.11以降)

アクセス制御に関するより詳細なドキュメント。

于 2013-01-17T02:27:10.900 に答える