Movieclip dans boucle for

Résolu
00sebounet00 Messages postés 22 Statut Membre -  
00sebounet00 Messages postés 22 Statut Membre -
Bonjour,

je créé des movieclip dans une boucler for
et j'essais de recuperer la valeur de i pour chaque movieclip sans succes
qqun peut il m'aider
je suis debutant en flash as3

var largeur=135;
var hauteur=170;
var espace=25;
var nbr=23;

var infos:Array = new Array();
infos[0]="Paul très concentré !";
infos[1]="Frank dans son petit seau jaune";
infos[2]="Claude en marcel jaune";
infos[3]="Paco le charmeur !";
infos[4]="Grégory en admiration devant ses parents";
infos[5]="Muriel et son petit ourson";
infos[6]="Serge dans les îles";
infos[7]="Thomas-les-binocles";
infos[8]="Huguette sort du trou";
infos[9]="Vincent le joufflu";
infos[10]="Pascal en couche culotte";
infos[11]="Hélène-la-joie-de-vivre";
infos[12]="Léon... quelles joues !";
infos[13]="Vaïra avec son bob et le chien de Columbo";
infos[14]="Antoine fait des pâtés de sable";
infos[15]="Vania en gros plan...";
infos[16]="Paul alias la crevette";
infos[17]="Calvin et son bob bleu";
infos[18]="Rokia et son \"coin-coin\" sous la serviette de bain";
infos[19]="Leïla les p'tites bouclettes";
infos[20]="Victor et ses haltères";
infos[21]="Juliette en salopette";
infos[22]="Brice qui tire la langue";

var largeurTotale = nbr*(largeur + espace) + espace;

var diaporama:MovieClip = new MovieClip();
diaporama.y=10;
addChild(diaporama);

for (var i = 0; i < nbr; i++) {

var mc:MovieClip = new MovieClip();
var conteneur:MovieClip = new MovieClip();
var chargeur:Loader = new Loader();
var chemin:URLRequest=new URLRequest("photos/"+i+".gif");
var cadre:MovieClip = new MovieClip();

chargeur.load( chemin );
mc.addChild(chargeur);

with (cadre) {
graphics.lineStyle(1, "0x000000", 100);
graphics.moveTo(0, 0);
graphics.lineTo(largeur, 0);
graphics.lineTo(largeur, hauteur);
graphics.lineTo(0, hauteur);
graphics.lineTo(0, 0);
}
mc.addChild(cadre);

mc.name="photo"+i;
mc.x = espace + (largeur + espace)*i;
mc.nombre=i; //je stock i ici
mc.addEventListener(MouseEvent.MOUSE_OVER, sourisOver);
mc.addEventListener(MouseEvent.MOUSE_OUT, sourisOut);
diaporama.addChild(mc);

}

function sourisOver(e:Event):void {
commentaires.text="Photo n°"+this.nombre+" : "+infos[this.nombre]; // et je veux le recupérer ici
}

function sourisOut(e:Event):void {
commentaires.text="";
}

parent.addEventListener(MouseEvent.MOUSE_MOVE, bougeSouris);
function bougeSouris(e:Event):void {
diaporama.x = (600 - largeurTotale)/600*mouseX;
}
Configuration: Windows
Safari 530.5

