begin process at 2012 05 27 01:20:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Multimédia

 > 

Image

 > 

l'image suivante ne se redimensionne pas


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

l'image suivante ne se redimensionne pas

jeudi 3 mai 2007 à 11:29:19 | l'image suivante ne se redimensionne pas

Miss1

Comme la question que j'avais poser n'a pas recu de réponse je la repose de nouveau.

J'ai decidé de crée un album photo , ce qui se passe c'est que ma premier photo se redimmensionne et se possitionne dans le clip, se qui n'est pas le cas pour les suivantes qui reste en taille réel.
Je n'arrive pas a trouver d'ou viens mon probleme donc si on pouvais m'aider se serai gentil

voici mon code:

//declaration XML
photos_xml = new XML();
photos_xml.ignoreWhite = true;
// fonction
photos_xml.onLoad = function(ok)

{
 //initialisation des variables
 if (ok) {
  noeuds = photos_xml.firstChild.childNodes;
  // on se positionne au second niveau
  nbrPhotos = noeuds.length;
  // on récupère le nombre de noeuds à ce niveau
  premierePhoto = this.firstChild.firstChild;
  // on sélectionne le premier noeud
  dernierePhoto = this.firstChild.lastChild;
  // position de l'image
  // on sélectionne le dernier noeud
  enCours = premierePhoto;
  // enCours correspond au noeud en cours d'affichage
  // ici, la premiere photo sera donc la premiere affichée
  affichePhoto(enCours);
  // on affiche la photo du premier noeud
 }
};
//charegement du fichier XML
photos_xml.load("photos.xml");
// affichage de la photo
function affichePhoto(photo) {
//là il se passe que photo.attributes.fichier
//remplace Ecran et prend toutes ses caractéristiques, _x, _y, _rotation etc..
//on crée le clip vide dans lequel on va loader notre image (on le nomme container et on lui donne la première profondeur libre)
var conteneur:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
//on loade notre image (ou notre swf) dans le clip vide
conteneur.loadMovie(photo.attributes.fichier);
//à chaque fps, un événement enterFrame est déclenché par flash, on définit un écouteur sur cet événement : à chaque fps, le code entre { } va être exécuté (ce qui va nous permettre de tester à chaque passage si le chargement est fini ou pas).
this.onEnterFrame = function():Void { 
//on définit une variable charge dans laquelle on met le nombre de bytes qui ont déjà été chargés par le loadMovie (dans le clip conteneur) 
var total:Number = conteneur.getBytesTotal();
//on définit une variable total dans laquelle on stocke le nombre de bytes total de notre image (ou swf)
var charge:Number = conteneur.getBytesLoaded();
//on calcule le pourcentage chargé (arrondi avec le Math.round) et on le stocke dans la variable pourcent
var pourcent:Number = Math.round(charge/total*100); 

//on teste si le pourcentage = 100 pour savoir si le chargement est terminé
if (pourcent == 100) {
 
//si oui, le chargement est fini, on supprime lécouteur pour ne plus exécuter tout ça     
delete this.onEnterFrame;
//je place mon image dans le clip.    
conteneur._x = 133.0;
conteneur._y = 78.0;
//ici je redimensionne les images
conteneur._width = 317.9;
conteneur._height= 256.0;
}else{   
//ici le chargement nest pas terminé, on peut par exemple faire progresser une progressbar (en fonction de la valeur de pourcent pour montrer lavancement du chargement.
}}

textes = photo.attributes.num + "/" + nbrPhotos + " : " + photo.attributes.desc;

}



 

  Miss1

jeudi 3 mai 2007 à 14:12:26 | Re : l'image suivante ne se redimensionne pas

Orange73

Membre Club
Tu met :
conteneur._x = 133.0;
conteneur._y = 78.0;

et
conteneur._width = 317.9;
conteneur._height= 256.0;

alors que le clip vide que tu as créé via createEmptyMovieClip (); est nommé "container".

Alors soit change
var conteneur:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
en
var conteneur:MovieClip = this.createEmptyMovieClip("conteneur", this.getNextHighestDepth());

Soit change"conteneur"
en "container" de tes position _x et _y, et _width et height


jeudi 3 mai 2007 à 14:57:23 | Re : l'image suivante ne se redimensionne pas

Miss1

J'ai essayer mais quand je modifie en containeur il ne me la met plus dans le clip et ne me la redimmensionne plus

 Miss1

jeudi 3 mai 2007 à 15:16:40 | Re : l'image suivante ne se redimensionne pas

Orange73

Membre Club
Essaye sa :

/declaration XML
photos_xml = new XML();
photos_xml.ignoreWhite = true;
// fonction
photos_xml.onLoad = function(ok)

