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

ActionScript 3 Discussion :

Une galerie photo


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut Une galerie photo
    Bonjour,


    J'ai commencé à faire une galerie photo en AS3. Quand je clique sur une image de la galerie elle s'affiche en grand. Mon problème est que lorsque la photo est zoomée elle ne se met pas au premier plan du coup on voit les autres photos.
    Et je ne sais pas comment masquer les autres images quand une est zoomé.

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    	public class GaleriePhoto  extends Sprite
    	{
    		private var gallerie:Rect;
    		private var _pile:LoaderMax = new LoaderMax();
    		private var _tablo:Array = [];
    		private var xml:XML;
     
    		// Indice de la vignette en cours de chargement
    		private var imageActu:int = 0;
    		private var caseName:Case;
     
    		// Référence le conteneur pour les vignettes. Point de référence au centre de la scène
            private var _ctrC:Sprite;
     
    		private var c:Case;
    		var img:Sprite;
    		private var pX:int;
    		private var pY:int;
    		private var ekar:int;
    		private var sp:Sprite;
    		public var _sprite:Sprite;
     
     
    		public function GaleriePhoto(_xml:XML) 
    		{
     
    			xml = _xml;
    			trace("galeriePhoto");
    			trace(_xml);
    			//gallerie = new Rect(-600, -300, int(G.$wST), int(G.$hST), 0xff0000);
    			gallerie = new Rect(0, 0, int(G.$wST), int(G.$hST), 0xff0000);
    			addChild(gallerie);
     
    			for (var i:int = 0; i < _xml.*.length(); i++ )
    			{
    				trace("fichier photo :", _xml.photo.fichier[i]);
    				_pile.append(new ImageLoader(_xml.photo.fichier[i], { name:'image'+i } ));
    			}
     
    			_pile.addEventListener(LoaderEvent.COMPLETE, pileComplet);
    			_pile.load();
     
    			G.$wFull = G.$wST - 40;
                G.$hFull = G.$hST - 40;
     
                // Création du conteneur
                _ctrC = new Sprite();
                addChild(_ctrC);
    		}
     
    		private function pileComplet(e:LoaderEvent):void 
    		{
    			trace("Pile complete");
    			//buildGrille();
    			buildGalerie();
    		}
     
    		private function buildGalerie():void
    		{
    			img	= _pile.getContent('image0');
    			/*trace("image width *0.5 : " + img.width * .5, "image width : " + img.width);
    			trace("image height *0.5 : " + (G.$hST - img.height) * .5, "image height : " + (G.$hST - img.height));*/
    			pX = img.width * .5;
    			pY = (G.$hST - img.height) * .5;
    			ekar = 10;
     
     
    			for (var i:int = 0 ; i < xml.*.length() ; i++)
    			{
    				trace("PILE", i)
    				sp = new Sprite();
    				sp.x = pX;
    				sp.y = pY;
    				sp.mouseChildren = false;
    				addChild(sp);
     
    				imageActu = i;
    				img	= _pile.getContent('image' + i);
    				_tablo.push(img);
    				img.x = img.width * -.5;
    				img.y = img.height * -.5;
    				sp.addChild(img);
    				pX += img.width + ekar;
     
    				sp.addEventListener(MouseEvent.CLICK, zoom_image);
    			}
    		}
     
    		private function zoom_image(e:MouseEvent):void 
    		{
    			var ratio:Number = Math.min(stage.stageWidth / e.currentTarget.width, stage.stageHeight / e.currentTarget.height);
    			e.currentTarget.scaleX = e.currentTarget.scaleY = ratio;
    			e.currentTarget.removeEventListener(MouseEvent.CLICK, zoom_image);
    			e.currentTarget.addEventListener(MouseEvent.CLICK, dezoom_image);
    			e.currentTarget.x = G.$wST * .5;
    			e.currentTarget.y = G.$hST * .5;
    			//addChild(e.currentTarget.name)
    		}
     
    		private function dezoom_image(e:MouseEvent):void 
    		{
    			e.currentTarget.scaleX = e.currentTarget.scaleY = 1;
    			buildGalerie();
    			e.currentTarget.removeEventListener(MouseEvent.CLICK, dezoom_image);
    			e.currentTarget.addEventListener(MouseEvent.CLICK, zoom_image);
    		}

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    désolé la flemme de regarder le code, mais essaie de boucler sur les enfants du conteneur ou est situé l'écouteur du CLICK. Si la target (e.target) vaut l'enfant de la boucle, tu zoomes sinon tu le caches avec visible=false.

Discussions similaires

  1. Réaliser une galerie photo automatique sans php
    Par vallica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/10/2006, 10h57
  2. Une Galerie photo
    Par agbononamour dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2006, 16h20
  3. [MySQL] Système de pagination pour une galerie photo
    Par Badaboumpanpan dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/06/2006, 15h31
  4. [Système] Faire une galerie photo simple
    Par titor dans le forum Langage
    Réponses: 10
    Dernier message: 24/06/2006, 21h02

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