6 réponses

  1. zoubiock Messages postés 57 Statut Membre 10
     
    Désolé pour le retard :

    import flash.events.MouseEvent;

    var largeur=135;
    var hauteur=170;
    var espace=25;
    var nbr=23;

    var infos:Array = new Array();
    infos[0]="Paul très concentré !";
    infos[1]="Frank dans son petit seau jaune";
    infos[2]="Claude en marcel jaune";
    infos[3]="Paco le charmeur !";
    infos[4]="Grégory en admiration devant ses parents";
    infos[5]="Muriel et son petit ourson";
    infos[6]="Serge dans les îles";
    infos[7]="Thomas-les-binocles";
    infos[8]="Huguette sort du trou";
    infos[9]="Vincent le joufflu";
    infos[10]="Pascal en couche culotte";
    infos[11]="Hélène-la-joie-de-vivre";
    infos[12]="Léon... quelles joues !";
    infos[13]="Vaïra avec son bob et le chien de Columbo";
    infos[14]="Antoine fait des pâtés de sable";
    infos[15]="Vania en gros plan...";
    infos[16]="Paul alias la crevette";
    infos[17]="Calvin et son bob bleu";
    infos[18]="Rokia et son \"coin-coin\" sous la serviette de bain";
    infos[19]="Leïla les p'tites bouclettes";
    infos[20]="Victor et ses haltères";
    infos[21]="Juliette en salopette";
    infos[22]="Brice qui tire la langue";

    var largeurTotale = nbr*(largeur + espace) + espace;

    var diaporama:MovieClip = new MovieClip();
    diaporama.y=10;
    addChild(diaporama);

    for (var i = 0; i < nbr; i++) {

    var mc:MovieClip = new MovieClip();
    var conteneur:MovieClip = new MovieClip();
    var chargeur:Loader = new Loader();
    var chemin:URLRequest=new URLRequest("photos/"+i+".gif");
    var cadre:MovieClip = new MovieClip();

    chargeur.load( chemin );
    mc.addChild(chargeur);

    with (cadre) {
    graphics.lineStyle(1, "0x000000", 100);
    graphics.moveTo(0, 0);
    graphics.lineTo(largeur, 0);
    graphics.lineTo(largeur, hauteur);
    graphics.lineTo(0, hauteur);
    graphics.lineTo(0, 0);
    }
    mc.addChild(cadre);

    mc.name="photo"+i;
    mc.x = espace + (largeur + espace)*i;
    mc.nombre=i; //je stock i ici
    trace(mc.nombre)
    mc.addEventListener(MouseEvent.MOUSE_OVER, sourisOver);
    mc.addEventListener(MouseEvent.MOUSE_OUT, sourisOut);
    diaporama.addChild(mc);

    }

    function sourisOver(event:MouseEvent):void {
    commentaires.text="Photo n°"+event.target.parent.nombre+" : "+infos[event.target.parent.nombre]; // et je veux le recupérer ici
    }

    function sourisOut(e:Event):void {
    commentaires.text="";
    }

    parent.addEventListener(MouseEvent.MOUSE_MOVE, bougeSouris);
    function bougeSouris(e:Event):void {
    diaporama.x = (600 - largeurTotale)/600*mouseX;
    }
    1
  2. zoubiock Messages postés 57 Statut Membre 10
     
    Dans ta fonction sourisOver, si tu fais un
    trace(this);
    trace(this.name);
    trace(this._name);
    trace(this.nombre);

    qu'obtiens-tu ?

    Sinon, un peu bourrin, mais
    Number(this._name.substr(5));
    devrait fontionner...
    0
  3. 00sebounet00 Messages postés 22 Statut Membre
     
    bonjour zoubiock,

    merci pour ta reponse rapide

    voici le resultat des trace dans sousOver :

    trace(this); //[object MainTimeline]
    trace(this.name); //root1
    trace(this._name); //undefined
    trace(this.nombre); //undefined

    sinon pour
    Number(this._name.substr(5));

    je ne vois pas ou le placer
    0
  4. zoubiock Messages postés 57 Statut Membre 10
     
    On va continuer les tests alors, peux tu faire:

    function sourisOver(event:MouseEvent):void {
    trace(event.target.name);
    commentaires.text="Photo n°"+this.nombre+" : "+infos[this.nombre]; // et je veux le recupérer ici
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 00sebounet00 Messages postés 22 Statut Membre
     
    le trace(event.target.name) me donne le numero d'instance

    resultat:

    instance19
    instance24
    instance29
    instance30
    instance24
    instance19
    instance64
    instance69
    instance74
    instance79
    instance85
    instance84
    0
  7. 00sebounet00 Messages postés 22 Statut Membre
     
    ok merci c cool

    je commencais a tourner en rond
    0