提问人:Jandrik 提问时间:10/6/2016 更新时间:10/6/2016 访问量:104
使用 Java 的 ScriptEngine 函数读取 JavaScript 文件时,文件中与文件中的其他对象交互的函数不起作用
when reading a javascript file with java's scriptengine functions in the file that interact with other objects in the file don't work
问:
我正在制作一个基本的 2D 游戏引擎,该引擎使用 java 进行所有基本引擎操作,并使用 javascript 进行游戏特定操作。在 javascript 文件中,我有一个由我的 java 逻辑线程调用的 tick 函数;
tick = function(){print(keyBinds[i].getState()}
keyBinds 对象在文件的全局范围内定义
keyBinds = [ new keyEvent('A', false), new keyEvent('ENTER', false)...
我知道 keyBind 对象有效,因为在 javafx 阶段线程中,我使用该对象来设置 keylistener 问题是当我调用 tick 函数时,我得到这个
错误 javax.script.ScriptException:TypeError:无法在第 46 行调用 undefined
在 java 中,我用这个设置了引擎
InputStream b = getClass().getResourceAsStream("/script.js");
Reader a = new InputStreamReader(b);
engine.eval(a);
js = (Invocable)engine;
我用这个调用 tick 函数
return js.invokeFunction("tick");
任何人都知道为什么 JavaScript 函数看不到同一文件中定义的任何对象。
答: 暂无答案
评论