Volledige versie bekijken : Problemen met externe viariabelen
Alexander
%Europe/Berlin %364 %2005, 09:45
Ik heb een soort quiz gemaakt waarbij je heel makkelijk in as de vragen kon veranderen, maar nu wilde ik daar in die as een txt bestandje inladen, en daar alles uit laden:
Het txt betand:
vraag=Wie is de hotelmanager?
&AA=Pangea
&AB=Lotus
&AC=Schapie
&AD=Ellis
&AE=-
&AF=-
&antwoord=B
&aantal=10
&so=645ygvg546tfvfyre
De as die het laad enz.
loadVariablesNum("v1.txt", 0);
_root.vraagn = "1/10"
_root.vraag = vraag;
_root.AA = AA;
_root.AB = AB;
_root.AC = AC;
_root.AD = AD;
_root.AE = AE;
_root.AF = AF;
_root.antwoord = antwoord;
_root.aantal = aantal;
stop();
Dat werkt ik krijg in mijn filmpje de vraag en alles te zien, alleen als ik op een antwoord klik dan zegt hij dat het fout is (ook al is het het goede) en laat hij het goede niet meer zien.
Button as(dit is van B button)
on (release) {
if (_root.antwoord == "B") {
_root.BB.gotoAndStop(2);
_root.tussenvraag.play();
_root.ga.gotoAndPlay("juist");
punten = Number(punten) + 10;
goed = Number(goed) + 1;
}
}
Dit is alleen het stukje om te controleren of de vraag goed is, maar hier zit het probleem, en om het goede antwoord te laten zien als je het fout hebt lijkt hier op. (alleen dan zonder alles wat hij moet doen als het goed is)
Dauntless
%Europe/Berlin %377 %2005, 10:03
Kijk hier (http://flashfocus.nl/forum/showthread.php?t=2994)
Alexander
%Europe/Berlin %378 %2005, 10:04
Daar snap ik dus al helemaal niks van
gbolssens
%Europe/Berlin %380 %2005, 10:07
Hi,
loadVariablesNum() is sowieso een slecht idee. Deze functie is nog een erfstukje van Flash 5 en is tegenwoordig vervangen door het Loadvars-object.
Ik zou je aanraden om eerst dat te veranderen, en dan nog eens te testen of alles werkt. Het zou goed kunnen dat daarmee je probleem niet verholpen is, maar Loadvars is definitely the way to go.
greetz,
GB
Dauntless
%Europe/Berlin %389 %2005, 10:20
Daar snap ik dus al helemaal niks van
Nogtans is het exact hetzelfde als jouw probleem... Gebruik dus het LoadVars object! :)
Alexander
%Europe/Berlin %390 %2005, 10:21
Dat lukt ook niet, hij laad alles goed in, ik heb zelfs even een dynamic tekstje met antwoord als variabele wegezet om te kijken of hij het goed laadde, en zelfs nu nog geeft hij niet het goed antwoord aan
flashfreak
%Europe/Berlin %391 %2005, 10:23
het kan zijn dat hij de code niet begrijpt...
Alexander, heb je de code zelf geschreven, of komt ie van een tut?
Verder moet ik gbolssens en Dauntless gelijk geven. Nooit of te nimmer LoadVariablesNum of LoadVariables gebruiken. Moge God u straffen als ge het toch doet [:o)] [}:)] [}:)]
Dauntless
%Europe/Berlin %393 %2005, 10:26
Dan moet je gaan debuggen. (Het is zowieso het beste om LoadVars te gebruiken hoor!!)
on (release) {
trace("B is pressed");
trace("_root.antwoord == 'B' ? "+(_root.antwoord == "B"));
if (_root.antwoord == "B") {
trace("_root.BB = "+_root.BB);
_root.BB.gotoAndStop(2);
trace("_root.BB._currentframe = "+_root.BB._currentframe);
_root.tussenvraag.play();
_root.ga.gotoAndPlay("juist");
punten = Number(punten) + 10;
goed = Number(goed) + 1;
}
}
Etc...
Alexander
%Europe/Berlin %399 %2005, 10:35
Ik heb de code zelf geschreven, maar normaal gebruik is altijd LoadVariablesNum, is korter namelijk, maar waarom werkt het wel als ik het niet inlaad, dus: _root.antwoord = "B" (ik deed het wel bij alles)
Dauntless
%Europe/Berlin %401 %2005, 10:37
Wat krijg je als je mijn code gebruikt?
Overigens: gebruik zowieso LoadVars! Nu gaat het nog goed, omdat je lokaal test, maar als je het online zet gaan er veel mensen problemen hebben!
Alexander
%Europe/Berlin %414 %2005, 10:56
Werkt niet, dan krijg ik dit als uitput:
B is pressed
_root.antwoord == 'B' ? false
Dauntless
%Europe/Berlin %414 %2005, 10:57
dan krijg ik dit als uitput:
Dat is dus het probleem: _root.antwoord bestaat pbb niet...
Voor de laatste keer: Gebruik LoadVars!
Alexander
%Europe/Berlin %419 %2005, 11:03
Sorry maar het bestaat wel, ik gebruik nu loadvars, en ik heb een dynamic tekst met de variabele antwoord in de root staan waarop ik duidelijk een B zie (dat is het goede antwoord) (die dynamic tekst is ter controle of hij wel bestaat)
gbolssens
%Europe/Berlin %470 %2005, 12:17
even geheel terzijde: wat bedoel je eigenlijk met deze regel code:
_root.vraag = vraag;
.
.
.
_root.antwoord = antwoord;
het is geen goed idee om twee verschillende variabelen in een verschillende scope dezelfde naam te geven. In welke scope zitten trouwens de variabelen "vraag" en "antwoord" aan de rechterkant van het "=" teken?
greetz,
GB
matzo
%Europe/Berlin %478 %2005, 12:29
probleem ook ooit gehad met paswoorden van mijn klas voor de website
vraag=Wie is de hotelmanager?
&AA=Pangea
&AB=Lotus
&AC=Schapie
&AD=Ellis
&AE=-
&AF=-
&antwoord=B
&aantal=10
&so=645ygvg546tfvfyre
moest toen bij mij zijn
vraag=Wie is de hotelmanager?&AA=Pangea&AB=Lotus&AC=Schapie&AD=Ellis&AE=-&AF=-&antwoord=B&aantal=10&so=645ygvg546tfvfyre
dus alles op een rij(maar hier is de lijn niet lang genoeg) anders geeft hij als juiste antwoord
niet B
maar B
<harde return oftewel enter>
<harde return oftewel enter>.
dat was de oplossing bij mij,
maar dat kun je heel simpel nakijken door
trace(<antwoord user>);
trace (correctAntwoord);
trace(<antwoord user>);
trace (correctAntwoord);
dan zou je
B
B
B
B
krijgen. en door het 2 keer te tracen zie je de enters heel duidelijk
en vanaf dan zit flash juist, want B is niet gelijk aan B<enter> <enter> ;)
Alexander
%Europe/Berlin %491 %2005, 12:47
Aha, bedankt, mag je ook zeggen _root.vraag=Wieis...&_root.antwoord=B enz.
Alexander
%Europe/Berlin %585 %2005, 15:03
MAtzo kun je nog wat over dat trace gedoe uitleggen
matzo
%Europe/Berlin %591 %2005, 15:11
Aha, bedankt, mag je ook zeggen _root.vraag=Wieis...&_root.antwoord=B enz.
dat denk ik niet want ' _root.' is een gereserveerd woord.
_rootantwoord zou echter wel mogen want dat is zonder punt.
dacht ik.
of rootantwoord in ieder geval.
en over de trace...
als flash in het debugscreen gewoon schrijft
B
B
merk je de witregels niet.
test maar eens
als je echter zorgt dat flash 2 keer tracet
B
B
B
B
merk je dat hij bij het correcte antwoord, witregels bijvoegd.
en dus is B niet gelijk aan B<enter><enter>.
dat is het duidelijkste dat ik kan
Alexander
%Europe/Berlin %600 %2005, 15:25
Ik snap er dus nog niks van maar met dat allemaal achter elkaar zetten krijg ik nog een foutmelding
Edit, sorry je bedoeld in de txt ik kijk even.
Edit: Ik had het niet goed gelezen en ik dacht dat je in de fla bedoelde, maar nu werkt het heel erg bedankt!!!! [^] :)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.