限制访问Haxe的功能?

时间:2013-01-17 01:14:37

标签: actionscript-3 game-engine haxe

我最近开始玩Haxe,使用AS3已经有一段时间了,在编写一个非常简单的游戏引擎时遇到了问题:

我有一个名为World的班级。 World所做的一件事就是跟踪游戏中的所有Entity个对象。我希望这个Entity对象列表只能从引擎内访问。引擎的用户不应该直接修改列表。

在AS3中,我可以简单地使用internal关键字来访问同一个包中的其他类。当这还不够时,我可以定义一个自定义命名空间并将其用作我的访问修饰符。但是Haxe似乎没有其中任何一个。

TL; DR:如何限制变量对特定包/命名空间的访问?如果不可能,我还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

如果您正在使用Haxe 2.11(每晚构建),则可以使用@:allow

Haxe.org wiki

复制
  

@:allow(my.pack):这将允许访问a的所有私有字段   包中的所有类my.pack(及其   子包)。有关详细信息,请参阅访问控制(自2.11起)

Access Control上更详细的文档。