|
Flash MX comme Flash 5 proposent différents objets : Array, Boolean, Color, Date, Key, Math, Mouse, MovieClip, Number, Object, Selection, Sound, String, XML, XMLsocket... Nous étudierons plus particulièrement ici les objets Array et Object.. Objet Array, syntaxe et tableau à plusieurs dimensions Les objets Array permettent de stocker des variables dans des tableaux (Array) avec des index numériques. Pour déclarer un objet Array plusieurs syntaxes sont disponibles: monTableau= new Array (); // déclaration d'un objet array vide monTableau[0]="ma première valeur"; monTableau[1]="ma deuxième valeur"; on peut aussi écrire: monTableau= new Array ("ma première valeur", "ma deuxième valeur"); ou en écriture condensée, les [ ] sont équivalents au constructeur new Array : monTableau=[]; // déclaration d'un objet array vide monTableau[0]="ma première valeur"; monTableau[1]="ma deuxième valeur"; ou encore: monTableau= ["ma première valeur", "ma deuxième valeur"] On peut vouloir créer des tableaux à plusieurs dimensions, pour réprésenter un échiquier, par exemple ( tableau à deux dimensions): Pour cela, on écrira, par exemple: monEchiquier = new Array ((new Array (0,1,2), new Array (10,50,23), new Array ("A","B", "C")) ou encore: monEchiquier= [ [0,1,2],[10,50,23],["A","B","C"] ] Ce qui peut se représenter graphiquement ainsi : | index | 0 | 1 | 2 | | 0 | 0 | 1 | 2 | | 1 | 10 | 50 | 23 | | 2 | "A" | "B" | "C" | Pour accéder aux valeurs de ce tableau à deux dimensions, il suffit d'écrire : monEchiquier[i][j] //i et j sont les index monEchiquier[0][1] //donne 1 monEchiquier[2][2] //donne "C" Objet Object et tableaux associatifs Dans certains cas on voudra plutot utiliser des index alphanumériques car plus évidents à lire. Dans ce cas, comme pour d'autres applications (exemple du setTransform(), getTransform() ou d'autres), on utilisera l'objet Object qui nous permettra de créer des objets avec des attributs, attributs qui seront les éléments contenus dans l'objet principal, comme les éléments d'un tableau array. Ces objets ainsi crées seront appelés tableaux associatifs. Pour créer un tableau associatif : monPersonnage = new Object (); // création d'un objet vide monPersonnage["age"] = 29; monPersonnage["sexe"] = "m"; on peut aussi l'écrire avec la syntaxe point (dot): monPersonnage = new Object (); // création d'un objet vide monPersonnage.age = 29; monPersonnage.sexe = "m"; on en syntaxe condensée, en utilisant les {} qui équivalent au constructeur new Object : monPersonnage = {}; // création d'un objet vide monPersonnage.age = 29; monPersonnage.sexe = "m"; ou le fin du fin: monPersonnage = {age:29,sexe:"m"}; pour acceder aux index alphanumériques il suffira d'écrire: monPersonnage.age ou monPersonnage["age"] monPersonnage.sexe ou monPersonnage["sexe"] Notez l'intêret de la syntaxe monPersonnage["age"] par rapport à la syntaxe point : Dans Flash, vous ne pouvez pas écrire monPersonnage.1age alors que vous pouvez écrire monPersonnage["1age"]. Remarque Si vous utilisez un tableau associatif (créé à partir de l'objet Object), vous ne bénéficierez pas de l'ensemble des méthodes de l'objet Array, à vous de bien choisir quand et pourquoi vous créez un objet Array ou un tableau associatif. Attention, vous pouvez créer un Array associatif avec cette syntaxe: monPersonnage= new Array(); monPersonnage["age"] = 29; monPersonnage["sexe"] = "m"; et donc a priori utiliser les méthodes de l'objet Array. Hélas les méthodes de l'objet Array renverront des résultats faux, voir pas de résultat du tout simplement parce qu'elles ne sont pas faites pour gérer des index alphanumériques. Nous choisirons donc d'ignorer cette possibilité et plutôt de créer des nouvelles méthodes de l'objet Object grâce aux propriétés prototype et __proto__ .
|