PDA

Volledige versie bekijken : Solved by Dauntless: aanroepen functie gaat bij tweede keer fout


tha beaver
%Europe/Berlin %836 %2006, 20:04
Hoi Flashers,

Nu heb ik echt iets super vaags.
Ik heb een script gemaakt om lootjes te trekken.
In principe moet het met oneindig veel deelnemer werken (maar dat doet het niet) maar dat is nog niet zo erg.

Het vreemde is dat in een bepaalde situatie als een functie voor de tweede keer wordt aangeroepen de functie niet doorlopen wordt.

Testcase voer 3 in als aantal deelnemers.

1 Press: create name input fields
2 Press: load participants

Check in het output panel of function "changed" is doorlopen dit is te herkennen aan:

2 formulatotal-1
2 randomvalue
2 currentIvalue
validation 0 goto val 1
validation 1 same same goto val 2
validation 2 goto changed
in function changed
stap 1 done function changed
stap 2 done function changed
stap 3 done function changed
stap 4 done function changed
gewisseld

in het output panel NOTE dit gebeurd niet altijd want afhankelijk van random gekozen waarden doorloop het script deze functie. ALS DIT "NOG" NIET ZO IS: herhaal de laatste twee handelingen: 1 Press: create name input fields
2 Press: load participants

(((((dus zonder het de SWF af te sluiten en de FLA opnieuw te testen))))

Als de function "changed" 1 keer is doorlopen (let op dit gaat gewoon goed) blijf je de twee handelingen weer herhalen totdat:

in het output panel komt.

2 formulatotal-1
2 randomvalue
2 currentIvalue
validation 0 goto val 1
validation 1 same same goto val 2
validation 2 goto changed

Nu de grote vraag waarom wordt deze "changed" function nu niet doorlopen?

Hierbij de fla:lootjes trekken (http://www.lowkey.nl/santa3.fla)

tha beaver
%Europe/Berlin %264 %2006, 06:21
Hmmm, ik weet wel dat het even werk lijkt te kosten om dit uit te zoeken maar zou iemand er toch even naar willen kijken.

Ik heb na 40 keer debugger en 10 keer uitput panel met veel traces echt de hoop opgegeven dat ik dit zelf ga vinden.

Thanks Tha beaver

tha beaver
%Europe/Berlin %772 %2006, 18:31
Is er dan echt niemand die hier even naar zou willen kijken. De fla zit er bij en testen is best leuk.

Er staan veel traces in de output window dus het is gemakkelijk te begrijpen wat het script doet.

Let op de FLA zit in de eerste Post.

Dauntless
%Europe/Berlin %783 %2006, 18:47
Het lukt me zelfs niet om de changed functie op te roepen ... ? :p

Edit: Ok, na vele keren compilen is het wel gelukt ... Nu nog verder testen :).

tha beaver
%Europe/Berlin %785 %2006, 18:51
Hoi Dauntless als je 3 invoert en een paar keer achter elkaar (op button 1 en daarna op twee drukt) kom je er zeker wel een keer in.

De changed function is er voor bij het toewijzen van een lootje aan de laatste deelnemer er voor te zorgen dat als alleen zijn eigen nummer nog maar te trekken is dat het lootje van de 1 na laatste naar de laastste gaat.

Dus dit komt niet altijd voor.

Thanks greetz tha beaver

tha beaver
%Europe/Berlin %788 %2006, 18:55
Nog even een tip: het gaat alleen mis als de tweede keer de changed functie aangeroepen wordt (dus zonder tussendoor opnieuw te compilen). Maar wel in twee verschillende trekkingen

Dauntless
%Europe/Berlin %789 %2006, 18:56
function changed() {
trace("in function changed");
changed = myArray2_array[currentIvalue-1];
function changed .... changed =

Nadat je changed() 1x hebt aangeroepen, bestaat de functie niet meer ;). Je overschrijft 'm met een getal (en in mijn test was dat getal '0')

Ps: Dat had ik zo gevonden:
function validation2() {
if (myArray3_array[randomvalue] == 0) {
trace("validation 2 eerder benoemd goto random");
randomfunc();
} else {
trace("validation 2 goto changed");
trace("--->"+this);
trace("changed = "+changed);
changed();
}
}
Het eigenlijke doel was om na te kijken of er iets aan de scope veranderd was en of de functie nog gevonden kon worden... Maar nu tracete hij '0' dus dat was het dan :p ctrl + f op 'changed' en dan kwam ik dat tegen :)

tha beaver
%Europe/Berlin %790 %2006, 18:59
Ohhhh wat een loser ben ik, ik heb een variable changed en een functie changed.
Thanks Dauntless weet je hoeveel tijd me dit heeft gekost....

Hoe heb jij dit nou zo snel door?

Dauntless
%Europe/Berlin %791 %2006, 18:59
(Zie m'n edit :))