私は以下のように文字で文字をプリントアウトする関数を作っています(私の命名体系はあまり面白くないのが分かります。私はJavascript setIntervalが実行されるたびに短くなっています
)。まだvar text = document.getElementById("gametext")
var dialog = "the entire text you want to print out"
var talk = "The whole text gets added here, letter by letter"
var charinc = 0
function talky() {
setInterval(function(){
if(charinc < dialog.length){
talk = dialog.charAt(charinc++);
text.innerHTML += talk;
}
}, 100);
charinc = 0
}
ので、私のコードは、非効率的な/少し奇妙に思えるかもしれないコーディングにかなり新しいだと私は私が印刷したいされているものにダイアログを設定し、私のコード全体に数回この関数を呼び出すと、その関数を呼び出します。そして、最初はうまくいきますが、それを実行するたびに、手紙が素早く素早く印刷されるようです。私は実際に何が起こっているのか、それをどう修正するのかは分かりません。私はGoogleでいくつかの検索を行ってきましたが、有用なものはありませんでした。
あなただけのつもり 'charAt'から、それまでの結果を代入しているのに、なぜあなたは' talk'を初期化していますか? –
'talky()'を呼び出すたびに、 'setInterval()'を呼び出し、100ミリ秒ごとに呼び出される関数を登録します。 'setInterval'からハンドルを保存することは決してありません。決して' clearInterval() 'を使用しないでください。そうすれば、減少したインターバル期間の_appearance_を与える複数のインターバル関数が実行されます。 – canon