Comunidad de diseño web y desarrollo en internet online

hacer clic y esperar a que alpha=100 para ejecutar acciones

Citar            
MensajeEscrito el 15 Dic 2009 05:03 pm
Hola gente!
Tengo un clip llamado bg que dentro tiene 5 clips que se llaman "one" "two" "three" "four" "five".
Este clip tiene este AS para realizar una accion de fade in/out de los clips one two three four five:

Código ActionScript :

onClipEvent (enterFrame) {
   //find alpha of new pic
   picalpha = Math.round(getProperty(picnum, _alpha));
   //find alpha of old pic
   oldpicalpha = Math.round(getProperty(oldpicnum, _alpha));
   //If you want to change fade speed, alter + & - amounts below!
   //if the new pic alpha is 0, fade it up to 100
   if (picalpha <100) {
      setProperty(picnum, _alpha, picalpha + 5);
   }
   //if the old pic alpha is 100, fade it down to 0
   if (oldpicalpha >0) {
      setProperty(oldpicnum, _alpha, oldpicalpha - 5);
   }

}


Después tengo un clip en el _root que se llama botonera, y dentro de este tengo 5 clips a modo de botones.
Al hacer clic en ellos se hace el efecto fade in/out entre los clips one two three four five (que están dentro del bg).
El codigo de estos botones lo asigno desde un keyframe del root de la siguiente forma:

Código ActionScript :

///////////////////BOTONERA
///trailer
_root.botonera.trailer.onRelease = function() {
if (_root.bg.picnum eq "one") {
   } else {
      _root.bg.oldpicnum = _root.bg.picnum;
      _root.bg.picnum = "one";
   }

};

///sinopsis
_root.botonera.sinopsis.onRelease = function() {
if (_root.bg.picnum eq "two") {
   } else {
      _root.bg.oldpicnum = _root.bg.picnum;
      _root.bg.picnum = "two";
   }
   
};

///fotos
_root.botonera.fotos.onRelease = function() {
if (_root.bg.picnum eq "three") {
   } else {
      _root.bg.oldpicnum = _root.bg.picnum;
      _root.bg.picnum = "three";
   }
};

///equipo
_root.botonera.equipo.onRelease = function() {
if (_root.bg.picnum eq "four") {
   } else {
      _root.bg.oldpicnum = _root.bg.picnum;
      _root.bg.picnum = "four";
   }
};

///poster
_root.botonera.poster.onRelease = function() {
if (_root.bg.picnum eq "five") {
   } else {
      _root.bg.oldpicnum = _root.bg.picnum;
      _root.bg.picnum = "five";
   }
};


Me gustaría que una vez que se hace el fade in/out (al presionar en los botones) que se ejecuten unas acciones (para cada botón las suyas).

Podéis echarme un cable?

Muchisimas gracias ;)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Dic 2009 07:03 pm
es mas sencillo con la clase Tween... esta clase tiene un evento (onMotionFinished) se ejecuta al terminar la animación

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 15 Dic 2009 08:58 pm
Hola Nasho. Y para hacer el efecto fade in fade out como está ese, pero con la clase tween, cómo sería? :S

saludos :)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 15 Dic 2009 10:43 pm
Primero aprende como se usa la clase y luego a usar sus [url=
http://www.cristalab.com/tips/eventos-de-la-clase-tween-de-actionscript-2-c49470l/]eventos[/url]

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 16 Dic 2009 11:18 am
ayuda por favor!!!
No hay alguna forma de aprovechar el AS que tengo?
Es que hacerlo desde 0 con la clase tween... no se, y me corre bastante prisa.
Podéis echarme un cable por favor?

Muchas gracias :)

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 16 Dic 2009 04:40 pm

Código ActionScript :

import mx.transitions.Tween;
import mx.transitions.easing.*;

var fadein:Tween = new Tween(boton, "_alpha", Regular.easeOut, 0, 100, 2, true);
fadein.onMotionFinished = function(){
   trace("ya termino el fade in");
}

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 20 Dic 2009 11:37 pm
onClipEvent (load) {
//incluir librería
import mx.transitions.Tween;
import mx.transitions.easing.*;
picnum = "one";
var fadein2:Tween = new Tween(one, "_alpha", Regular.easeOut, 0, 100, 1, true);
}

onClipEvent (enterFrame) {
//find alpha of new pic
picalpha = Math.round(getProperty(picnum, _alpha));
//find alpha of old pic
oldpicalpha = Math.round(getProperty(oldpicnum, _alpha));
//If you want to change fade speed, alter + & - amounts below!
//if the new pic alpha is 0, fade it up to 100
if (picalpha <100) {
var fadein:Tween = new Tween(picnum, "_alpha", Regular.easeOut, 0, 100, 1, true);
}
//if the old pic alpha is 100, fade it down to 0
if (oldpicalpha >0) {
var fadeout:Tween = new Tween(oldpicnum, "_alpha", Regular.easeOut, 100, 0, 1, true);
}

}

con esto asi tampoco me funciona.... alguna sugerencia?
Estuve haciendo pruebas importando las clases dentro del enterframe pero nada... :(((((((((

Gracias por vuestra paciencia

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Dic 2009 11:34 am

Por euflipo

33 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Dic 2009 03:40 pm
bueno ese código tiene que ir en el frame no en el mc y tienes que borrar tu código enterFrame

ahora para saber a que botones quieres hacer fade ya tienes tus variables

Código ActionScript :

_root.bg.oldpicnum = _root.bg.picnum; // en oldpicnum tienes el mc anterior 
_root.bg.picnum = "five";//en picnum el mc activado

con el código ejemplo que te puse, "boton" lo cambiar por el nombre del mc, que en tu caso sería la variable

**otra cosa, no voy a descargar tus archivos, aquí creemos en "baja mis archivos" es casí lo mismo que "hazme mi trabajo". Aclaro que no es por mala onda, ni como ofenza de ningún tipo, es mas bien para exigirte un poco a que te esfuerces y que realmente aprendas algo.

Saludos.

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.