Avatar billede madshenrik Nybegynder
26. oktober 2001 - 23:40 Der 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.

Mads
Avatar billede madshenrik Nybegynder
26. oktober 2001 - 23:40 #1
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.

Mads
Avatar billede madshenrik Nybegynder
26. oktober 2001 - 23:43 #2
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.

Mads
Avatar billede ditlev Juniormester
26. oktober 2001 - 23:47 #3
Hmmmm.. Det er svært at gennemskue sådan et lettere kompliceret script, men jeg får dog øje på følgende:

if (_root.readAllloader == \"true\") {
_root.readAllloader = false;

Du skal vel ikke have \"\" om true?

/Ditlev
Avatar billede pixelpaw Nybegynder
26. oktober 2001 - 23:57 #4
Oplysning.name = _root[\"navn\"+i];
Oplysning.comment = _root[\"kommentar\"+i];

burde nok også være

Oplysning.name = _root[\"navn\" add i];
Oplysning.comment = _root[\"kommentar\" add i];

?
Avatar billede ditlev Juniormester
27. oktober 2001 - 00:02 #5
Hej Pixelpote :o),

+ plejer at virke for mig i Flash5, jeg er helt holdt op med at bruge add.
Men det er måske noget jeg har misforstået?
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 00:05 #6
add er faktisk Flash 4 syntax, men alligevel ofte brugt. Hvorfor ved jeg ikke, men det er muligt der findes en bug er lign.
Avatar billede lingoman Nybegynder
27. oktober 2001 - 00:08 #7
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??
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 00:10 #8
var1 = 1;
var2 = 2;

calc1 = var1+var2; -> calc1 = 3
calc2 = var1 add var2; -> calc2 = 12
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 00:10 #9
derfor
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 00:18 #10
den helt rigtige måde er nok denne
calc3 = String(var1) + String(var2);
istedet for at bruge add, men jeg synes det er en del lettere  :)
Avatar billede ditlev Juniormester
27. oktober 2001 - 00:25 #11
Okay Pixel - det er nok fordi jeg aldrig har haft brug for at lægge to tal sammen på den måde :o)
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 10:47 #12
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

Mads
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 10:52 #13
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.

Mads
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 10:52 #14
Mads - Lige præcis. add på Paw´s måde 2 er netop strenge og bliver derfor sat sammen. Fuldstændigt ligesom + gør det.

Nok om det og tilbage til problemet. Hvor er I nået til?
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 10:53 #15
vi er nået til det med den variable jeg har loadet og som jeg så ønsker at give en ny værdi.

Mads
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 10:55 #16
DA vi ikke kan unloade variablen hvorfor laver du så ikke en slags TEMP.

Altså

temp = min_loadede.variabel;

Nu har du noget du kan pille lige så meget ved du vil.
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 11:01 #17
Har forsøgt da jeg også ville mene det var det mest rationelle men det virker sku ikke rigtigt. Kan der være andet jeg har overset
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 11:04 #18
Hvad er der i den variabel du loader ind? Tekst eller tal?
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 11:09 #19
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

Mads
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 11:12 #20
Men variablen er tekst.

Mads
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 11:13 #21
Nu er jeg mest til PHP, men anyway kan jeg jo ikke se din ASP kode da den jo afvikles på serveren.
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 11:14 #22
Og ej heller teste med den da jeg ikke ligger på samme domæne :-(
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 11:15 #23
Ok jeg kan godt se den jo - Troede det bare ikke :-)
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 11:16 #24
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.

Mads
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 11:19 #25
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.
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 11:24 #26
Det er den måde de sendes til flash fra asp.

mads
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 11:26 #27
Umiddelbart burde det så ikke virke hvis man sætter variablen som du siger og gør det på den måde.

Mads
Avatar billede nikolajdu Nybegynder
27. oktober 2001 - 11:35 #28
Jo det ser umiddelbart fint nok ud. Skal desværre ud af døren er er formodentligt først med igen i morgen.
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 11:41 #29
var oplysninger = new Array();

så vidt jeg husker, hvis du bruger var, eksisterer din variabel kun nettop som koden bliver eksekveret?
eller er det mig der er galt på den?
Avatar billede madshenrik Nybegynder
27. oktober 2001 - 14:49 #30
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.

Mads
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 14:56 #31
du mener nulstille readAllLoader til false?
Avatar billede lingoman Nybegynder
27. oktober 2001 - 15:13 #32
Lad mig se om jeg har forstået problematikken nu.

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.

Har jeg forstået det korrekt ?
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 15:26 #33
if (_root.readAllloader == true && not _root.strRunonce) {
  do stuff;
  _root.strRunonce = true;
}

så burde det kun løbe igennem én gang.
Avatar billede lingoman Nybegynder
27. oktober 2001 - 15:39 #34
paw>Virker \"not\" ?
Bør det ikke være !(_root.strRunonce)
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 15:59 #35
not virker skam fint  :o)
men hvis du heller vil bruge !:

if (_root.readAllloader == true && !(_root.strRunonce)) {
  do stuff;
  _root.strRunonce = true;
}
Avatar billede pixelpaw Nybegynder
27. oktober 2001 - 16:00 #36
jeg har bare stadig lidt Flash 4 scripting i blodet ;o) hehe
Avatar billede madshenrik Nybegynder
28. oktober 2001 - 00:18 #37
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.

Mads
Avatar billede ditlev Juniormester
28. oktober 2001 - 00:24 #38
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); ?
Avatar billede madshenrik Nybegynder
28. oktober 2001 - 00:26 #39
nej ditlev fordi det at jeg loader frame 2 gør bare at jeg vil vente på at variablene bliver loadet.

Mads
Avatar billede madshenrik Nybegynder
28. oktober 2001 - 00:27 #40
og derefter udfører min if sætning på de nye loadede variable.

mads
Avatar billede ditlev Juniormester
28. oktober 2001 - 00:30 #41
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.
Avatar billede madshenrik Nybegynder
28. oktober 2001 - 00:35 #42
ja ja fordi jeg kalder jo frame et fra et andet movieclip.

Mads
Avatar billede gotcha Nybegynder
29. oktober 2001 - 10:15 #43
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 :)

Mvh Morten
Avatar billede madshenrik Nybegynder
01. november 2001 - 12:20 #44
Jeg kigger forhåbentligt på det i weekenden men jeg tror den er der nu.

Mads
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester