我想更改SkulptSk.inputfun()
以让用户输入 a并按下键提交。我需要将一个函数传递给获取用户输入的 Skulpt,但是,除了.<textarea>
ENTER
prompt()
我能想到的唯一方法是延迟返回使用setTimeout()
,直到事件触发输入键按钮并更改标志。
var enterPressed = false;
$("#output").keyup(function(e){
if((e.keyCode || e.which) == 13) { //Enter keycode
enterPressed = true;
}
});
然后等待我的改变:
Sk.configure({
inputfun: function (prompt) {
function checkFlag() {
if(enterPressed) {
enterPressed = false
return $('#output').val();
} else {
window.setTimeout(checkFlag, 100);
}
}
return checkFlag();
},
inputfunTakesPrompt: true,
output: outf,
read: builtinRead
});
但是,由于某些原因,这不起作用。a) timeout 函数不能返回值,b) Timeout 甚至没有延迟返回函数,它只是什么都不返回。
我也尝试过使用.done()
,但无法正常工作。
我似乎无法在网上找到任何方法来做到这一点,任何帮助将不胜感激!