Fondu à partir d'un clip

Résolu
Messages postés
431
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
17 novembre 2008
-
Messages postés
4
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
7 janvier 2008
-
    Bonsoir,

Je cherche à faire un fondu à partir d'un clip, grâce au code.Je suppose qu'il faut utiliser l'attribut _alpha mais comment faire évoluer la valeur dans le temps, par exemple passer d'un alpha 0 à un alpha 100 en 5 secondes.

merci à tous pour vos réponses.

++

11 réponses

Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Cela vient du fait que ce code ne se pose pas sur le clip, tel qu'il est écrit ca serait incohérent. Il faut donc le poser sur une image de la scène. Si tu veux le mettre sur le clip intègre le dans un   onClipEvent()   .
Sinon ce que tu peux en faire, c'est en faire une fonction. Tu place ce morceau de code à la racine de ton animation :

function Fondu( NbrF, NbrT, NbrA, Clip ){
   var AlphF = NbrA / ( NbrF * NbrT ); 
   var i = NbrA / AlphF
      onEnterFrame = function() {
      if ( i != 0 ) {
         Clip._alpha -= AlphF;
         i--
      } else if ( i == 0 ) {
         delete onEnterFrame;
      }
   }
}

Et puis tu peu l'appeler via à bouton ou via un   onClipEvent()   sur le clip comme ceci par exemple :

on (press) {
   _root.Fondu( 30, 5, 100, _level0.mon_clip );
}

L'interet de la fonction c'est qu'elle peut être utilisée pour n'importe quel objet et n'importe quelle donnée, n'importe quand.
Reste à adapter en fonction de tes besoins.

Aller @+
Flo
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Essay un truc un peu comme ca :



// Nombre d'image à la seconde


var NbrF = 30;
// Durée en seconde
var NbrT = 5;
// Alpha à retirer
var NbrA = 100;
// Apla retré par image
var AlphF = NbrA / ( NbrF * NbrT );







var i = NbrA / AlphF
onEnterFrame = function() {
   if ( i != 0 ) {
      mon_clip._alpha -= AlphF;
      i--
 } else if ( i == 0 ) {
      delete onEnterFrame;
   }
}







Espéran que c'est ce que tu recherche !
Aller Bon Courage @+
Flo
Messages postés
431
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
17 novembre 2008

Salut Flo,

Merci pour ta réponse.
Je viens d'essayer, hélas, sans succès.

Je te copie colle les erreurs affichées :
**Erreur** Symbole tache animée, calque tache animée, image = 1 :Ligne 2 : L’instruction doit apparaître dans le gestionnaire on/onClipEvent
     var NbrF = 30;
**Erreur** Symbole tache animée, calque tache animée, image = 1 :Ligne 4 : L’instruction doit apparaître dans le gestionnaire on/onClipEvent
     var NbrT = 5;
**Erreur** Symbole tache animée, calque tache animée, image = 1 :Ligne 6 : L’instruction doit apparaître dans le gestionnaire on/onClipEvent
     var NbrA = 100;
**Erreur** Symbole tache animée, calque tache animée, image = 1 :Ligne 8 : L’instruction doit apparaître dans le gestionnaire on/onClipEvent
     var AlphF = NbrA / ( NbrF * NbrT );
**Erreur** Symbole tache animée, calque tache animée, image = 1 :Ligne 10 : L’instruction doit apparaître dans le gestionnaire on/onClipEvent
     var i = NbrA / AlphF
**Erreur** Symbole tache animée, calque tache animée, image = 1 :Ligne 11 : L’instruction doit apparaître dans le gestionnaire on/onClipEvent
     onEnterFrame = function() {

Total des erreurs ActionScript : 6      Erreurs signalées : 6

Merci pour ton aide.
Si tu as une idée...

++
Messages postés
431
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
17 novembre 2008

Salut Flo,


Je te remercie, c'est nickel.

Vraiment sympa !


@+
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

De rien, ca me fais lpaisir !
Aller @+
Flo
Messages postés
4
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
7 janvier 2008

Salut nougitch
merci pour ton code, mais j'aimerais faire l'inverse c'est à dire passer un clip de 0 à 100%
merci



Kuzco
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Bonsoir
Kususensu
,
Il s'agit plus du mien que de celui de Nougitch, mais tellement de chose ne paraisse pas telle qu'elles sont ...

Bref, pour répondre à ta question, tu prend le même code, mais tu remplace tous les moins par des plus et tous les 0 par des 100.
Bon cela va fonctionner, mais il est évident que si tu recherche un code qui puisse te fournir une très grande précision au niveau de la gestion de l'apha il faudra prendre autre chose. Ici effectivement le code prend des nombres qui peuvent contenir des dixaine de chiffre après la virgule, ce qui créer une marge d'erreur ( tu peu demander un élevement de 100 mais au final avoir 97.125468845 ou 109.54876214.

Si tu recherche de la précision et non le résultat a proprement parler il faudra utiliser une structure différente pour ton code.
A la limite si tu en a besoin tu me demandra, je verrais ce que je pourrais faire !

@+
Bon Code
Florian
Messages postés
4
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
7 janvier 2008

Merci de ta réponse je pense que cela me suffira je fais juste un site pour une association et rien de bien professionnel.

Kuzco
Messages postés
4
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
7 janvier 2008

Re Bonsoir Fguitton, je n'y arrive pas, je vois pas ou sont les moins, j'utilise le premier script sur une image frame.... au passage j'ai un petit niveau mais je comprends très vite.

Kuzco
Messages postés
396
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
13 novembre 2009

Bonsoir, alors pour répondre à ta petite question et puisque la précisioin ne t'interesse gère, tu peux dévier le code un peu comme ca pour qu'il puisse avoir l'action que tu souhaite :



function Fondu( NbrF, NbrT, NbrA, Clip ){
   var AlphF = NbrA / ( NbrF * NbrT ); 
   var i = NbrA / AlphF
      onEnterFrame = function() {
      if ( i != 100 ) {
         Clip._alpha += AlphF;
         i++
      } else if ( i == 100 ) {
         delete onEnterFrame;
      }
   }
}



Ca n'est pas propre, mais cela fonctionne ( la marge d'erreur que j'ai décrite précédement incluse, bien sûr ! )
Sur ce, bonne soirée !

@+
Bon Code
Florian
Messages postés
4
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
7 janvier 2008

Merci les précision m'intéresse tout de même, je t'avoue que j'ai compris ce que le code veut dire en partie.... bonne soirée et encore merci

Kuzco