[AC3] variable et evenement

Résolu
djacc Messages postés 8 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 18 février 2009 - 11 févr. 2009 à 19:22
djacc Messages postés 8 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 18 février 2009 - 18 févr. 2009 à 22:35
J'ai petit soucis pour récupérer une variable d'une instance d'un clip après un événement.

J'ai un clip "Dossier" dans la bibliothèque avec comme code AS3: 
var IDdossier:Number = 5;

Quant je crée des instances du clip "Dossier" je modifie la variable "IDdossier".
Avec le trace à la fin de la boucle je vois que les variables "IDdossier" sont bien affectée
Par contre lors de l'enlèvement je récupère le "5" de l'initialisation, et non les valeurs que j'ai affectée

Voici le code:
for (var i:Number = 0; i < 2; i++){
    var dossier:Dossier = new Dossier();
    dossier.IDdossier= ID[i];
    dossier.Name.text = Name[i];
    dossier.addEventListener(MouseEvent.CLICK, Dossier_Click );
    stage.addChild (dossier);
    trace(dossier.IDdossier);
}
function Dossier_Click(event:MouseEvent):void
{
    trace(event.currentTarget.Name.text);
    trace(event.currentTarget.IDdossier);
}

je comprend pas pourquoi sa ne marche pas!

3 réponses

djacc Messages postés 8 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 18 février 2009
11 févr. 2009 à 22:30
J'ai fini par trouver une solution!

Pour ce faire, j'ai crée une classe "Dossier" qui hérite de Movieclip avec une propriété ID!

Le code du fichier Dossier.as
package {  
    import flash.display.MovieClip;
    public class Dossier extends MovieClip{
        public var ID:Number = 0;
    }
}

Et le code du fla:
for (var i:Number = 0; i < 2; i++){
    var dx:Dossier = new Dossier();
    dx.ID = DossierID[i];
    dx.Name.text = DossierName[i];
    dx.addEventListener(MouseEvent.CLICK, Dossier_Click );
    stage.addChild (dx);
}

function Dossier_Click(event:MouseEvent):void
{
    trace(event.currentTarget.ID);
}

Voila! Si sa peut servir à quelqu'un!
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
12 févr. 2009 à 11:00
A quoi fait reference DossierID[i] et DossierName[i] ?

j'ai testé cela et sa marche :

var baseY = 20;

for (var i:Number = 0; i < 2; i++){
    var dossier:Dossier = new Dossier();
    dossier.IDdossier = i;
    dossier.Name.text = i.toString();
    dossier.addEventListener(MouseEvent.CLICK, Dossier_Click );
    dossier.y = baseY;
    baseY += dossier.height + 10;
    stage.addChild (dossier);
}

function Dossier_Click(event:MouseEvent):void
{
    trace(event.currentTarget.Name.text);
    trace(event.currentTarget.IDdossier);
}
0
djacc Messages postés 8 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 18 février 2009
18 févr. 2009 à 22:35
DossierID[] et DossierName[]
Sont deux tableaux contentant les noms et les identifiant unique pour les éléments du menu
ces nom et ID je récupère via une base de donnée.
0
Rejoignez-nous