Adobe Edge Animate and variables, collect coins [EN]

To create an interactive environment in Edge Animate, we need to have some code. And one of the most important things are variables. To declare a variable, select your stage and click on “open actions” button near the title of your project (properties). Select “creationComplete” and add all the following code below:

sym.setVariable("varName", 0);

Where “varName” is your variable name. The number behind that is the start value of this variable.

When you have a coin you can collect, select the coin symbol and click on “open actions” in the properties window.
Add the following code:

// lets get the variable "varName" and put it into another variable named "Name"
var Name = sym.getVariable("varName");
// this is the important part, counting. Add 1 to the value of the variable "Name"
Name = Name + 1;

This code gets the variable name varName and puts it in a new var “Name”. After that we add a plus 1 to this variable, so we know that someone has clicked on the coin and that we can keep track of it.

sym.setVariable("varName", Name);
sym.$("TextField").html(Name);

We want to keep counting, so we have to put the 1 back in our global variable. After that we want to show the variable in a textfield. This textfield has an id “TextField”.

// when you have clicked on the coin, make it disappear with a fadeout
sym.$("coin").fadeOut(200);
 
// if we have clicked on 3 coins, show a symbol.
if (Name ==3){
sym.$("CongratsSymbol").show();
}

When the user has clicked on the coin, it has to disappear. That’s where we use the “fadeOut” function. The number between the brackets is how long the fade can take.

If the user has clicked on 3 coins, we want to show a symbol. So that’s where the check if the varName is 3 comes into place. Use the same code for the other 2 coins and be sure to use other id’s for the coins.

This is one way to do this, there could be others. If you have another way to do the same, please let me know.

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 Naam invullen en hergebruiken

Op frame 1 staat deze code:

stop();

var Naam=”vul hier je naam in”; //de variabele naam een waarde geven

NaamText.text=Naam;//de var naam in het textveld NaamText (instance name van het inputveld) zetten

NaamText.addEventListener(MouseEvent.CLICK, Leegmaken); //als je klikt op het inputveld, het veld leegmaken

function Leegmaken (e:MouseEvent):void {
Naam=””;//leeg maken
NaamText.text=Naam;//textveld updaten
}

verder.addEventListener(MouseEvent.CLICK, VolgendeFrame);// naar volgende frame

function VolgendeFrame (e:MouseEvent):void {
Naam=NaamText.text;//textveld updaten met de content
gotoAndStop(2);
}

Op frame 2 staat de volgende code (en dat kan natuurlijk ook een willekeurig ander frame zijn):

this.Naam=Naam;//met this voor een variabele, pakt flash de var mee uit andere keyframes
NaamText2.text=Naam;//textveld vullen met de variabele