Lav kun 1 loadvars objekt og kun 1 onLoad handler - så sparer du en hel masse:
loader = new LoadVars(); loader.onLoad = function(ok) { if (ok) { _root.tekstFelt.text = this.text; } else { _root.tekstFelt.text = "Der er desværre sket en fejl"; } }; forside.onPress = function () { loader.load("forside.txt"); }; underside1.onPress = function () { loader.load("underside1.txt"); }; underside2.onPress = function () { loader.load("underside2.txt"); };
Du kan stadig putte sidenavnene i et array, men ingen grund til at lave et nyt loadvars objekt hver gang, når de alligevel er ens. Så fylder man bare hukommelsen unødvendigt op.
jeg tror bare jeg bruger _k svar, det plejer jo også at være dig der får mine point barklund :) men hvorfor en udgave ville i bruge?? hvorfor en er mest stabil?
Barklund er som sædvanligt fremme i skoene med den bedste løsning. Som han er inde på, er det langt bedre kun at oprette objektet én gang, og så overskrive når man har brug for det. Min ide med funktionskald er ikke helt ude i hampen, så alt efter hvordan din applikation ser ud, ville jeg selv klart overveje den. Men hvorfor henter du egentlig ikke bare alle dine undersider.txt ind sammen med forsiden? Medmindre vi snakker MEGET tekst, vil det da være smartest kun at hente en halvstor ting én gang, fremfor mange små, mange gange?
Jeg ville umiddelbart holde mig til min egen løsning, men nok bruge en hjælpefunktion til at hente dem via og efterfølgende "cache" siderne, så når de var hentet en gang blev de ikke hentet igen. Man kunne gøre det som:
loader = new LoadVars(); loader.onLoad = function(ok) { if (ok) { tekstFelt.text = indhold[nuværende_side] = this.text; } else { tekstFelt.text = "Der er desværre sket en fejl"; } }; sider = new Object(); sider["forside"] = "forside.txt"; sider["side1"] = "underside1.txt"; sider["side2"] = "underside2.txt"; indhold = new Object(); nuværende_side = null; function hentSide(id) { if (indhold[id] == undefined) { loader.load(sider[id]); } else { tekstFelt.text = indhold[id]; } nuværende_side = id; } forside.onPress = function () { hentSide("forside"); }; underside1.onPress = function () { hentSide("side1"); }; underside2.onPress = function () { hentSide("side2"); };
Denne funktion arbejder med tekst-id'er istedet for numeriske id'er - men det kan man selvfølgelig lave, som man synes.
mange mange tak :) hvordan lægger jeg 30 point mere i puljen så i begger kan få en bid af kagen? nu husker den siderne eller hvad, og jeg skal ikke gøre andet end at sætte dette scipt ind i stedet for det andet?
og hvis jeg nu har 17 sider skal jeg bare sider["forside"] = "forside.txt"; sider["side1"] = "underside1.txt"; sider["side2"] = "underside2.txt"; osv sider["side17"] = "underside17.txt";
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.