因此,我创建了包含所有静态方法的“接口类”,我想将它们公开给hscript
脚本。它看起来像这样:
package com.application.interfaces.Terrain;
import com.application.TerrainCore
class Terrain {
private static var terrain:TerrainCore;
public static function _init(inTerrain:TerrainCore):Void {
terrain = inTerrain;
}
public static function test(s:Int):Void {
terrain.test(s);
}
}
问题是,我需要以terrain
某种方式设置对象,但我不希望它暴露给脚本。我公开整个课程
var interp = new Interp();
var module = Type.resolveClass("com.application.interfaces.Terrain");
interp.variables.set("Terrain", module)
这个想法是覆盖方法call
,hscript.Interp
所以它不执行任何名为的方法_init
,但我不知道该怎么做。原始call
方法如下所示:
function call( o : Dynamic, f : Dynamic, args : Array<Dynamic> ) : Dynamic {
return Reflect.callMethod(o,f,args);
}