lol
Tout ça ne fonctionnera pas, pour la simple et bonne raison que vous initialisez un tableau à une dimension (new Array()) et que vous essayez directement d'affecter une 2ème dimension...
Pour faire ce que vous désirez, vous pouvez le faire de bien des syntaxes.
Commençons par la plus logique et standard :
Code :
- var a1a:Array = new Array();
- a1a[0] = new Array();
- a1a[0][0] = 'hello';
- a1a[0][1] = 'world';
- a1a[1] = new Array();
- a1a[1][0] = '2ème';
- a1a[1][1] = 'ligne';
|
au niveau des indexs alphanumériques, ça donnerai ça :
Code :
- var a2a:Array = new Array();
- a2a[0] = new Array();
- a2a[0]['mot1'] = 'hello';
- a2a[0]['mot2'] = 'world';
- a2a[1] = new Array();
- a2a[1]['mot1'] = '2ème';
- a2a[1]['mot2'] = 'ligne';
|
Attention à toujours utiliser une chaine de caractère, ou une variable représentant une chaine de caractère, sinon ça ne va pas jouer... Et ceci n'est plus un tableau multidimensionnel, mais un tableau d'objet, ou plus communément appelé "dataProvider".
ça, c'est pour bien comprendre. Maintenant, l'actionScript permet quelques syntaxes rapides qui sont bien utiles pour ce genre de problèmes :
La base :
Code :
- // indexes numériques
- var a1b:Array = new Array();
- a1b[0] = new Array( 'hello', 'world' );
- a1b[1] = new Array( '2ème', 'ligne' );
- // indexes alphanumériques
- var a2b:Array = new Array();
- a2b[0] = new Object( { mot1:'hello', mot2:'world' } );
- a2b[1] = new Object( { mot1:'2ème', mot2:'ligne' } );
|
Un peu plus rapide, maintenant :
Code :
- // indexes numériques, un tableau est créé en mettant les crochets
- var a1c:Array = new Array();
- a1c[0] = ['hello', 'world'];
- a1c[1] = ['2ème', 'ligne'];
- // indexes alphanumériques, un objet est créé en mettant les accolades
- var a2c:Array = new Array();
- a2c[0] = { mot1:'hello', mot2:'world' };
- a2c[1] = { mot1:'2ème', mot2:'ligne' };
|
et enfin, la déclaration ultime :
Code :
- // indexes numériques
- var a1d:Array = [['hello', 'world'], ['2ème', 'ligne']];
- // indexes alphanumériques (tableau d'objets de type dataProvider)
- var a2d:Array =
- [
- { mot1:'hello', mot2:'world' },
- { mot1:'2ème', mot2:'ligne' }
- ];
|
Vala
Enfin, au niveau du pointage, on peut récupérer le contenu d'un dataProvider en pointant sur son nom de 2 manières :
a2d[0]['mot1'] donnera 'hello'
a2d[0].mot1 donnera la même valeur, 'hello'
Bon courage, a++