Flash AS3 over variabelen

Variabelen binnen flash zijn handig, maar lastig om goed te implementeren. Daarom hier kort en bondig uitleg over hoe aan te maken en te gebruiken binnen je flash applicatie.

Als je een variabele aanmaakt en wil gebruiken in hetzelfde frame is er niets aan de hand, flash kan hem dan gewoon vinden. Het probleem is, als je op frame 1 een variabele aanmaakt en deze op bijvoorbeeld frame 12 pas wil hergebruiken.

Of als je ergens binnen een movieclip een variabele weer wil inlezen. Hieronder staan enkele mogelijkheden om deze variabelen overal uit te kunnen lezen.

1
2
3
4
5
6
7
8
9
var deVariabeleNaam:String = de waarde;
 
// je kunt de variabele overal benaderen als je het 
// volgende doet:
MovieClip(this.root).deVariabeleNaam;
 
// stel je hebt de variabele aangemaakt in een movieclip
// dan gebruik je de volgende code:
MovieClip(this.root).MovieClipInstanceNaam.deVariabeleNaam

Onderstaande methode werkt alleen als je een var in een hoofdtijdlijn wil aanspreken.

1
2
3
4
// variabele aanmaken met this ervoor zorgt dat deze op 
// de hoofdtijdlijn overal te vinden is. Uitlezen doe je 
// op dezelfde manier
this.varName;

Flash AS3 variables and counting [EN]

To grow the flower, you have to turn on the light and give it water two times. You can do that in any order. You can only turn the light on one time. Since you can water it only two times, i used a little counter to check for the amount of clicks.

In the movieclips “flower” and “water” i placed stop(); codes to stop animations, until clicked again.

var LampTeller=false;// de lamp is uit, dus false
var GieterTeller=0;// de gieter is nog niet geweest dus 0
 
lamp.addEventListener(MouseEvent.CLICK, lampAan);//lamp aan zetten
gieter.addEventListener(MouseEvent.CLICK, GieterGiet);//gieter geeft water
 
function lampAan(evt:MouseEvent) {
	if (LampTeller==false) {//als de lamp nog niet aan is geweest (anders doet hij niets)
		lamp.nextFrame();//naar het volgende frame binnen de instance lamp (aan)
		bloem.play();//speel de animatie binnen de instance bloem af (tot hij daar een stop tegenkomt)
		LampTeller=true;//Lamp is aan
	}
}
 
function GieterGiet(evt:MouseEvent) {
	if (GieterTeller<=1) {//als de gieter 2 keer geweest is doet hij onderstaande (anders doet hij niets)
		gieter.play();//speel de animatie binnen de instance gieter af (tot hij daar een stop tegenkomt)
		bloem.play();//speel de animatie binnen de instance bloem af (tot hij daar een stop tegenkomt)
		GieterTeller++;//gieter met 1 optellen (hij begint met tellen bij 0)
	}
}