{
 //initialisation des variables
 if (ok) {
  noeuds = photos_xml.firstChild.childNodes;
  // on se positionne au second niveau
  nbrPhotos = noeuds.length;
  // on récupère le nombre de noeuds à ce niveau
  premierePhoto = this.firstChild.firstChild;
  // on sélectionne le premier noeud
  dernierePhoto = this.firstChild.lastChild;
  // position de l'image
  // on sélectionne le dernier noeud
  enCours = premierePhoto;
  // enCours correspond au noeud en cours d'affichage
  // ici, la premiere photo sera donc la premiere affichée
  affichePhoto(enCours);
  // on affiche la photo du premier noeud
 }
};
//charegement du fichier XML
photos_xml.load("photos.xml");
// affichage de la photo
function affichePhoto(photo) {
//là il se passe que photo.attributes.fichier
//remplace Ecran et prend toutes ses caractéristiques, _x, _y, _rotation etc..
//on crée le clip vide dans lequel on va loader notre image (on le nomme container et on lui donne la première profondeur libre)
var conteneur:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
//on loade notre image (ou notre swf) dans le clip vide
conteneur.loadMovie(photo.attributes.fichier);
//à chaque fps, un événement enterFrame est déclenché par flash, on définit un écouteur sur cet événement : à chaque fps, le code entre { } va être exécuté (ce qui va nous permettre de tester à chaque passage si le chargement est fini ou pas).
this.onEnterFrame = function():Void { 
//on définit une variable charge dans laquelle on met le nombre de bytes qui ont déjà été chargés par le loadMovie (dans le clip conteneur) 
var total:Number = conteneur.getBytesTotal();
//on définit une variable total dans laquelle on stocke le nombre de bytes total de notre image (ou swf)
var charge:Number = conteneur.getBytesLoaded();
//on calcule le pourcentage chargé (arrondi avec le Math.round) et on le stocke dans la variable pourcent
var pourcent:Number = Math.round(charge/total*100); 

//on teste si le pourcentage = 100 pour savoir si le chargement est terminé
if (pourcent == 100) {
 
//si oui, le chargement est fini, on supprime lécouteur pour ne plus exécuter tout ça     
delete this.onEnterFrame;
//je place mon image dans le clip.    
container._x = 133.0;
container._y = 78.0;
//ici je redimensionne les images
container._width = 317.9;
container._height= 256.0;
}else{   
//ici le chargement nest pas terminé, on peut par exemple faire progresser une progressbar (en fonction de la valeur de pourcent pour montrer lavancement du chargement.
}}

textes = photo.attributes.num + "/" + nbrPhotos + " : " + photo.attributes.desc;

}



jeudi 3 mai 2007 à 15:27:13 | Re : l'image suivante ne se redimensionne pas

Darkrats

Salut,

Désolé de ne pas avoir répondu à ton post précédent.
J'ai regardé ton code, en fait, je n'arrive même pas à comprendre comment tu arrives à afficher les images suivantes car tu ne lances la fonction "afficherPhoto" qu'une seule fois !

Le principe que tu dois appliquer pour tes images est celui ci :
  • tu dois ajouter une photo
  • attendre le chargement de cette image
  • une fois chargée, tu la retouches (redimension etc ... ce que tu veux)
  • une fois modifiée, tu relances l'affichage pour la photo suivante
Voici ton code, je mets en couleur les ajouts que j'ai effectués
Code :
    //declaration XML
    photos_xml = new XML();
    photos_xml.ignoreWhite = true;
   
    var nbrPhotos            :Number    = 0;
    var numeroPhoto_enCours    :Number = 0;

   
    // fonction
    photos_xml.onLoad = function(ok){
         //initialisation des variables
        if (ok) {
            noeuds = photos_xml.firstChild.childNodes;
            // on se positionne au second niveau
            nbrPhotos = noeuds.length;

           
numeroPhoto = 0;
            // on récupère le nombre de noeuds à ce niveau
            premierePhoto = this.firstChild.firstChild;
            // on sélectionne le premier noeud
            dernierePhoto = this.firstChild.lastChild;
            // position de l'image
            // on sélectionne le dernier noeud
            enCours = premierePhoto;
            // enCours correspond au noeud en cours d'affichage
            // ici, la premiere photo sera donc la premiere affichée
            affichePhoto(enCours);
            // on affiche la photo du premier noeud
        }
    };
    //charegement du fichier XML
    photos_xml.load("photos.xml");
    // affichage de la photo
    function affichePhoto(photo) {
        //là il se passe que photo.attributes.fichier
        //remplace Ecran et prend toutes ses caractéristiques, _x, _y, _rotation etc..
        //on crée le clip vide dans lequel on va loader notre image (on le nomme container et on lui donne la première profondeur libre)
        var conteneur:MovieClip = this.createEmptyMovieClip(
"container" + numeroPhoto, this.getNextHighestDepth());
        //on loade notre image (ou notre swf) dans le clip vide
        conteneur.loadMovie(photo.attributes.fichier);
        //à chaque fps, un événement enterFrame est déclenché par flash, on définit un écouteur sur cet événement : à chaque fps, le code entre { } va être exécuté (ce qui va nous permettre de tester à chaque passage si le chargement est fini ou pas).
        this.onEnterFrame = function():Void {
            //on définit une variable charge dans laquelle on met le nombre de bytes qui ont déjà été chargés par le loadMovie (dans le clip conteneur)
            var total:Number = conteneur.getBytesTotal();
            //on définit une variable total dans laquelle on stocke le nombre de bytes total de notre image (ou swf)
            var charge:Number = conteneur.getBytesLoaded();
            //on calcule le pourcentage chargé (arrondi avec le Math.round) et on le stocke dans la variable pourcent
            var pourcent:Number = Math.round(charge/total*100);
            //on teste si le pourcentage = 100 pour savoir si le chargement est terminé
            if (pourcent == 100) {
                //si oui, le chargement est fini, on supprime lécouteur pour ne plus exécuter tout ça    
                delete this.onEnterFrame;
                //je place mon image dans le clip.   
                conteneur._x = 133.0;
                conteneur._y = 78.0;
                //ici je redimensionne les images
                conteneur._width = 317.9;
                conteneur._height= 256.0;
                // Relancement de la fonction pour la photo suivante :
                if(numeroPhoto_enCours < nbrPhotos){
                    numeroPhoto_enCours++;
                    affichePhoto(photos_xml.firstChild[numeroPhoto_enCours]);
                }else{
                    trace("fin du chargement de toutes les images");
                }

            }else{  
        //ici le chargement nest pas terminé, on peut par exemple faire progresser une progressbar (en fonction de la valeur de pourcent pour montrer lavancement du chargement.
            }
        }
        textes = photo.attributes.num + "/" + nbrPhotos + " : " + photo.attributes.desc;
    }

Fin code

1.    Le fait d'initialiser les deux variables en dehors des fonctions me permet de pouvoir les utiliser à l'extérieur de cette fonction.
       En effet, une variable créée dans une fonction est effacée une fois que la fonction est finie.
       Je sauvegarde donc le numéro du noeud actuellement traîté.

2.    Je concatène le numéro du noeud dans le nom du clip créé. Si je ne le fais pas, il va à chaque passage écraser le clip en le recréant.

3.    Une fois que l'image est totalement chargée, je vérifie que le noeud sur lequel je travaille n'est pas le dernier. Si c'est le cas, j'arrête le calcul. Dans le cas contraire, je lui demande de traîter le noeud suivant.

Je n'ai pas testé, mais je pense qu'avec ça, ça devrait aller.

A+ et bon codage

--------- Darkrats ---------
la loi est dure mais c'est la loi
 -------- Infograpix --------
jeudi 3 mai 2007 à 15:53:02 | Re : l'image suivante ne se redimensionne pas

Miss1

 bon je vais déprimer dans mon coin car sa ne me redimmenssionne tj pas mes photos

 Miss1

jeudi 3 mai 2007 à 15:54:38 | Re : l'image suivante ne se redimensionne pas

Miss1

je suis null ou quoi se qui m'enerve c que c okay pour la premiere et que pr la second c mort

 Miss1



Cette discussion est classée dans : image, xml, clip, photo, conteneur


Répondre à ce message

Sujets en rapport avec ce message

Chargement dynamique de photo et redimensionnement [ par archi32 ] Bonjour !J'essai de charger une photo et de la redimensioner avant affichage...voici mon code :createEmptyMovieClip("conteneur", 1);conteneur.loadMovi Galerie d'images Dynamique sans PHP ni XML, c possible???? [ par ganja31200 ] Bien le bonjour a ceux qui liront mon message.....   Alors en fait, je désire créer une galerie d'images DYNAMIQUEMENT  sans passer par une base de do Diaporama multiple a partir d'un fichier xml ...besoin d'aide !!! [ par ViNCiNTO ] Bonjour, je cherche à créer un diaporama a partir d'un fichier xml. Pour l'instant j'arrive à afficher les images une par une (et leur nom : legende) Galerie photos Flash PHP/mySQL probleme clip en bouton [ par sh0op ] Bonjour à tous apres avoir chercher sur pleins de sujet équivalent je n'ai pu trouver la réponse, je pose alors ici mon probleme et mes sources de ce charger un .png dans mon clip [ par stefbuet ] salut, j'ai un pti problem : j'ai un clip en forme de rond bleu nommé photo et un fichier dans le même repertoire que mon animation image.png.je voudr je n'arrive pas a centré mon image dans le clip [ par Miss1 ] Bonjour, je debute en flash et surtout en XML.Je souhaite créer un album photo , pour cela j'ai dans ma page fla crée un clip que j'ai appeler ecran.L je n'arrive pas a centré mon image dans le clip [ par Miss1 ] Bonjour, je debute en flash et surtout en XML.Je souhaite créer un album photo , pour cela j'ai dans ma page fla crée un clip que j'ai appeler ecran.L charger une image dans un clip via xml [ par cjerome ] Bonjour, je voudrais charger une image dans un clip sur la scene, mais via via xml, comment fait oooooooon??je vous remercie deja pour la reponse!jero xml/photo/conteneur [ par punkprod ] salut à tous!!!j'ai besoin d'1 ptit coup d'pouceje recherche un code source afin de charger des photos en xml depuis un conteneur (est-ce que vous voy flash et xml [ par ramonzarat ] Salut à tous J'ai un bouton 1 et un bouton 2. ces 2 boutons mènent au même swf conteneur et chargeur de xml. Je souhaiterai appeler l' image 1 conten


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,231 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales