2013-11-04 75 views
2

我试图在Haxe中为我的程序构建一个插件体系结构。 我看到它的方式是克隆插件中的包并覆盖我想要的类。Haxe - 在编译时覆盖类

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

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

谢谢。

回答

6

其实我发现,您可以使用编译器的classpath属性做到这一点:

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

会给预期的结果,最后一个(插件的classpath)首先被考虑。

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(); 

也许你会觉得这是有帮助的。

+0

这很有趣,但它会限制插件对PageComponent的覆盖能力。但是,也许这比在一个包裹中重写一个班级更安全。也许我会做一个混合。 – NorTicUs