PDA

Volledige versie bekijken : Vastlopen AS met foutmelding


GvanL
%Europe/Berlin %525 %2006, 13:36
Ik heb een programma gemaakt met flash. Nu krijg ik tijdens het uitvoeren in de swf player de volgende foutmelding:

Flash Player:
A script in this movie is causing flash player to run slowly. If it continious to run, your computer may be unresponsive. Do you want to abort the script?
yes - no

Dit is het script wat hij weigert uit te voeren:
getal1 = Math.round(1+20*Math.random());
getal2 = Math.round(1+10*Math.random());
getal3 = Math.round(1+5*Math.random());
getal4 = getal2+getal3;
while (getal4>getal1) {
getal2 = getal2-1;
}
var1.text = String(getal1);
var2.text = String(getal2);
var3.text = String(getal3);
antwoord = getal1-getal2-getal3;
verderknop.onRelease = function() {
jouwantwoord = ja_tf3.text;
};


Het rare is dat hij het de ene keer wel gewoon goed doet en de andere keer niet, dan geeft hij de foutmelding bij een ander framenummer (volgende vraag met hetzelfde script).

Waarom geeft hij deze foutmelding? Is dit script teveel gevraagd ofsow? :S

Dauntless
%Europe/Berlin %716 %2006, 18:11
Stel:
getal1 : 3
getal2: 5
getal3: 3
getal4: 8;

aangezien getal1 kleiner is dan getal4 wordt de while loop getriggerd. En omdat er daarna niets meer aan de situatie verandert, blijft hij eeuwig de whileloop uitvoeren.

GvanL
%Europe/Berlin %745 %2006, 18:53
Ah wacht nu snap ik het... ik blijf er natuurlijk -1 van getal 2 afhalen, maar op een gegeven moment wordt die natuurlijk 0 en als dan getal 3 al hoger is als getal 1 wordt hij gek om het zo maar te zeggen. Bedankt!

Dauntless
%Europe/Berlin %748 %2006, 18:58
Je blijft van getal2 afnemen, maar getal4 blijft hetzelfde hé.
Voorbeeld:

var getal1 = 5;
var getal2 = 10;
var getal3= getal1+getal2;
getal1 += 3;
trace(getal3);
Als je dit test zie je dat getal3 nog altijd 15 is en niet 18 (zoals jij blijkbaar verwacht). Als je telkens getal3 (getal4 bij jou) terug update dan zal het wel werken.