IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH 8] [XML] Chargement d'images dans des mc en actionscript


Sujet :

Flash

  1. #1
    Invité
    Invité(e)
    Par défaut [FLASH 8] [XML] Chargement d'images dans des mc en actionscript
    bonsoir à tous,
    d'apres un tuto, j'ai créé un bandeau panoramique qui boucle sur lui meme. Pour cela j'ai créé en AS 2 movie clips conteneurs qui comportent chacuns autant de movieclip qu'il y a d'images dans mon xml. Quand ma souris est du coté droit, les conteneurs défilent vers la droite et inversement vers la gauche.
    Le probleme c'est quand je teste mon anim, flash plante (il me semble que c'est mauvais signe) ou me renvoie une alerte qui me préviens que le script va faire ramer l'application .
    Voila mon code AS (sur l'image 1 de la scène 1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    //on cree un objet XML
    var photo_xml: XML = new XML();
    photo_xml.ignoreWhite = true;
     
    photo_xml.onLoad = function(ok){
    	if(ok){
    		//trace ("chargement réussi"); ok
    		noeudRacine=photo_xml.firstChild;
    		noeuds=noeudRacine.childNodes;
    		//nombre de photo
    		nbPhotos=noeuds.length;
    	}
    }
    /////////////////////////////////
    // appel du xml au chargement //
    photo_xml.load("bibliotheque.xml");
     
     
    // creation objet
    _root.createEmptyMovieClip("conteneur01",1);
    //dans conteneur on cree autant de mc qu'il y a d'images
    for (i=0; i<=nbPhotos; i++){
    	conteneur01.createEmptyMovieClip("evennement_mc"+i, i);
    	loadMovie(img.attributes.chemin, "evennement_mc"+i);
    	i++;
    }
    //idem avec le second:
    _root.createEmptyMovieClip("conteneur02",1);
    for (i=0; i<=nbPhotos; i++){
    	conteneur02.createEmptyMovieClip("evennement_mc"+i, i);
    	loadMovie(img.attributes.chemin, "evennement_mc"+i),
    	i++;
    }
     
     
    //les variables
     
    var largeur_scene = 600;
    var largeur_conteneur = conteneur01._width;
     
     
     
     
    _root.onEnterFrame = function(){
    	deplacement = _xmouse;
    	deplacement = deplacement - (largeur_scene/2);
    	deplacement = deplacement/20;
     
    	conteneur01._x = conteneur01._x + deplacement;
    	conteneur02._x = conteneur02._x + deplacement;
     
    	//droite
    	if(conteneur01._x>=largeur_scene){
    		conteneur01._x = conteneur02._x - largeur_conteneur;
    		}
    	if(conteneur02._x>=largeur_scene){
    		conteneur02._x = conteneur01._x - largeur_conteneur;
    		}
     
     
    	//gauche
    	 if (conteneur01._x+largeur_image<=0){
    		conteneur01._x=conteneur02._x+largeur_conteneur;
    		}
    		if (conteneur02._x+largeur_image<=0){
    		conteneur02._x=conteneur01._x+largeur_conteneur;
    		}
     
     
    }//fin du enterframe
     
    stop();
    le fichier xml s'appele bibliotheque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <galerie>
    	<img num="1" nom="fly1" date="10/10/2007" legende="légende 1" chemin="images/a.jpeg" lien="http://www.google.fr">
    	<img num="2" nom="fly2" date="10/10/2006" legende="légende 2" chemin="images/b.jpeg" lien="http://www.google.fr">
    	<img num="3" nom="fly3" date="10/10/2005" legende="légende 3" chemin="images/c.jpeg" lien="http://www.google.fr">
    </galerie>
    mes images sont bien dans le dossier images et elles sont correctement nommées.
    Je ne vois pas ou est le probleme....
    Merci par avance à tout ceux qui m'aideront
    bonne nuit les codeurs///***^_^***///

  2. #2
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Bon, je n'ai pas testé (ma version d'éval est finie :'( ) mais je crois voir un petit problème.
    Quand tu créé tes conteneurs, les 2 sont à la même profondeur, 1. Tu devrais mettre des profondeurs différentes, faute de quoi un seul de tes MC sera affiché.
    Sinon je ne connais pas trop le "onEnterFrame", mais c'est une boucle infinie il me semble. Il faut prévoir une sortie, faute de quoi il boucle, il boucle, et il te dis "ça rame, continuer?" (en gros )

  3. #3
    Invité
    Invité(e)
    Par défaut
    salut
    effectivement les 2 conteurs sont à la meme profondeur mais si c'était ca le problème, le second devrait remplacer le premier (donc j'en verrais au moins un)....
    Quand à la boucle c'est normal si elle est infinie c'est pour ne pas avoir à revenir au début du diaporama (comme une image à 360°).
    En tout cas je vais essayer de changer le profondeurs on sait jammais...
    Merci de ton aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    coucou me revoila!
    bon j'ai réussi a regler une partie du problemme avec un peu d'aide mais c'est pas tout a fait ca....
    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    /*créés graphiquements:
    thumbnails 
    title_txt
    loader
    */
    /*créés par script
    thumbnail+i
    thumbnail_image
    */
    photo = new XML();
    photo.ignoreWhite = true;
    photo.onLoad = function(success) {
    	noeudRacine = photo_xml.firstChild;
    	var noeuds:Array = noeudRacine.childNodes;
    	//nombre de photo
    	//var nbPhoto:Number = noeuds.length;
    	//portfolioTag = this.firstChild;
    	var nbPhoto = this.firstChild.childNodes.length;
    	trace (nbPhoto);
    	spacing = 20;
    	_root.createEmptyMovieClip("conteneur01",this.getNextHighestDepth());
    	conteneur01._x = 0;
    	conteneur01._y= 50;
    	for (i=0; i<nbPhoto; i++) {
    		this.picHolder = this.firstChild.childNodes[i];
    		this.thumbHolder = conteneur01.createEmptyMovieClip("thumbnail"+i, i);//mc thumbHolder
    		this.thumbHolder._x = 422*i+i*spacing;
    		this.thumbLoader = this.thumbHolder.createEmptyMovieClip("thumbnail_image", 0);//creationd du mc thumbnail_image
    		this.thumbLoader.loadMovie(this.picHolder.attributes.chemin);//dans le mc thumbloader on charge les vignettes
    		trace(this.picHolder.attributes.chemin);
    		this.thumbHolder.title = this.picHolder.attributes.legende;
    		this.thumbHolder.main = this.picHolder.attributes.main;
    		this.thumbHolder.onRelease = function() {
    			loader.loadMovie(this.main);
    			title_txt.text = this.title;
    		};//fin de fonction
    	}//fin de for
    	duplicateMovieClip(conteneur01,"conteneur02", this.getNextHighestDepth());
    	conteneur02._x = conteneur01._width;
    };//fin de function(success)
    photo.load("galerie.xml");
    //les variables
     
    var largeur_scene = 600;
    var largeur_conteneur = conteneur01._width;
     
     
     
     
    _root.onEnterFrame = function(){
    	deplacement = _xmouse;
    	deplacement = deplacement - (largeur_scene/2);
    	deplacement = deplacement/20;
     
    	conteneur01._x = conteneur01._x + deplacement;
    	conteneur02._x = conteneur02._x + deplacement;
     
    	//droite
    	if(conteneur01._x>=largeur_scene){
    		conteneur01._x = conteneur02._x - largeur_conteneur;
    		}
    	if(conteneur02._x>=largeur_scene){
    		conteneur02._x = conteneur01._x - largeur_conteneur;
    		}
     
     
    	//gauche
    	 if (conteneur01._x+largeur_image<=0){
    		conteneur01._x=conteneur02._x+largeur_conteneur;
    		}
    		if (conteneur02._x+largeur_image<=0){
    		conteneur02._x=conteneur01._x+largeur_conteneur;
    		}
     
     
    }//fin du enterframe
     
    stop();
    tout va bien quand je ne duplique pas le clip conteneur01 mais dès que j'ajoute cette ligne, plus rien ne s'affiche....

    par contre si je met this.duplicatemoviclip, l'un des conteneur s'affiche mais pas l'autre.Pourtant ils sont a des niveaux différents.
    Dernière modification par Invité ; 05/03/2007 à 23h31.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/06/2015, 22h58
  2. [CS3] chargement d'images dans flash
    Par arzack dans le forum Flash
    Réponses: 0
    Dernier message: 16/08/2012, 09h03
  3. Chargement d'images dans Flash : mise à jour, cache, etc.
    Par Domi69 dans le forum Intégration
    Réponses: 2
    Dernier message: 24/10/2008, 16h25
  4. Chargement d'images dans des formes différentes
    Par SmileSoft dans le forum C++Builder
    Réponses: 4
    Dernier message: 23/04/2008, 18h42
  5. [JLabel] Chargement d'image dans une JFrame
    Par mr.t dans le forum Composants
    Réponses: 10
    Dernier message: 27/01/2005, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo