Problème avec l'ensemble onRelease sur dynamicly créé mcs

  • posidan
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Oct 25, 2004
  • Messages: 11
  • Status: Offline

Message Octobre 25th, 2004, 8:44 pm

Salut!
Ok, Im essayant de faire une galerie de photo ici, chargés dynamiquement à partir d'un XML. La partie XML fonctionne parfaitement, je peux créer ma MovieClips sans aucun problème non plus, et les placer où je les veux. la chose est maintenant que même si j'essaie d'ajouter un événement onRelease sur chaque I MC créer dynamiquement, il ne semble pas fonctionner. Im sure ses quelque chose de vraiment facile que je ne comprends tout simplement pas, mais im coincés ici et le projet est due dans une semaine (avec encore beaucoup de choses à compléter...)

Ainsi, toute aide serait plus apprécié.

Heres la boucle dans laquelle je crée mes mcs et les joindre à ma mc contenant miniature:

Code: [ Select ]
for (i=0; i<_root.pix_number; i++) {
 // if theres more than 10 pictures, we add another film overlay
 if (count > 20) {            
  _root.film.thumbs.attachMovie("film_overlay","overlay"+i,i);
  new_film = _root.film.thumbs["overlay"+i];
  new_film._x = -1847;
  count = 1;
 }
                
 var mc = film.thumbs.pix_container.createEmptyMovieClip("mc" + i, i);
 // Position the new mc
 mc._x = 705 - (i*70 + (6.8*(i+1)));
 mc._y = 15;

 // Adds a event listener to the thumbnail so that when its clicked
 // it loads a picture in the photobucket
 mc.onRelease = function () {
  trace("mc clicked");
  // load photo in photobucket
 }
                
 var url = "images/" + pixArray[i].thumbnail;
 myLoader.load(mc, url);
 count++;
}
  1. for (i=0; i<_root.pix_number; i++) {
  2.  // if theres more than 10 pictures, we add another film overlay
  3.  if (count > 20) {            
  4.   _root.film.thumbs.attachMovie("film_overlay","overlay"+i,i);
  5.   new_film = _root.film.thumbs["overlay"+i];
  6.   new_film._x = -1847;
  7.   count = 1;
  8.  }
  9.                 
  10.  var mc = film.thumbs.pix_container.createEmptyMovieClip("mc" + i, i);
  11.  // Position the new mc
  12.  mc._x = 705 - (i*70 + (6.8*(i+1)));
  13.  mc._y = 15;
  14.  // Adds a event listener to the thumbnail so that when its clicked
  15.  // it loads a picture in the photobucket
  16.  mc.onRelease = function () {
  17.   trace("mc clicked");
  18.   // load photo in photobucket
  19.  }
  20.                 
  21.  var url = "images/" + pixArray[i].thumbnail;
  22.  myLoader.load(mc, url);
  23.  count++;
  24. }


myLoader est un objet qlod.loaderClass ici. Je ne peux pas cliquer sur les images pour les rendre charge un plus gros dans le cadre i avoir.

Toute aide serait grandement appréciée...MERCI
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Octobre 25th, 2004, 8:44 pm

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Octobre 26th, 2004, 5:34 am

Le chargeur est de réinitialiser vos événements sur ce clip où il est chargé.

Créer un espace intérieur de MC var = mc film.thumbs.pix_container.createEmptyMovieClip ( "mc" + i, i); Et nommez-le "chargeur". Puis onRelease attribuer à «mc» et charge l'image en "chargeur"
Strong with this one, the sudo is.
  • posidan
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Oct 25, 2004
  • Messages: 11
  • Status: Offline

Message Octobre 26th, 2004, 8:19 am

ok, juste pour être sûr que je comprends ce que tu veux dire, je dois faire quelque chose comme:

var = mc film.thumbs.pix_container.createEmptyMovieClip ( "mc" + i, i);
mc.createEmptyMovieClip ( "loader", i);

mc.onRelease = function () (
/ / Code
)

myLoader.load (mc.loader, url);


Est-ce que c'est? Je ne peux pas l'essayer dès maintenant, mais mal essayer ce soir, et revenir avec de mauvais résultats
thanks a lot!
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Octobre 26th, 2004, 10:52 am

Pretty much.
Code: [ Select ]
mc.createEmptyMovieClip("loader", i);

"Loader" peut être créé un 0 (zéro) de profondeur à chaque fois puisque ce sera la seule chose à l'intérieur de "MC" :wink:
Strong with this one, the sudo is.
  • posidan
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Oct 25, 2004
  • Messages: 11
  • Status: Offline

Message Octobre 26th, 2004, 8:35 pm

woohoo!

fonctionne parfaitement.

Je ne saurais assez vous remercier, vous avez de la difficulté à me out here.

merci encore!
  • posidan
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Oct 25, 2004
  • Messages: 11
  • Status: Offline

Message Octobre 26th, 2004, 8:58 pm

Mmmm j'ai encore un problème avec mon onRelease.

Maintenant, je peux l'attraper, mais lorsque je tente de charger les photos de grande version en cliquant sur le pouce, je reçois toujours le dernier module chargé...mon code ressemble à celle actuellement:

