haxe使用autoBuild宏增加类ID

时间:2014-11-24 22:04:50

标签: macros haxe

我试图在我的Component类上使用autoBuild宏,以便扩展Component的每个类都获得一个递增ID(0,1,2,3 ...),问题是它似乎haxe缓存了一些文件,因此当重新编译某些类不会被重建时,所以让我们说一些已经构建的类具有ID 0,1和2.现在我创建一些新类,它们也将获得ID 0,1和2因为已经构建的类没有被处理,所以它们不会增加ID。所以我最终得到了一些在生成的代码中具有相同ID的类。

我与autoBuild宏一起使用的代码是:

#if (macro)
public static function build():Array<Field>
{
    var pos = Context.currentPos();

    var c = macro : {
        override function get_index()
        {
            return $v{componentCounter};
        }

        public static inline var INDEX = $v{componentCounter};
    };

    componentCounter++;

    switch (c)
    {
        case TAnonymous(fields):
            return Context.getBuildFields().concat(fields);
        default:
            throw 'unreachable';
    }
}
#end

public static var componentCounter = 0;

有没有办法制作类似这样的作品?

0 个答案:

没有答案