Toon posts:

[Actionscript] variabele aanspreken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een messagepoller in Flash, maar ik sla wat Actionscript betreft steeds de plank mis. Ik roep met loadVariables() een bestandje aan waarin msgcount=x in staat, waar bij x het aantal nieuwe berichten is.

Echter als ik dan de variabele probeer aan te spreken, krijg ik steeds undefined terug.
Ik gebruik de volgende code:
code:
1
2
3
4
5
6
function countMessages(){   
    loadVariables("msgcount.txt","_level0");
    trace(_level0.msgcount);
}

countMessages();


Het bestandje msgcount.txt staat in dezelfde directory als de flash en wordt goed ingelezen want, als ik tijdens het testen de variabelen bekijk, zie ik dit:
Level #0:
Variable _level0.$version = "WIN 7,0,14,0"
Variable _level0.countMessages = [function 'countMessages']
Variable _level0.msgcount = "187"

en in msgcount.txt staat:
msgcount=187

Wat doe ik fout?

Verwijderd

misschien is de loadVariables actie nog niet klaar op het moment dat je probeert de variabele aan te spreken. handiger is om een loadVars object te gebruiken, dan kan mbv onLoad checken of hij klaar is met inlezen. als je het met loadVariables wil doen moet je even een loopje erin zetten om te checken of hij klaar is.

Verwijderd

Topicstarter
Dat had ik ook al geprobeerd, maar als ik de volgende code gebruik:
code:
1
2
3
4
5
6
7
8
function countMessages(){
    while(!_level0.msgcount){
        loadVariables("msgcount.txt","_level0");
    }
    trace(_level0.msgcount);
}

countMessages();

loopt Flash finaal vast, terwijl dat mij wel de juiste manier leek is om te checken of _level0.msgcount leeg is, aangezien
code:
1
if(!_level0.msgcount) trace("leeg");

wel leeg als output gaf!

Verwijderd

wat je hier doet is telkens opnieuw loadVariables aanroepen. zet even &ready=true als laatste in je textfile, en maak een loopje op de tijdlijn waarbij je checkt of ready al true is. (op frame x loadVariables, op frame (x+2) check of ready true is, zo nee gotoAndPlay (x+1) )

Verwijderd

Topicstarter
Hartstikke bedankt, dat werkt. Ik zie nu ook in waarom die loop niet werkte :D