IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Action Script:Tableaux a plusieurs dimensions: Help!


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut Action Script:Tableaux a plusieurs dimensions: Help!
    Bonjour a tous,

    Je suis encore debutant en Action Script.

    Voici un code tres simple:

    var tab:Array = new Array(5, 8, 2);
    tab [0][0][0] = 10;

    trace (tab[0][0][0]);

    La valeur n'est pas 10, mais undefined. Pourquoi?
    Il me semble que ca fonctionne avec 2 dimensions, mais pas avec 3. J'ai vraiment cherche partout, ca doit etre simple mais je n'ai aucune explication.

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de The_Pretender
    Homme Profil pro
    Formateur Développement / Programmation
    Inscrit en
    Juin 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Développement / Programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2004
    Messages : 739
    Par défaut
    Bonjour,


    Tu as seulement crée un tableau 1 dimension.

    Pour récupérer tes valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var tab:Array = new Array(5, 8, 2);
    tab [0] = 5
    tab [1] = 8
    tab [2] = 2
    Voici un exemple de création d'un tableau à 2 dimensions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var aTab:Array = new Array();
     
    aTab["hello"] = "bonjour";
    aTab["bye"] = "au revoir";
    Réclamez La Méthode Développement Facile pour Créer Rapidement des Applications Performantes sur Mobiles et Ordinateurs : Développement Facile

    Développez des Applications Web Performantes avec la Formation Vidéos Developpez : Programmation Facile

    Découvrez : Tutoriels, ressources AS2 et AS3

  3. #3
    Membre Expert
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Par défaut
    salut
    sinon pour un tableau tridimentionnel tu peux l'écrire ainsi :
    var troisDArray:Array = [[1, 2], [3, 4], [5, 6]];
    trace(troisDArray[0][1]);//2

    trace(troisDArray[2][1]);//6

  4. #4
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut plus de precisions sur ma question
    Merci a vous. Je comprends maintenant mon erreur et vos exemples, mais mon probleme n'est pas vraiment resolu. Je pense avoir mal explique ce que j'entends par 3 dimensions:
    Imaginez 3 meubles, chaque meuble contient 4 tiroirs, et chaque tiroir contient 5 boites. Chaque boite est pleine ou vide, disons que c'est une booleenne.
    Comment creer ce tableau, et ensuite acceder aux elements? Par exemple, l'element (1, 3, 0) ferait refrence a l'element de la premiere boite (index 0) du tiroir 4 (index 3) du meuble 2 (index 1).
    Voila ce que j'entendais par trois elements.
    Est-ce que l'utilisation de tableaux est la meilleure solution pour faire ca? Peut-etre des objets imbriques les uns dans les autres (mais je trouve ca tres lourd de creer un objet dans le seul but de grouper deux variables)?

    Merci a vous,

  5. #5
    Rédacteur

    Avatar de The_Pretender
    Homme Profil pro
    Formateur Développement / Programmation
    Inscrit en
    Juin 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Développement / Programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2004
    Messages : 739
    Par défaut
    Tout dépend si tu as plus de données à regrouper. Dans ce cas la, l'utilisation d'un objet est plus logique et plus souple.

    Par exemple un objet meuble contient x tiroir, x porte....

    un tiroir serait donc aussi un objet particulier de chaque meuble contenant sa couleur, sa matière, le nombre de boites...

    Sinon voici un exemple de gestion avec un tableau
    (Imaginez 3 meubles, chaque meuble contient 4 tiroirs, et chaque tiroir contient 5 boites. Chaque boite est pleine ou vide, disons que c'est une booleenne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var aMeuble:Array = new Array();
     
    // le 1er meuble
    aMeuble[0]["tiroir"] = 4;// contient 4 tiroirs
    aMeuble[0]["tiroir"][0] = 5;// le premier tiroir contient 5 boites
    aMeuble[0]["tiroir"][1] = 3;// le deuxième tiroir contient 3 boites
    aMeuble[0]["tiroir"][0]["boites"][0] = 1;// la première boite du premier tiroir est pleine
    Avec une gestion par tableau, cela devient vite galète et difficile à s'y retrouver.
    Réclamez La Méthode Développement Facile pour Créer Rapidement des Applications Performantes sur Mobiles et Ordinateurs : Développement Facile

    Développez des Applications Web Performantes avec la Formation Vidéos Developpez : Programmation Facile

    Découvrez : Tutoriels, ressources AS2 et AS3

  6. #6
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut
    (Imaginez 3 meubles, chaque meuble contient 4 tiroirs, et chaque tiroir contient 5 boites. Chaque boite est pleine ou vide, disons que c'est une booleenne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var aMeuble:Array = new Array();
     
    // le 1er meuble
    aMeuble[0]["tiroir"] = 4;// contient 4 tiroirs
    aMeuble[0]["tiroir"][0] = 5;// le premier tiroir contient 5 boites
    aMeuble[0]["tiroir"][1] = 3;// le deuxième tiroir contient 3 boites
    aMeuble[0]["tiroir"][0]["boites"][0] = 1;// la première boite du premier tiroir est pleine

    Merci sincerement pour ton aide, mais ca ne marche pas . J'en reviens au meme probleme. N'importe quelle variable accedee par le troisieme element, ici aMeuble[0]["tiroir"][0]["boites"][0] reste undefined. Par contre ca marche bien avec deux elements (mais pas trois).

    De plus je me demandais si dans ton code il ne faudrait pas utiliser l'instruction new pour la creation de chaque nouvel element, ou peut-etre push?

    Merci beaucoup

  7. #7
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Par défaut
    Citation Envoyé par jean philippe
    salut
    sinon pour un tableau tridimentionnel tu peux l'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var troisDArray:Array = [[1, 2], [3, 4], [5, 6]];
    trace(troisDArray[0][1]);//2
     
    trace(troisDArray[2][1]);//6
    Effectivement, c'est plus simple de definir les trois elements a la declaration du tableau.
    Plus precisement, voici comment j'ai fait pour definir trois elements:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var troisDtab:Array  = [[ [10,32], [5,4], [3,2]] ,  [[10,20], [6,3], [7,4]] ];
    Ceci n'est qu'un exemple. Ainsi:
    troisDtab [0][0][1] = 32;
    troisDtab [1][1][0] = 6;

    Meci a tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2008, 22h45
  2. [Tableaux] Tableau plusieurs dimensions
    Par romeo_fr dans le forum Langage
    Réponses: 1
    Dernier message: 29/09/2007, 23h12
  3. syntaxe action script chaine sur plusieurs lignes
    Par totoche dans le forum Flash
    Réponses: 2
    Dernier message: 27/10/2006, 13h26
  4. Tableaux à plusieurs dimensions
    Par Diabolik dans le forum Assembleur
    Réponses: 3
    Dernier message: 08/12/2003, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo