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 :

Problème d'images cliquables


Sujet :

Flash

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Problème d'images cliquables
    Bonsoir,

    Je réalise actuellement un diaporama en flash. Pour cela, j'utilise un fichier xml.
    Le chargement des images se passent sans problème mais le problème survient quand je veux cliquer sur une image.
    En effet, quand je clique sur n'importe quel image, il me charge toujours la même image, la dernière inséré dans mon fichier xml.
    Comment faire pour que quand je clique sur n'importe quel image, on affiche l'image cliquée en grand format ?

    Voici le code actionscript:
    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
    this.createEmptyMovieClip("diaporama", 0);
    diaporama._y = 0;
    
    this.createEmptyMovieClip("cadre", 1);
    with(cadre){
    	_y = 200;
    	_x = 0;
    	lineStyle(2, 0xD0D0D0, 100); //Définit le cadre de couleur grise.
    	moveTo(10,10); // On se place au coin en haut à gauche 
    	lineTo(512, 10); // Coin en haut à droite - lineTo(x, y)
    	lineTo(512, 384); // Coin en bas à droite
    	lineTo(10, 384); // Coin en bas à gauche
    	lineTo(10, 10);// Et on retourne en haut à gauche 
    }
    
    var liste_photos:XML = new XML();
    liste_photos.ignoreWhite = true;
    liste_photos.load("diapos.xml");
    
    liste_photos.onLoad = function(succes) {
    	if(succes) {
    	//Codes à éxécuter en cas de chargement du xml
    		var noeudRacine = this.firstChild.childNodes;
    		var longueur = noeudRacine.length;
    		
    		for(var i = 0; i<longueur; i++) {
    			var img = noeudRacine[i].attributes.src; //Récupère le titre de l'image
    			
    			//Création d'un clip vide dans le clip "diaporama"
    			diaporama.createEmptyMovieClip("image"+i, i+10);
    			diaporama["image"+i]._xscale = diaporama["image"+i]._yscale = 5; //Redimension des images
    			diaporama["image"+i].loadMovie(img); //Charge l'image
    			
    			//Positionnement des images
    			diaporama["image"+i]._x = i*130;
    			diaporama["image"+i]._y = 0;
    			
    			//Agrandissement des images quand on clique dessus
    			diaporama.onRelease = function() {
    				grand_format(img); //Problème: Affiche toujours la même image, ici "IM000698.jpg".
    			}
    		}
    	}else {
    		throw new Error("Erreur lors du chargement du XML");
    	}
    }
    
    function grand_format(image){
    	//Affiche l'image en grand format
    	cadre._xscale = cadre._yscale = 25;
    	cadre.loadMovie(image);
    }
    Et voici mon fichier xml :
    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" ?>
    <album>
    <img src="IM000587.jpg" title="1"/>
    <img src="IM000589.jpg" title="2"/>
    <img src="IM000590.jpg" title="4"/>
    <img src="IM000591.jpg" title="5"/>
    <img src="IM000698.jpg" title="6"/>
    </album>
    Si quelqu'un pourrait m'aider, ce serait très sympa.
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    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
    this.createEmptyMovieClip("diaporama", 0);
    diaporama._y = 0;
    
    this.createEmptyMovieClip("cadre", 1);
    with(cadre){
    	_y = 200;
    	_x = 0;
    	lineStyle(2, 0xD0D0D0, 100); //Définit le cadre de couleur grise.
    	moveTo(10,10); // On se place au coin en haut à gauche 
    	lineTo(512, 10); // Coin en haut à droite - lineTo(x, y)
    	lineTo(512, 384); // Coin en bas à droite
    	lineTo(10, 384); // Coin en bas à gauche
    	lineTo(10, 10);// Et on retourne en haut à gauche 
    }
    
    var liste_photos:XML = new XML();
    liste_photos.ignoreWhite = true;
    liste_photos.load("diapos.xml");
    
    liste_photos.onLoad = function(succes) {
    	if(succes) {
    	//Codes à éxécuter en cas de chargement du xml
    		var noeudRacine = this.firstChild.childNodes;
    		var longueur = noeudRacine.length;
    		
    		for(var i = 0; i<longueur; i++) {
    			var img = noeudRacine[i].attributes.src; //Récupère le titre de l'image
    			
    			//Création d'un clip vide dans le clip "diaporama"
    			diaporama.createEmptyMovieClip("image"+i, i+10);
    			diaporama["image"+i]._xscale = diaporama["image"+i]._yscale = 5; //Redimension des images
    			diaporama["image"+i].loadMovie(img); //Charge l'image
    			img.id = img
    			//Positionnement des images
    			diaporama["image"+i]._x = i*130;
    			diaporama["image"+i]._y = 0;
    			
    			//Agrandissement des images quand on clique dessus
    			diaporama["image"+i].onRelease = function() {
    				grand_format(img); //Problème: Affiche toujours la même image, ici "IM000698.jpg".
    			}
    		}
    	}else {
    		throw new Error("Erreur lors du chargement du XML");
    	}
    }
    
    function grand_format(image){
    	//Affiche l'image en grand format
    	cadre._xscale = cadre._yscale = 25;
    	cadre.loadMovie(img.id);
    }
    ça devrait fonctionner, ça fait un bout de temps que je ne l'ai plus fait, mais si mes souvenirs sont bons, j'avais fait de cette façon, le problème est que flash ne garde pas en mémoire, sauf en donnant un indice (id) et en assignant le nom du fichier à l'indice.... tiens moi au courant si ça fonctionne de cette façon si tu veux bien..

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je te remercie de m'avoir répondu mais cela ne marche toujours pas.
    Ton idée d'assigner un indice me semble bonne mais quand j'éxécute le code, mes images ne sont plus cliquables :

    Le problème survient surement ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Agrandissement des images quand on clique dessus
    			diaporama["image"+i].onRelease = function() {
    			grand_format(img); //Problème: Affiche toujours la même image, ici "IM000698.jpg".
    }
    J'ai essayé de remplacer diaporama.onRelease par diaporama["image"+i].onRelease, j'obtiens le message d'erreur suivant :
    Error opening URL "file:///C|/Documents%20and%20Settings/Images/undefined"

    Si tu peux m'aider, ce serait très gentil.
    A+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    en relisant le code, je me rends compte qu'en fait, il faut assigner l'id à 'diaporama["image"+i]' et non à img.....

    si ça ne marche toujours pas, envoie le fla, je ferai quelques tests, ça devrait fonctionner, je l'ai déjà fait pour un diapo, mais je n'utilisait pas de fonction pour l'agrandissement, à mon sens ça doit revenir du pareil au même......

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 165
    Points : 192
    Points
    192
    Par défaut
    j'ai remanié un peu ton code, en effet, le problème venait du fait que le clip "diaporama" créé, n'était pas instancié, flash ne savait donc pas sur lequel on cliquait....j'ai donc créé un clip "diaporama" dans lequel j'ai inséré un clip nommé "testsymb" qui chargera l'image voulue......

    ce clip étant créé, j'ai utilisé la méthode attachmovie, car celle-ci peut instancier un clip....

    ça donne donc ceci:


    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
    //this.createEmptyMovieClip("diaporama", 0);
    //diaporama._y = 0;
    this.createEmptyMovieClip("cadre", 1);
    with(cadre){
    	_y = 200;
    	_x = 200;
    	lineStyle(4, 0xD0D0D0, 100);
    	moveTo(10,10); // On se place au coin en haut à gauche
    	lineTo(300, 10); // Coin en haut à droite
    	lineTo(300, 300); // Coin en bas à droite
    	lineTo(10, 300); // Coin en bas à gauche
    	lineTo(10, 10);// Et on retourne en haut à gauche 
    }
     
    var liste_photos:XML = new XML();
    liste_photos.ignoreWhite = true;
    liste_photos.load("diapos.xml");
     
    liste_photos.onLoad = function(succes) {
    	if(succes) {
    	//Codes à éxécuter en cas de chargement du xml
    		var noeudRacine = this.firstChild.childNodes;
    		var longueur = noeudRacine.length;
     
    		for(var i = 0; i< longueur; i++) {
    			var img = noeudRacine[i].attributes.src; //Récupère le titre de l'image
     
    			//Création d'un clip vide dans le clip "diaporama"
    			//diaporama.createEmptyMovieClip("image"+i, i+10);
    			_root.attachMovie("diaporama","diaporama"+i, i + 10);
    			_root["diaporama"+i]._xscale = _root["diaporama"+i]._yscale = 5; //Redimension des images
    			_root["diaporama"+i].testsymb.loadMovie(img); //Charge l'image
    			_root["diaporama"+i].id = img;
    			trace(_root["diaporama"+i].id);
    			//Positionnement des images
    			_root["diaporama"+i]._x = i*130;
    			_root["diaporama"+i]._y = 0;
     
    			//Agrandissement des images quand on clique dessus
    			_root["diaporama"+i].onRelease = function(teste) {
    				cadre._xscale = cadre._yscale = 20;
    				cadre.loadMovie(this.id);
     
    			}
    		}
    	}else {
    		throw new Error("Erreur lors du chargement du XML");
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème image cliquable
    Par happyboon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 19/01/2013, 10h49
  2. Problème image cliquable
    Par guigui86 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 22/05/2009, 12h13
  3. [javascript] problème insertion image
    Par Pwill dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2005, 16h12
  4. problème dessiner image dans fenêtre
    Par raoulman dans le forum MFC
    Réponses: 5
    Dernier message: 13/12/2004, 15h44
  5. Problème d'image avec DirectX9 et c# VS.net...
    Par lilly_lilly dans le forum DirectX
    Réponses: 1
    Dernier message: 02/03/2004, 14h02

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