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 de logique mathématique dans mon script


Sujet :

Flash

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 104
    Points : 46
    Points
    46
    Par défaut Problème de logique mathématique dans mon script
    Bonjour,

    Moi et les maths on fait 2
    Ca fait quelques heures que je galère sur ce script, je vous explique :

    j'ai une galerie photo miniatures avec un bouton de navigation de part et d'autre (next et back) qui montrent respectivement chaque fois les 4 images précédentes ou suivantes, les boutons déclenchent ma fonction showThumbails en lui transmettant une variable index de 4 ou -4 en fonction du sens de navigation.

    bouton back
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    on (release) 
    {
    	showThumbails(-4,_root.theyear);
    }
    et
    bouton next

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    on(release) 
    { 
       showThumbails(4,_root.theyear);
    }
    la valeur _root.theyear me permettant de me répérer dans les différentes galeries

    voici ma fonction :

    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
     
     
    var index:Number = 0;
    var nombre:Number = 0;
     
    function showThumbails(index,year:String):Void {
    	_root.theyear = year;
    	var MovieDepthCounter:Number = 10;
    	var photoHolder:MovieClip;
    	var xPos:Number;
    	var yPos:Number = 20;
    	var photoThumb:String;
    	nombre+= index;
    	trace(nombre);	
     
    	for (var i:Number = 0; i<RootNode.childNodes.length; i++) 
    	{
     
    		if (RootNode.childNodes[i].attributes.year == year) 
    		{
    			var CategoryXML:XMLNode = RootNode.childNodes[i];
    			TotalPhotos = CategoryXML.childNodes.length;
    			trace(year+" has "+TotalPhotos+" photos");
     
    				if (((nombre+4)/4) >= Math.ceil(TotalPhotos/4)) 
    				{
    					//pr empêcher d'aller en avant qd on est à la dernière photo
    					Next_btn.enabled = false;
    					nombre=0;
     
    				} 
     
    				else 
    				{
    					Next_btn.enabled = true;
    				}
     
    				if (nombre == 0) 
    				{
    					//pr empêcher d'aller en arrière qd on est à la première photo
    					Previous_btn.enabled = false;
    					Next_btn.enabled = true;
    				} 
    				else 
    				{
    					Previous_btn.enabled = true;
    				}
     
     
     
    			for (var j:Number = 0; j<4; j++) {
    				photoThumb = CategoryXML.childNodes[j+nombre].childNodes[1].firstChild.nodeValue;
    				//photoThumb = "http://www.webdesign-4u.be/web-4u/images/portfolio/pictures/2003/botybenelux.jpg";
    				//trace(photoThumb);
    				photoHolder = this.createEmptyMovieClip("photoHolder"+j, MovieDepthCounter);
    				//trace(photoHolder);
    				xPos = 30+65*j;
    				photoHolder._x = xPos;
    				photoHolder._y = yPos;
    				var photoHolderLoader:MovieClipLoader = new MovieClipLoader();
    				photoHolderLoader.loadClip(photoThumb, photoHolder);
    				MovieDepthCounter++;
    			}
    		}
    	}
    	//fin du for
    }
    //fin de la fonction showThumbails

    dans ma galerie 1 j'ai 23 images, dans la 2ème 17, dans la 3ème 15 et dans la dernière 4. J'ai réussi à regler le bouton back correctement de manière à ce qu'il ne soit pas possible d'aller en arrière quand on est à la première photo.
    Maintenant j'aimerais limiter le bouton nexquand on est sur la dernière photo et quand on clique sur une autre année la variable nombre doit être reinitialisée pour que la navigation démarre bien à la première image de la galerie correspondante ! J'ai tenté tout ça dans les if mais je n'arrive pas à trouver la formule mathématique qui me permet de bloquer le bouton next quelque soit le nombre d'images dans la galerie !


    Merci d'avance pour votre aide !!

  2. #2
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    Si j'ai bien compris, tu connais pour chaque galerie le nombre d'images ainsi que l'intervalle dans lequel tu te trouves (si ce n'est pas le cas, il faut que tu le puisses). Supposons que tu appelles cette variable indice, prenons l'exemple suivant pour illustrer l'algo avec une gallerie de 10 images :

    indice = 1 : image1... image4
    indice = 2 : image5... image8
    indice = 3 : image9... image10


    Tu peux utiliser le code suivant pour bloquer les boutons précedent - suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(indice == 1) _btnNext.enabled = false;
    if(indice == Math.floor(nbImage/4)) _btnNext.enabled = false;
    La formule mathématique te renvoie le nombre maximale d'intervalle que tu as dans ta gallerie de nbImage images.

    Par contre je crois que tu dois utiliser l'inverse de floor de la classe Math, regarde dans la doc Flash pour plus d'info.

    J'espère que cette explication t'aidera.
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

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

Discussions similaires

  1. [MySQL] Problème dans mon script
    Par ceetix dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/10/2007, 19h06
  2. [PHP-JS] problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2007, 08h57
  3. problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 1
    Dernier message: 21/03/2007, 16h40
  4. [MySQL] Problème dans mon script de pagination
    Par speedylol dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/11/2005, 19h37
  5. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58

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