#branchID pool
branch0 = "This is a wall of text. This is another wall of text! This is a third wall of text. This is a fourth wall of text. This is a fifth wall of text. This is a sixth wall of text. #branch1%"
branch1 = "This is a second wall of text."
branch2 = "This is a third wall of text."
loopcounter = 0
#classes section
#pulls text from pools above.
branch = (name, branchid)->
alert('begin loop')
stringID = String(branchid)
document.write("<h1 id=\'#{stringID}\'>#{name}</h1>")
document.getElementById(stringID).onclick = ->
for i in [loopcounter...stringID.length]
if branchid[i]!= "." and branchid[i]!="!" and branchid[i]!="?" and branchid[i]!="#"
document.write(branchid[i])
else if branchid[i]=="#"
j = i+1
for k in [j...stringID.length]
if branchid[k] == "%"
j = k+1
alert("switchblock")
switch fcode
when "branch1" then branch('stuff', branch1)
when "branch2" then branch('stuff2', branch2)
else break
break
else
alert("gathering...")
fcode = ""
fcode += branchid[k]
else
alert('end sentence')
document.write(branchid[i])
loopcounter = i+1
break
#This is where the code is executed.
window.onload = ->
branch("Start", branch0)
Mein Code oben ist der Anfang eines Wählen Sie Ihr eigenes Abenteuer Gamebook.Wie kann ich vermeiden, eine Funktion innerhalb einer Funktion aufzurufen?
Mein Code funktioniert durch Ausführen einer Funktion, die Text aus einer langen Zeichenfolge einen Satz nach dem anderen abzieht und in das HTML-Dokument schreibt.
Das Problem, das ich habe, ist, dass, wenn die Zeichenfolge keinen Text mehr hat, ich die gleiche Funktion erneut aufrufen muss, aber dieses Mal mit anderen Parametern, so dass eine andere Zeichenfolge auf dem Bildschirm angezeigt werden kann. Angesichts meiner derzeitigen Situation musste ich es innerhalb seiner eigenen Funktion nennen, aber ich habe das Gefühl, dass das einige Probleme verursacht. Wenn ich versuche, meinen Code auszuführen, handelt es sich um eine Funktion, die ich wirklich nicht verstehe und die ich in das Dokument schreibe, anstatt die neue Funktion auszuführen. Alle allgemeinen Ratschläge oder spezifische Diagnosen sind willkommen.
Ich bin an dieser Stelle nur ein wenig ratlos und bin mir nicht sicher, wohin ich von hier aus gehen soll. Vielleicht denke ich nicht richtig darüber nach? Und übrigens, ich habe in letzter Zeit eine Menge Hilfe vom Stapelüberlauf bekommen. Ich danke dir sehr. Ihr wart fantastisch.
** Ich warf eine Reihe von Alarmfeldern ein, damit ich versuchen konnte, herauszufinden, was die Schleife machte.
Codepen Posting: http://codepen.io/bryanwillis7/pen/WwMPaw
Es nichts falsch mit rekursiven Funktionen ist. Ich würde vorschlagen, Ihre Daten in Javascript-Objekten zu organisieren, anstatt zu versuchen, Ihren Weg durch String-Codes zu finden. – user2867288