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

ActionScript 3 Discussion :

Créer dynamiquement des noms de displayObject


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Par défaut Créer dynamiquement des noms de displayObject
    Bonjour,

    je ne sais pas si mon titre correspond bien à mon problème mais soit !

    J'ai importé dans la bibliothèque 12 images, dont le nom de classe est Img0, Img1, Img2, etc...

    Ce que je souhaite faire si possible, c'est de créer des variables(DisplayObjects?) dynamiquement, sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0,i<12;i++)
    {
    var "img"+i=new "Img+i"
    }
    A mon avis, ce n'est pas possible ! Enfin...

    Du coup, je suis passé par une méthode un peu laborieuse du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var img0=new Img0;
    var img1=new Img1;
    var img2=new Img2;
    ...
    A partir de là, j'aimerais accéder aux propriétés de ces displayObject (ou variables je ne sais plus...)
    sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (i=0,i<12;i++)
    {
    "img"+i.x=distance*i;
    "img"+i.y=distance*i;
    addChild("img+i");
    Ce code ne marche pas, on le sait
    J'ai essayé des choses du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this["img"+i].x=distance*i.
    ça ne marche pas et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getChildByName("image"+i).x=distance*i;
    //sachant que "img"+i serait un nom que j'aurais attribué via la propriété //.name
    ne marche pas non plus.

    Enfin, je pédale dans la choucroute !

    Mon objectif est en fait de placer ces images dynamiquement sur la scène en quelques lignes de code sans avoir écrire plusieurs instructions par image.


    J'espère avoir été à peu près clair !

    Par avance, merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 46
    Par défaut
    Une fois de plus, je me permets de me répondre, sait-on jamais pour un non moins malin lecteur.

    Finalement, je n'ai besoin de déclarer qu'une seule variable dans la boucle,
    il fallait penser à "GetDefinitionByName" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (i=0;i<12;i++)
    {
    var image1= new (getDefinitionByName('Img'+i));
    image1.x=UneVariableDistance*i;
    image1.y=UneVariableDistance*i
    addChild(image1);
    Comme ça, je peux aller chercher différents objets de ma bibliothèque, pas connus à l'avance en une seule instruction !

    Plop ! "Résolu", du coup.

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

Discussions similaires

  1. Créer dynamiquement des label
    Par flamel dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/08/2007, 14h44
  2. Réponses: 2
    Dernier message: 27/04/2007, 13h03
  3. Réponses: 1
    Dernier message: 17/04/2007, 14h43
  4. [D5] Créer dynamiquement des variables dans une fonction
    Par MelkInarian dans le forum Delphi
    Réponses: 11
    Dernier message: 14/04/2007, 12h16
  5. Réponses: 1
    Dernier message: 15/09/2005, 11h59

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