26. oktober 2001 - 23:40Der er
41 kommentarer og 3 løsninger
unload variabel
Jeg har loadet nogle variable indfra en asp side og flytter det over i et array og skriver til et tekst felt. men når jeg kalder dette anden gang for at opdatere sker der ikke en skid pga. at den if sætning jeg bruger som betingelse for at den skal loade er falsk og det skal den ikke være men jeg kan ikke få lov at nulstille den loadede variabel. jeg har gjort nogenlunde som følger i første frame loadVariablesNum (\"readAll.asp\", 0);\0 i femte frame if (_root.readAllloader == \"true\") { var oplysninger = new Array(); var i = 0; while (i<_root.count) { var Oplysning = new Object(); Oplysning.name = _root[\"navn\"+i]; Oplysning.comment = _root[\"kommentar\"+i]; oplysninger[i] = Oplysning; i++; } x = 0; displaytekst = \"\"; while (x<globalcount) { displaytekst += oplysninger[x].name+\"\\n------------\"; displaytekst += \"\\n\"+oplysninger[x].comment+\"\\n\"; x++; } _root.readAllloader = false; } else { gotoAndPlay (2); }\0
hvilket burde medfører at den loader variablene hvergang frame et kaldes men det gør den ikke.
i femte frame if (_root.readAllloader == \"true\") { var oplysninger = new Array(); var i = 0; while (i<_root.count) { var Oplysning = new Object(); Oplysning.name = _root[\"navn\"+i]; Oplysning.comment = _root[\"kommentar\"+i]; oplysninger[i] = Oplysning; i++; } x = 0; displaytekst = \"\"; while (x<globalcount) { displaytekst += oplysninger[x].name+\"\\n------------\"; displaytekst += \"\\n\"+oplysninger[x].comment+\"\\n\"; x++; } _root.readAllloader = false; } else { gotoAndPlay (2); }\0 hvilket burde medfører at den loader variablene hvergang frame et kaldes men det gør den ikke.
dette burde medfører at _root.readAllloader var false næste gang man kom til if sætningen men det er den ikke for playeren udfører bare if sætningen igen.
Kan det måske være dine export instillinger der er sat til \'loop\' ? Så kunne det være forklaringen på at _root.readAllloader bliver sat til false i femte frame som var hensigten, men bliver nullstillet igen når loadVariablesNum (\"readAll.asp\", 0); bliver eksekveret igen i frame 1 osv??
pixelpaw efter som at det er næsten det samme som java vil det være sådan at når du ligger to strenge sammen med + bliver det også calc1 = var1+var2; -> calc1 = 3 forudsætningen for dette er at var1 og var2 er strenge og ikke tal værdier
lingoman jeg har en stop action i frame 6. så den skulle absolut ikke ret gerne loope noget som helst. Selve scriptet virker fint. Problemet ligger i enten at unloade en loadet variabel eller at ændre værdien. Derstår i actioscript reference guide som følger. \"for example you can\'t load variables and manipulate the values of those varibles in the same script.\" Men det er meget fint men man må sku da kunne komme uden om dette.
nikolajdu her er linket til den asp fil der returnere det til min flash http://www.victor-film.dk/test/readAll.asp Har lige set at det ikke er den sidste variable jeg loader kunne godt ske jeg lige skulle ændre dette. variablen hedder readAllloader
hvorfor skulle du ikke kunne dette netop fordi den afvikles på serveren og retunere. hvis du bare klikker på linket så skulle du da gerne se en fandes masse bras.
Men det er også lige meget det er tekst der er i variablen.
Jeg regnede ikke med at du ville udskrive variablerne på siden. Personligt udskriver jeg ikke variabaler på siden hvis jeg laver det i PHP. Nøjes bare med at sætte variablerne.
Det kan nu ikke passe fordi det virker som det skal det eneste der er et problem er at jeg ikke har styr på hvordan jeg skal få den til at lade være med at udfører koden anden gang før den er loadet påny.
1) vi loader nogle variabler, blandt andet _root.readAllloader = \"true\". 2) Hvis (_root.readAllloader == \"true\") ønsker vi frame 5 actionen udført én gang og derefter sætte et flag så den ikke eksekveres igen. 3) Vi kan ikke bruge _root.readAllloader som flag fordi det netop er en af de loadede variabler 4) Hvordan får vi så begrænset eksekvering af frame 5 actionen til første gang.
lingoman du har misforstået en smule det jeg ønsker er at frame 5\'s action skal udføres på de variable jeg loader ind i frame 1 hvilket den gør fint første gang men anden gang jeg kalder frame 1 skal den loade nye variable (de samme opdateret) og udfører frame 5 på disse variable.
Jeg går dog udfra at jeg må have lavet en fejl da jeg forsøgte med noget i retning af hvad pixelpaw og nikolajdu skriver.
Nu er det jo kun bidder af dit script vi ser, men er det meningen, at du, hvis if sætningen er false vil loade asp filen igen via else sætningen. Den skriver jo: gotoAndPlay (2); Skulle det havde været gotoAndPlay (1); ?
Okay... Det var bare fordi du skrev at din loadVariablesNum (\"readAll.asp\", 0); ligger i frame 1, og jeg var i tvivl, og du får kørt kommandoen ved anden indlæsning af variablerne.
Nu har jeg ikke kigget det hele igennem, men hvis du ønsker at fjerne en variabel fra hukommelsen, så kan du da bare bruge delete. Hvis din tekst f.eks. hedder msg = \"Dette er min tekst...\" , så kan du bare skrive delete(msg), og så er den fjernet fra hukommelsen. Prøv evt. at indsætte følgende kode:
msg = \"Dette er min tekst...\"; trace(msg); delete(msg); trace(msg);
Her vil du så se \"Dette er min tekst...\" skrevet én enkelt gang, fordi variablen msg er blevet slettet fra hukommelsen, når vi ønsker at udskrive dens værdi anden gang. Bemærk dog at variable, der er blevet defineret med var foran, kan ikke slettes vha. delete :)
Jeg kigger forhåbentligt på det i weekenden men jeg tror den er der nu.
Mads
Synes godt om
Ny brugerNybegynder
Din løsning...
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.