PDA

Volledige versie bekijken : local global variables


digitalecartoons
%Europe/Berlin %346 %2005, 09:18
In een Actionscript boek dat ik momenteel lees wordt een local variable als volgt omschreven:

Local variables, unlike globals, are only available in the current script. In the next frame, the variable won't exist. You can certainly create a new variable with the same name, but the previous contents from the last frame will not be in it.

Dat begreep ik als volgt: Stel in frame 1 staat het volgende script:

var test=9;
trace (test);

en in keyframe 2 het volgende nieuwe script:

trace (test);
stop();

Volgens bovenstaande beschrijving zou ik dan eerst een 9 en dan een undefined moeten krijgen omdat in frame 2, in het nieuwe script, de variable "test" niet meer bestaat en leeg is.

Ik krijg echter 2x een 9. Nu weet ik wat meer over local variables inmiddels, dat ze alleen in een function of b.v. aparte movieclip gelden etc.

Het de schrijver nog een mailtje erover gestuurd. Volgens hem zou ik inderdaad eerst 9 en dan undefined moeten krijgen, maar zou dat met de huidige Flash versies inmiddels veranderd zijn (hij schreef het boek ergens in de tijd van Flash 5 of 6 en toen werkten local variables volgens hem nog wel zo).

Vroeg mij af of het inderdaad zo was dat in oudere versies van Flash een local variable na het eind van een script in een bepaald frame in het volgende frame gewist werd.

mateo)
%Europe/Berlin %376 %2005, 10:02
ik zou mijn oude flash 3 en 4 boeken er nog eens op na moeten lezen, maar volgens mij is dit nooit zo geweest.

Roenes
%Europe/Berlin %637 %2005, 16:18
Het zou kunnen dat het in flash 5 zo werkte, maar vanaf flash mx weet ik zeker dat je variabelen gewoon over meerdere frames kan meenemen en je trace van 2x 9 is dus ook juist. Ik heb te kort met flash 5 gewerkt om te weten of dat toen ook zo was. Ik denk zelf dat het in flash 5 niet mogelijk was om variabelen mee te nemen, omdat je bijna alle code op mc's en buttons zette. Dan zijn het weer locale vars in de scope van dat object.

Anyway, het is dus geen fout dat het bij jou werkt. :)