Les variables

Utilisation des variables en ActionScript 3 (AS3)

En programmation, les variables sont utilisées pour stocker des données. Nous allons voir à travers ce billet, l'utilisation des variables en AS3.

Déclarer une variable

Le mot clé var est obligatoire en AS3 pour déclarer une variable

Actionscript:
  1. // Le mot clé var est obligatoire en AS3 pour déclarer une variable
  2. var i;
  3. // Il est fortement recommandé de désigner le type de la variable. Sans cette désignation, un avertissement apparaît à la compilation en mode strict.
  4. var j:int;

Valeur d'une variable

On peut parfaitement donner une valeur à la variable au moment de sa création. Une variable, déclarée sans valeur, se verra affectée une valeur par défaut

Actionscript:
  1. // On peut parfaitement donner une valeur à la variable au moment de sa création
  2. var largeur:int = 100;
  3. // Une variable déclarée sans valeur, se verra affectée une valeur par défaut
  4. var o:int, p:String, q:Boolean, r:Number, s:Object, t;
  5. trace("valeur par défaut d'un entier : "+o+"\n"+     "valeur par défaut d'une chaîne de caractères : "+p+"\n"+      "valeur par défaut d'un booléen : "+q+"\n"+      "valeur par défaut d'un nombre : "+r+"\n"+    "valeur par défaut d'un type object : "+s+"\n"+     "valeur par défaut d'une variable non typée : "+t);

Grouper des déclarations de variables

Pour simplifier la lecture du code, les déclarations de variables peuvent être groupées même si le type des variables est différent

Actionscript:
  1. // Les déclarations de variables peuvent être groupées var k:int=1, l:int=10, m:int=20;
  2. // On peut grouper des variables de types différents
  3. var ville:String="Nantes", dep:int=44, prefecture:Boolean=true;
  4. trace("Ville : "+ville+"\nDépartement : "+dep+"\nPréfécture : "+prefecture);

Portée des variables

Une variable peut-être globale donc utilisable à partir de n'importe quelle ligne de votre script ou locale donc utilisable uniquement dans la fonction ou elle a été créé.

Actionscript:
  1. /*** Portée des variables ***/
  2. // Une variable globale est une variable qui est défini en dehors d'une fonction ou d'une classe
  3. var globale:String = "Flash 9";
  4. // Une variable globale est accessible depuis et en dehors d'une fonction
  5. trace("Valeur de la variable en dehors de la fonction : "+globale);
  6. function testPortee():void
  7. {
  8.     trace("Valeur de la variable depuis la fonction : "+globale);
  9. }
  10. testPortee();
  11. // Une variable locale est une variable qui est déclarée dans une fonction
  12. function porteeLocale():void
  13. {
  14.     var locale:String = "Adobe Flash ActionScript 3";
  15.     trace("Valeur de la variable depuis la fonction : "+locale);
  16. }
  17. porteeLocale();
  18. //trace("Valeur de la variable en dehors de la fonction : "+locale);

Il n'existe pas de limitations comme en Java ou en C++ pour les variables déclarées à l'intérieur des accolades d'un bloc d'instructions.

[as]/* Variables déclarées dans un bloc d'instructions Contrairement aux langages Java ou C++, les variables déclarées entre les accodales d'un bloc d'instructions ne se limitent pas à ce bloc d'instructions. La portée de ces variables est défini par l'élément parent*/
var a:int = 10; var b:int = 20;
if(a<b)
{
var c:int=a;
trace("La valeur de c à l'intérieur des accolades du if est "+c);
}
trace("La valeur de c à l'extérieur des accolades du if est "+c);// la portée de c ne se limite pas qu'aux accolades du if et c est une variable globale car défini en dehors d'une fonction
var d:int = 30; var e:int = 40;
function comparaison(d:int, e:int):void
{
if(d<e)
{
var f:int=d;
trace("La valeur de f à l'intérieur des accolades du if est "+f);
}
trace("La valeur de f à l'extérieur des accolades du if est "+f); //la portée de f ne se limite pas qu'aux accolades du if
}
comparaison(d,e);
trace("La valeur de f à l'extérieur des accolades du if et à l'extérieur de la fonction est "+f); // par contre, f étant défini dans une fonction, sa portée est locale donc le trace provoque une erreur[as]
;)