SkulptのSk.inputfun()
を変更して、ユーザーに<textarea>
を入力させ、ENTER
キーを押して送信します。私は、ユーザー入力を取得するSkulptに単一の関数を渡す必要がありますが、prompt()
以外の方法はありません。私の質問は次のようなものですが、答えはありません。 Skulpt Assign Sk.inputfun() to type response into output when input() called 私がこれを行うと考えることができる唯一の方法は、イベントがEnterキーボタンをトリガーしてフラグを変更するまでsetTimeout()
を使用してリターンを遅らせることでした。Skulpt用Javascriptの関数内でイベントが発生するのを待ちます
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
});
しかし、このdosen't作品。 a)タイムアウト関数は値を返すことができず、b)タイムアウトは返す関数を遅らせることもなく、単に何も返さない。
私も.done()
を使用しようとしましたが、動作させることができませんでした。
私はオンラインで見つけることができる方法はないようですが、どんな助けでも大歓迎です!
ありがとうございます!私は元のtextarea valと最終valを比較してユーザーの入力を得ようとしていましたが、あなたのソリューションははるかに良いです。 – DeltaMarine101