nougitch
Messages postés431Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention17 novembre 2008
-
12 août 2006 à 16:50
cs_kususensu
Messages postés4Date d'inscriptionsamedi 5 janvier 2008StatutMembreDernière intervention 7 janvier 2008
-
7 janv. 2008 à 21:53
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.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 15 août 2006 à 12:01
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.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 6 janv. 2008 à 18:48
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 !
cs_kususensu
Messages postés4Date d'inscriptionsamedi 5 janvier 2008StatutMembreDernière intervention 7 janvier 2008 6 janv. 2008 à 20:13
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.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 7 janv. 2008 à 21:34
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 !