Forums Développement Multimédia

Aller au contenu

- - - - -

Accès aux propriétés d'un clip dans un tableau

CODE

1 réponse à ce sujet

#1 kiwikiwi

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 23 August 2015 - 20:41 PM

Bonjour à tous,

Ca faisait un petit temps que je n'avais plus eu besoin de vos services ... mais là je sèche ...

Le projet est bien plus compliqué que ça mais c'est là que j'ai ciblé ce que je pense être le problème.

Je charge donc plusieurs diaporamas que je met dans un tableau pour les utiliser plus tard. Dans mon projet, tout fonctionne à merveille pour tb_diaporamas[0] et tb_diaporamas[1]. J'ai accès à toutes leurs propriétés, je peux les agrandir etc ... pour tb_diaporamas[2] & 3 ... je les vois, je peux faire tout ce que je veux avec SAUF modifier leur taille ... a partir du moment ou je change la largeur par exemple, il disparait (il est encore présent mais n'est plus visible). Je tiens à préciser que les swfs chargés sont exactement les mêmes, je les ai dupliqué pour essayer de trouver ce qui n'allait pas. Donc en théorie tb_diaporamas[0] et tb_diaporamas[2] contiennent exactement le même fichier.

Et pourtant, dans le code si dessous, si je :

trace (tb_diaporamas[0] ou tb_diaporamas[1].content.width), j'obtiens 1400 (ce qui est correct)
et si je trace (tb_diaporamas[2].content.width), j'obtiens 0 (alors que je voit le swf ... il est devant mes yeux et fait bel et bien 1400 ... et tant que je ne modifie pas sa largeur il fonctionne parfaitement.

Pourquoi me renvoit-il cette largeur de 0 ? J'imagine que c'est pour ça que je ne peux pas la modifier ulterieurement mais je ne comprend pas d'ou vient ce 0 .. .et pourquoi seulement à partir du [2] .. ?

Any idea ?

var compteurDiaporamas:int = 0;
var tb_diaporamas:Array = new Array();

charge(); // Charger le premier fichier

function charge():void {
       
        var requete:URLRequest = new URLRequest ();
        var chargeur:Loader = new Loader();
       
        requete.url = "diaporama-"+(compteurDiaporamas+1)+".swf";
        chargeur.load(requete);
       
        tb_diaporamas.push(chargeur);
       
        chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, fini);
       
        compteurDiaporamas += 1;
       
        function fini(e:Event) {
               
                if (compteurDiaporamas<4) {
                        charge();
                }
                else { 
                       
                        trace("chargements finis");
                    trace(tb_diaporamas[0].content.width);  //// ME RENVOI 1400
                        trace(tb_diaporamas[2].content.width);  //// ME RENVOI 0 ---- JE NE COMPREND PAS
                       
                        initSize();
                        affichage();
                       
                        chargeur.contentLoaderInfo.removeEventListener(Event.COMPLETE, fini);
                       
                }
        }
}


#2 kiwikiwi

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 24 August 2015 - 11:21 AM

Hummm, ne vous embétez pas ... j'ai trouvé une solution.

Le problème venait du fait que je loadais un swf dans un swf ... puis que je loadais celui-ci pour le mettre dans le tableau. Si je load un swf tout simple, je n'ai plus le problème. Ce qui ne m'explique pas pourquoi ça marche sur les 2 premieres entrées du tableau et pas sur les autres mais bon.

Pour contourner le problème, j'ai supprimé le contentLoaderInfo lorsque je charge le swf principal (qui contient un autre swf chargé) ... et curieusement je n'ai plus de soucis.

Si quelqu'un à envie de m'expliquer je suis preneur ... si pas, ne vous embêtez pas avec ces âneries ^^




Répondre à ce sujet



  

1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP