Actionscript 2.0: Timer resetten

Status
Niet open voor verdere reacties.

JulienKraakman

Gebruiker
Lid geworden
21 mrt 2009
Berichten
24
Beste mensen,

Ik heb een heel simpel vraagje diei k op het internet maar niet beantwoord kan krijgen.

Als ik een variabele heb, en ik doe var++, met een gotoandplay, dan start de var++ nogmaals, en dan krijg je dus als het ware var+=2, hoe reset je dit zodat je gewoon var++ blijft krijgen?

Groeten, Julien
 
Kan je even duidelijker omschrijven wat je op welk frame doet?
"Ergens" een var hebben en "ergens" ++ doen en "ergens" gotoAndPlay() is nogal vaag ;)
 
Hehe, ik dacht, een doorgewinterde AS 2.0 expert weet hier wel raad mee. Anderen die ik het uitlegden op school snapten het meteen. Inmiddels heb ik hiervoor eigenlijk een andere oplossing gevonden, gewoon niet de timer opnieuw starten maar door laten lopen. Ik vraag me echter nog steeds af hoe je het reset. Dat tellen bedoel ik, als je dus ergens een getal gaat optellen met ++, hoe reset je dat dan? Dat is het enige wat ik wil weten, daarvoor heb je niet meer info nodig. :D
 
Code:
var++;
is EXACT hetzelfde als schrijven
Code:
var += 1;
of
Code:
var = var + 1;

Ik weet niet goed wat je met het 'resetten' van een getal bedoelt, maar ofwel geef je ze de 'startwaarde' door te schrijven
Code:
var = 6; //indien 6 je startwaarde was
Als je gewoon een actie wilt die ++ neutraliseert, kan je voor -- gaan (leve logica ;)). Elk van de volgende statements maken var++ 'ongedaan':
Code:
var = var - 1;
var -= 1;
var--;


Ohja.. en mensen op school weten bvb met welk project je bezig bent, of hoe je normaal praat, of kunnen je scherm zien. Je vraag hier kan ik makkelijk op een 5tal verschillende manieren interpreteren, en meestal zoek jij er maar 1, en ik ben lui, dus vraag ik om verduidelijking ipv alle 5 mogelijke situaties die je mss bedoeld uit te schrijven inclusief alle oplossingen :p
 
Ah, ik heb niet zoveel verstand van Actionscript, maar ik dacht niet dat er zoveel mogelijke opvattingen waren aan een ++ statement :D. Maar dankje voor dit antwoord. Echter, is var-- echt voldoende om ++ ongedaan te maken? Ik wil het getal echter niet op 0 zetten o.i.d. Ik wil gewoon de var++ stopzetten, en opnieuw laten beginnen. Als ik namelijk de applicatie opnieuw begin, doet hij twee keer var++, dat is dus var +=2. En zo telt de timer steeds dubbel zo snel.

In ieder geval bedankt!
 
Ik denk dat je de werking van ++ nog niet helemaal begrijpt.

var++ is gewoon een andere schrijfwijze voor var = var+1. Deze neemt dus de huidige waarde van var en telt er 1 bij. Je teller wordt dus altijd maar met 1 verhoogd.

Er bestaat niet zoiets als var++ 'stopzetten', tenzij je var++ ergens in een lus hebt gezet, maar dan moet je dus die lus stopzetten.

Ter vergelijking had er op die lijn ipv var++ iets gestaan als var = 2+3;, had je waarschijnlijk ook niet gevraagd hoe je var = 2+3; kunt 'stopzetten'.


Het lijkt mij ook dat je normaal bij het begin van een Applicatie je waardes altijd initialiseert (dus ook een eventuele teller). Wanneer je je Applicatie opnieuw start, worden dus ook altijd dezelfde (logische) waardes opnieuw gebruikt.
Ter vergelijking: Als ik Kladblok opstart, start dat met 1 nieuw leeg document op. Als ik Kladblok daarna opnieuw start, zal dat altijd met 1 nieuw leeg document staan. Het is niet omdat ik het voor de 2de keer start, dat er plots 2 nieuwe documenten worden aangemaakt. (Je pc zou het na enkele keren nogal moeilijk beginnen krijgen :p)

Als je een uitleg wil, meer specifiek over jouw situatie, zal je toch verder moeten uitleggen wat je programma juist doet/moet doen, en hoe je het hebt aangepakt.
 
Eigenlijk begreep ik het grootste deel van je uitleg al (wel een mooie uitleg moet ik je complimenteren) :D. Ik was echter wel even vergeten dat ik de var++ functie inderdaad in een loop heb gezet. Die loop blijft gewoon werken als hij terug gaat naar frame 1, en hij voert hem ook nog is uit waardoor hij tweemaal zo snel gaat.

Hoe zorg ik dat de loop zich niet verdubbelt als hij nogmaals op de frame staat?
 
Hangt er een beetje van af hoe je de loop hebt aangemaakt en als er een voorwaarde voor is, dewelke dat dan zou zijn.

setInterval kan je opheffen met clearInterval. Daarvoor moet je het resultaat van setInterval in een variabele steken, en deze variabele als parameter aan clearInterval geven.

Anders zou je een systeem moeten bedenken waardoor je bvb adhv een boolean uit je loop kan breken. Wanneer je dan terug op het eerste frame komt wordt deze boolean zo gezet dat er uit de loop wordt gegaan, en dan wordt die daarna (eventueel met een timeOut van Xms, die nog steeds sneller dan je framerate is) terug geset, zodat de loop opnieuw kan doorgaan.

Maar als je wat meer info over de loop kan geven, kunnen we samen vast wel iets bedenken :thumb:
 
Hier kan ik al een hoop mee, ik denk dat ik dat Clearinterval zocht! Bedankt voor alles :thumb: Ik zet hem op opgelost!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan