Haxe - 在编译时覆盖类

时间:2013-11-04 15:47:01

标签: haxe

我正在尝试为我在Haxe的程序构建一个插件架构。 我看到它的方式是在插件中克隆包并覆盖我想要的类。

但我有一个问题:如何告诉haxe编译器使用插件类而不是核心?

我想知道宏,但我不知道如何使用它们,所以如果有一个更简单的方法,我会很高兴的!

感谢。

2 个答案:

答案 0 :(得分:6)

实际上我发现你可以使用编译器的classpath属性来做到这一点:

-cp my/core/app  
-cp my/plugin

将给出预期的结果,最后一个(插件的类路径)首先被采用。

答案 1 :(得分:2)

我创建了一个Haxe框架,它有一个内置的PageComponent类,可以在编译时通过正确命名的类来覆盖它。创建页面实例时,我的逻辑如下:

var class_name:String = "pages.P"+pageId;
var a_class = Type.resolveClass( class_name );
var s = ( a_class != null ) ? Type.createInstance( a_class,[] ) : new PageComponent();

也许你会觉得这很有帮助。