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 MX] placement de fonctions


Sujet :

Flash

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 32
    Par défaut [FLASH MX] placement de fonctions
    J'ai plusieurs MC : cont1, cont2,...sur ma scene.
    Je fait un petit effet lorsque on passe dessus avec la souris grace au code si dessous. Je fait l'inverse de l'effet quand on rollOut, mais le probleme c'est que si on rollOver sur un autre MC avant la fin de l'effet du rollOut, ca coupe l'effet....

    Comment je fait pour etre sur que l'effet du rollOut continu meme si on passe la souris sur un autre MC ?

    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
     
    function init(){
     
    	//declaration de variables
    	nbrCont = 8;
    	nbrCouche = 3;
    	distanceCopie = 4;
     
    	main();
    }
     
    function main(){
    	for(j=1;j<=nbrCont;j++){	
    		eval("_root.cont"+j).onRollOver = function() {
    			for(i=1;i<=nbrCouche;i++){
    				duplicateMovieClip(this,"copie"+j+i,i);
    				eval("copie"+j+i)._alpha=eval("copie"+j+i)._alpha / i;
    				eval("copie"+j+i).newPosY=eval("copie"+j+i)._y-(nbrCouche*i);						//Get the y position
    				eval("copie"+j+i).newPosX=eval("copie"+j+i)._x-(nbrCouche*i);							//Get the x position
    				eval("copie"+j+i).onEnterFrame=function(){
    					this._y = ease(this._y,this.newPosY,1,2);									//Ease in on the y axis
    					this._x = ease(this._x,this.newPosX,1,2);									//Ease in on the x axis
    				};
    			}
    		};
     
    		eval("_root.cont"+j).onRollOut = function () { 
    			for(i=1;i<=nbrCouche;i++){
    				eval("copie"+j+i).newPosY=this._y;												//Get the y position
    				eval("copie"+j+i).newPosX=this._x;													//Get the x position
    				function(){
    					this._y = ease(this._y,this.newPosY,1,2);										//Ease in on the y axis
    					this._x = ease(this._x,this.newPosX,1,2);										//Ease in on the x axis
    				}
    			}
    		};
    	}
    }
     
    function ease(currX, destX, acc, dec) { 										// function to ease
     
    	var distanceX
    	var vx
     
    	distanceX = destX - currX;
    	vx = (vx + (distanceX) * 1/acc) / dec;
    	currX += vx;
    	return currX;
    }
    Merci

    Toutouffe

  2. #2
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Salut,

    essaye :

    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
    function main(){
       for(j=1;j<=nbrCont;j++){   
           effects(_root["cont"+j], j);
       }
    } 
     
     
    function effects(mc, j) {
          mc.onRollOver = function() {
            ...
          };
     
          mc.onRollOut = function () {
            ...
          };
    }
    Quelques remarques :
    - evite, si tu peux, les _root et prefere à la place les _parent ...
    - evel est déconseillé, préfère lui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomDuClipConteneur["nimDuClip"]
    - préfère egalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonMovieClip.duplicatMovieClip("nomClipADuplique", profondeur);
    - A qui sert le function() { .. } dans le rollOut ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 32
    Par défaut
    Merci, ca reorganise bien mon script mais malheureusement ca resou pas le probleme...
    le function sert a ce que les ease se fasse en boucle...
    Si je le met pas, tout part en couille...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 32
    Par défaut
    J'ai trouve la solution, en fait je reutilisait les meme couches quand je faisait mon duplicateMovie...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/01/2006, 12h30
  2. [FLASH MX] createClassObject et fonction
    Par totoche dans le forum Flash
    Réponses: 6
    Dernier message: 13/10/2005, 13h00
  3. Réponses: 1
    Dernier message: 09/09/2005, 19h34
  4. [FLASH MX] Appel de fonction
    Par celine31 dans le forum Flash
    Réponses: 5
    Dernier message: 20/10/2004, 13h44
  5. [Flash MX 2004] pb fonction composant
    Par dens63 dans le forum Flash
    Réponses: 12
    Dernier message: 13/12/2003, 08h09

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