Code: [ Select ]
            for (i=0; i<_root.pix_number; i++) {
                // if theres more than 10 pictures, we add another film overlay
                if (count > 20) {
                    _root.film.thumbs.attachMovie("film_overlay","overlay"+i,i);
                    new_film = _root.film.thumbs["overlay"+i];
                    new_film._x = -1847;
                    count = 1;
                }
                
                var mc = film.thumbs.pix_container.createEmptyMovieClip("mc" + i, i);
                mc.createEmptyMovieClip("thumb", 0);
                // Position the new mc
                mc._x = 705 - (i*70 + (6.8*(i+1)));
                mc._y = 15;
                mc.picture = pixArray[i];

                // Adds a event listener to the thumbnail so that when its clicked
                // it loads a picture in the photobucket
                mc.onRelease = function () {
                    _root.scene_mc.large_pic_mc.loadMovie("file://d:/Programmation/RogerioBarbosa/site/images/" + mc.picture.filename);
                }
                
                var url = "images/" + pixArray[i].thumbnail;
                myLoader.load(mc.thumb, url);
                count++;
            }
  1.             for (i=0; i<_root.pix_number; i++) {
  2.                 // if theres more than 10 pictures, we add another film overlay
  3.                 if (count > 20) {
  4.                     _root.film.thumbs.attachMovie("film_overlay","overlay"+i,i);
  5.                     new_film = _root.film.thumbs["overlay"+i];
  6.                     new_film._x = -1847;
  7.                     count = 1;
  8.                 }
  9.                 
  10.                 var mc = film.thumbs.pix_container.createEmptyMovieClip("mc" + i, i);
  11.                 mc.createEmptyMovieClip("thumb", 0);
  12.                 // Position the new mc
  13.                 mc._x = 705 - (i*70 + (6.8*(i+1)));
  14.                 mc._y = 15;
  15.                 mc.picture = pixArray[i];
  16.                 // Adds a event listener to the thumbnail so that when its clicked
  17.                 // it loads a picture in the photobucket
  18.                 mc.onRelease = function () {
  19.                     _root.scene_mc.large_pic_mc.loadMovie("file://d:/Programmation/RogerioBarbosa/site/images/" + mc.picture.filename);
  20.                 }
  21.                 
  22.                 var url = "images/" + pixArray[i].thumbnail;
  23.                 myLoader.load(mc.thumb, url);
  24.                 count++;
  25.             }



Notez que pixArray est un tableau contenant des objets Image, définis par ailleurs dans le code, mais qui contient tout simplement un nom de fichier par vignettes, un nom de fichier, un nom, une description et certaines autres propriétés.

Je n'arrive pas à le charger la bonne image...il charge tous les droits, mais avec la même image sur chaque pouce.

Merci de nous aider a noob. ;)
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Octobre 27th, 2004, 7:28 am

Cela devrait garder la dernière image ne soit utilisé à chaque fois,
Code: [ Select ]
film.thumbs.pix_container["mc"+i].picture = pixArray[i];
film.thumbs.pix_container["mc"+i].onRelease = function () {
        _root.scene_mc.large_pic_mc.loadMovie("file://d:/Programmation/RogerioBarbosa/site/images/" + this.picture.filename);
      }
  1. film.thumbs.pix_container["mc"+i].picture = pixArray[i];
  2. film.thumbs.pix_container["mc"+i].onRelease = function () {
  3.         _root.scene_mc.large_pic_mc.loadMovie("file://d:/Programmation/RogerioBarbosa/site/images/" + this.picture.filename);
  4.       }

Qui remplace,
Code: [ Select ]
mc.picture = pixArray[i];

      // Adds a event listener to the thumbnail so that when its clicked
      // it loads a picture in the photobucket
      mc.onRelease = function () {
        _root.scene_mc.large_pic_mc.loadMovie("file://d:/Programmation/RogerioBarbosa/site/images/" + mc.picture.filename);
      }
  1. mc.picture = pixArray[i];
  2.       // Adds a event listener to the thumbnail so that when its clicked
  3.       // it loads a picture in the photobucket
  4.       mc.onRelease = function () {
  5.         _root.scene_mc.large_pic_mc.loadMovie("file://d:/Programmation/RogerioBarbosa/site/images/" + mc.picture.filename);
  6.       }
Strong with this one, the sudo is.
  • posidan
  • Newbie
  • Newbie
  • No Avatar
  • Inscription: Oct 25, 2004
  • Messages: 11
  • Status: Offline

Message Octobre 27th, 2004, 7:04 pm

woohoo again!

ok, de l'ensemble des administrateurs, c'est le meilleur. Rapide et efficace des réponses, je vous remercie beaucoup.

id aimerait savoir si...dans votre première réponse, vous avez dit que l'action de la charge à zéro le onRelease événement à chaque fois.....

d'être un programmeur, je vois MCs comme des objets, dont ils sont, mais si id faire une boucle comme ça à dire, java, id créer des objets et leurs attributs ne sera jamais à zéro...y at-il un concept i ne sont pas ici, im apprentissage rapide, mais comme id de comprendre pourquoi j'ai obtenu ces erreurs (je veux dire, ce que les causes, quelle est l'action de la pile quand je fais une boucle comme je l'ai fait...)

si vous avez le temps, évidemment.
merci
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Octobre 27th, 2004, 9:51 pm

Vous ne savez pas pourquoi Macromedia a décidé de faire de cette manière mais je pense deviner theyre comme,
L'object / mc est un conteneur, si somthing est chargé dans ce conteneur puis les actions prévues pour ce conteneur avant mai ou ne pas être nécessaires mai provoquer des erreurs pour les conteneurs de nouveaux contenus. Meilleure réinitialisation thoose actions nulle de manière à éviter des erreurs.

Maintenant, si vous loadMovie et configurer votre chargeur de céder l'événement handelers une fois son contenu a été chargé, il n'est pas nécessaire pour un sous-mC de charger le contenu dans. Utilisation 3ème partie chargeur classes ont tendance à nix que si la capacité :( Je trouve cela plus facile à charger uniquement les choses en sous-mcs sauter et essayer de Syncronize tout.
Strong with this one, the sudo is.

Afficher de l'information

  • Total des messages de ce sujet: 9 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 39 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC