Seguro que muchos de vosotros os habéis encontrado alguna vez con un trabajo en el que necesitáis utilizar el efecto de desvanecimiento, teniendo que usar una interpolación de movimiento con alpha.
Bueno, pues aquí os dejo dos sencillas funciones para realizar este proceso por código actionscript 2.
Código :
function FadeIn(Clip:MovieClip, Velocidad:Number) { Clip._alpha = 0; Clip.onEnterFrame = function () { if (Clip._alpha < 100) { Clip._alpha += Velocidad; } else { this.onEnterFrame = null; this.FadeInEnd(); } } } function FadeOut(Clip:MovieClip, Velocidad:Number) { Clip.onEnterFrame = function () { if (Clip._alpha > 0) { Clip._alpha -= Velocidad;; } else { this.onEnterFrame = null; this.FadeOutEnd(); } } }
Son dos funciones muy simples y que se pueden optimizar y mejorar, pero que seguro que ahora mismo son muy útiles para mucha gente.
Fijaos que al terminar el efecto se invoca a la función del clip FadeInEnd si se ha utilizado FadeIn, o a la función FadeOutEnd si se ha utilizado FadeOut. No hay por que usarlas obligatoriamente, pero si la definís en el clip en el que aplicáis el efecto se invocarán terminar el fade.
El parámetro velocidad permite ajustar la velocidad del efecto al gusto.
Un ejemplo del código completo:
Código :
function FadeIn(Clip:MovieClip, Velocidad:Number) { Clip._alpha = 0; Clip.onEnterFrame = function () { if (Clip._alpha < 100) { Clip._alpha += Velocidad; } else { this.onEnterFrame = null; this.FadeInEnd(); } } } function FadeOut(Clip:MovieClip, Velocidad:Number) { Clip.onEnterFrame = function () { if (Clip._alpha > 0) { Clip._alpha -= Velocidad;; } else { this.onEnterFrame = null; this.FadeOutEnd(); } } } MiMovieClip.FadeInEnd = function() { trace("¡Ha terminado el efecto de aparecer! Ahora FadeOut!"); FadeOut(this, 4); } MiMovieClip.FadeOutEnd = function() { trace("¡He terminado de desaparecer!"); } // Aparece el clip FadeIn(MiMovieClip, 4);
Código del ejemplo
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Aaron Gonzalez el 21 de Agosto de 2008
Por Yekill el 21 de Agosto de 2008
Por Una duda el 03 de Septiembre de 2008
Este tip me parece interesante, lo que necesitaba un pequeño añadido en el código que no se si sabrás decirme alguna manera.
La historia es que quiero que una bola que muevo dinamicamente con la clase tween, y que al mismo tiempo la reduzco el tamaño (dando la sensaccion de que se aleja), pues me gustaría que dinámicamente también se fuese poniendo transparente según se va haciendo más pequeña.
Soy un poco novato en AS, y la manera que estaba intentando era que al llegar a determinadas coordenadas, se pusiera alpha el clip, pero no logro que me devuelva la posición del objeto en tiempo real. He conseguido que me devuelva la posición del objeto, pero solo la inicial. No logro que me la devuelva según se mueve, para saber en todo momento su posición y así poderle darle alpha en funcion de donde se encuentre la bola.
Y ya de paso, ¿se puede hacer tambien que al pasar por determinadas coordenadas se reproduzca un sonido??
Gracias de antemano, aunque ya solo sea por poner tips como este.
Un saludo
Por Pecheche el 12 de Septiembre de 2008
Por Dominica el 12 de Septiembre de 2008
Por Yekill el 26 de Septiembre de 2008
Si subes la página y pulsas F5 verás un ejemplo publicado. Si bajas un poco más verás un ejemplo del código. Por favor, leed bien los post antes de comentar.
> "eso lo hace swish!"
Es un tip destinao a profesionales que tengan que usar este efecto muchas veces en una web. Intenta usar el swish para aplicar el efecto a 100 fotografías y verás como vuelves a copiar el código
Soy enemigo de cualquier herramienta automática de hacer efectos. Solo sirven para dar problemas.
Por Yekill el 26 de Septiembre de 2008
Para conocer la posición de un Clip puedes utilizar las proiedades ._x e ._Y
Estas devuelven los valores para X y para Y del clip.
Ten cuidado ya que si el clip está dentro de otro, te dará las coordenadas relativas al clip contenedor.
Si quieres usar las coordenadas globales tendrás que usar las funciones globalToLocal y LocalToGlobal. Pulsa F1 sobre ellas y Flash te mostrará ayuda y ejemplos de como usarlas.
En cuanto a realizar un evento al pasar por un punto es mucho mas facil de lo que imaginas:
Dentro del clip tienes que utilizar el evento onEnterFrame que se ejecuta periódicamente, y por cada vez que se ejecute preguntar las coordenadas. Seguro que con un ejemplo lo ves más claro:
this.onEnterFrame = function () {
if (this._x == 22 && this._y == 31) {
...
}
{
22 y 31 son unas coordenadas cualquiera de ejemplo. Si quieres utilizar un área en vez de un punto sería algo asi:
this.onEnterFrame = function () {
if ((this._x >= 22 && this._y >= 31) && (this._x <= 142 && this._y <= 280)) {
...
}
{
Espero haberte ayudado. Suerte!
Por shoko el 10 de Octubre de 2008
Por pabletein el 25 de Junio de 2009
Por candoti el 25 de Junio de 2009
onClipEvent(enterFrame){
_alpha+=(variable-_alpha)/5
}
para fade in, en el bt
on(release){
mc.variable=100
}
para fade out, en el bt
on(release){
mc.variable=0
}
Por Sergio el 25 de Agosto de 2010
Es posible poner este código dentro del on(Release) de un movie clip para que sea otro movie clip diferente el que sufra este efecto? Lo he intentado, pero no puedo, soy muy novato.
Muchas gracias.
Por candoti el 25 de Agosto de 2010
on(release){
_parent.otroMc.gotoAndPlay(3);
}
Lo de gotoAndPlay(3) es solo un ejemplo, puedes cambiarlo por lo que necesites.
Por Freeman el 26 de Diciembre de 2011
Gracias
Por raider33 el 04 de Octubre de 2012
alguna sugerencia?