Haxe-编译时的类覆盖

Haxe-编译时的类覆盖,haxe,Haxe,我正试图在Haxe中为我的程序构建一个插件架构。 我的看法是克隆插件中的包并覆盖我想要的类 但是我有一个问题:如何告诉haxe编译器使用插件类而不是核心类? 我想知道宏,但我不知道如何使用它们,所以如果有一个更简单的方法,我会很高兴 谢谢。事实上,我发现您可以使用编译器的classpath属性来实现这一点: -cp my/core/app -cp my/plugin 将给出预期的结果,最后一个(插件的类路径)将首先得到 我制作了一个Haxe框架,它有一个内置的PageComponent类,

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

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

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


谢谢。

事实上,我发现您可以使用编译器的classpath属性来实现这一点:

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

将给出预期的结果,最后一个(插件的类路径)将首先得到

我制作了一个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();

也许你会发现这很有帮助。

这很有趣,但它会限制插件对PageComponent的覆盖能力。但也许这比重写包中的类更安全。也许我会做一个混音。