Volledige versie bekijken : clearInterval probleem
ottorocket
%Europe/Berlin %799 %2007, 19:11
ik heb nu een interval om een nieuwe mc op het scherm te laten komen, maar als er 16 MC's zijn moet dat interval stoppen, maar dat gaat niet
ik heb dit om de functie "volgende" aan te roepen
var interval:Number = setInterval(volgende, 500);
en dit om het te laten stoppen
if (i>16) {
clearInterval(interval);
}
Dauntless
%Europe/Berlin %814 %2007, 19:32
Dan zit de scope waarschijnlijk niet goed. Post even heel je code.
TheDutch
%Europe/Berlin %830 %2007, 19:55
De interval variable is gedeclareerd binnen een functie die is dus niet toegankelijk buiten di functie bijvoorbeeld vanuit de functie "volgende".
Dauntless
%Europe/Berlin %834 %2007, 20:01
De interval variable is gedeclareerd binnen een functie die is dus niet toegankelijk buiten di functie bijvoorbeeld vanuit de functie "volgende".
Jij weet precies altijd meer dan ik ? :p
TheDutch
%Europe/Berlin %848 %2007, 20:21
Het is puur code lezen :P.
Het keyword "var" zonder een ACS geeft meestal aan dat het om een variable gaat die gedeclareerd wordt binnen een functie. In die variable wordt een interval gezet met setInterval naar een functie "volgende". Ik ging er vanuit dat de interval gestopt moest worden binnen de "volgende" functie met die IF statement. De rest is 1+1=2 :).
ottorocket
%Europe/Berlin %859 %2007, 20:37
hier is de hele code
nieuw();
i = 1;
xPositie = 50;
yPositie = 50;
function nieuw() {
this.onEnterFrame = function() {
if (i<17) {
var blokje = attachMovie("blok", "blok"+i, i);
blokje._x = xPositie;
blokje._y = yPositie;
} else {
blok1._width += 10;
blok1._height += 10;
blok4._width += 10;
blok4._height += 10;
blok13._width += 10;
blok13._height += 10;
blok16._width += 10;
blok16._height += 10;
}
};
var interval:Number = setInterval(volgende, 500);
}
function volgende() {
i++;
if (i == 5) {
yPositie += 100;
xPositie -= 400;
} else if (i == 9) {
yPositie += 100;
xPositie -= 400;
} else if (i == 13) {
yPositie += 100;
xPositie -= 400;
} else if (i == 17) {
yPositie += 100;
xPositie -= 400;
} else if (i>16) {
clearInterval(interval);
}
xPositie += 100;
}
stop();
TheDutch
%Europe/Berlin %860 %2007, 20:39
Volgensmij heb ik je net de oplossing gegeven hoor ;).
ottorocket
%Europe/Berlin %863 %2007, 20:43
Volgensmij heb ik je net de oplossing gegeven hoor ;).
had ik wel door dat je er iets mee bedoelde, maar 1+1=2 (is volgens mij wel juist) maar de rest van je uitleg begrijp ik niet :S
TheDutch
%Europe/Berlin %864 %2007, 20:44
Bekijk mijn eerste reactie :).
josko
%Europe/Berlin %864 %2007, 20:45
nieuw();
i = 1;
xPositie = 50;
yPositie = 50;
function nieuw() {
this.onEnterFrame = function() {
if (i<17) {
var blokje = attachMovie("blok", "blok"+i, i);
blokje._x = xPositie;
blokje._y = yPositie;
} else {
blok1._width += 10;
blok1._height += 10;
blok4._width += 10;
blok4._height += 10;
blok13._width += 10;
blok13._height += 10;
blok16._width += 10;
blok16._height += 10;
}
};
var interval:Number = setInterval(volgende, 500);
}
function volgende() {
i++;
if (i == 5) {
yPositie += 100;
xPositie -= 400;
} else if (i == 9) {
yPositie += 100;
xPositie -= 400;
} else if (i == 13) {
yPositie += 100;
xPositie -= 400;
} else if (i == 17) {
yPositie += 100;
xPositie -= 400;
} else if (i>16) {
clearInterval(interval);
}
xPositie += 100;
}
stop();
Binnen je functie volgende bestaat de variable interval niet,
evenals de variable I en de variable Xpositie.
Dat is de eerste post van theDutch.
TheDutch
%Europe/Berlin %868 %2007, 20:51
evenals de variable I en de variable Xpositie.
Die wel aangezien die gedeclareerd staan buiten de functies op de tijdlijn :).
ottorocket
%Europe/Berlin %871 %2007, 20:54
i en xPositie bestaan wel, maar hoe kan ik dat van die interval oplossen?
TheDutch
%Europe/Berlin %873 %2007, 20:57
Ik heb het even snel voor je aangepast, maar echt ga ActionScript leren! Koop een goed boek van Colin Moock ofzo :).
var interval:Number;
i = 1;
xPositie = 50;
yPositie = 50;
nieuw();
function nieuw() {
this.onEnterFrame = function() {
if (i<17) {
var blokje = attachMovie("blok", "blok"+i, i);
blokje._x = xPositie;
blokje._y = yPositie;
} else {
blok1._width += 10;
blok1._height += 10;
blok4._width += 10;
blok4._height += 10;
blok13._width += 10;
blok13._height += 10;
blok16._width += 10;
blok16._height += 10;
}
};
interval = setInterval(volgende, 500);
}
function volgende() {
i++;
if (i == 5) {
yPositie += 100;
xPositie -= 400;
} else if (i == 9) {
yPositie += 100;
xPositie -= 400;
} else if (i == 13) {
yPositie += 100;
xPositie -= 400;
} else if (i == 17) {
yPositie += 100;
xPositie -= 400;
} else if (i>16) {
clearInterval(interval);
}
xPositie += 100;
}
stop();
McVirus
%Europe/Berlin %950 %2007, 22:48
is het misschien een oplossing om van de variabele genaamd "interval" een globale variabele te maken?
Als volgt :
_global.interval = setInterval(volgende, 500);
mogelijk?
Dauntless
%Europe/Berlin %952 %2007, 22:50
is het misschien een oplossing om van de variabele genaamd "interval" een globale variabele te maken?
Als volgt :
_global.interval = setInterval(volgende, 500);
mogelijk?
Dat is mogelijk, maar een bad-practice. TheDutch's oplossing is ideaal :).
McVirus
%Europe/Berlin %954 %2007, 22:54
Dat is mogelijk, maar een bad-practice. TheDutch's oplossing is ideaal :).
Dat mag wel zo zijn, maar mits hij nergens anders een variable met dezelfde naam zou hebben staan of als het een variabele was die steeds weer terugkwam met dezelfde waarde, dan zou het een uitkomst zijn. Toch?
Dauntless
%Europe/Berlin %958 %2007, 22:59
Dat mag wel zo zijn, maar mits hij nergens anders een variable met dezelfde naam zou hebben staan of als het een variabele was die steeds weer terugkwam met dezelfde waarde, dan zou het een uitkomst zijn. Toch?
Dat is net het nadeel van _global. Vergelijk het met een grote schuif. Je zou er gewoon al je rommel in wegsmijten omdat je geen mooie plaats weet om iets te zetten. Het wordt dan een echt hoopje.
Zo dus ook met _global. Als je niet leert om serieus met paden om te gaan ga je uiteindelijk alles in _global zetten en ga je snel (onbewust) variabelen overschrijven. Ik heb eens een app gezien van 4000 regels waarin alle variabelen in _global opgeslagen werden... Dat ding was ONMOGELIJK om te debuggen!
Het KAN dus wel sowieso, maar het wordt ten zeerste afgeraden!
McVirus
%Europe/Berlin %961 %2007, 23:05
Ja daar moet ik je gelijk in geven, want ik weet van het feit dat je _global.variabele alle lokale variabelen overschrijft met dezelfde naam. Maar in kleine scripts (mits je in je achterhoofd houd dat het ooit anders moet) is het naar mijn mening alleen maar gebruik maken van de gereedschappen die je hebt. Maar ieder zijn eigen mening en ik snap het standpunt van jou ook volkomen. Zoals in je voorbeeld. Waar is het met die variabele de fout in gegaan?!?! Jou methode kan dus Shi'tty situations voorkomen,, en ik zal ook zeker proberen om mezelf aan te leren om met lokale variabelen te werken ;)
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.