Comunidad de diseño web y desarrollo en internet online

Ayuda con FadeOut

Citar            
MensajeEscrito el 28 Jun 2011 11:05 pm
Hola a todos los foreros cristalinos :D

Necesito una pequeña ayuda.

El caso es que estoy intentando hacer una pagina en flash y ActionScript 2.0 y tengo un problema con el FadeOut.

Tengo un menu principal y los efectos de FadeIn y FadeOut, y quiero ponerlo de tal forma que cuando pinche en alguna opcion del menu, se realice un FadeOut de lo que esta en pantalla y un FadeIn de lo que saldrá en la pantalla.

El codigo que estoy utilizando es de principiantes y copiando algunas cosillas del foro y de los tutoriales. Puede que lo que quiero hacer no sea posible por haber entendido mal el efecto FadeOut, pero si se puede usar FadeIn debería poderse usar FadeOut de la misma forma, no?

Vamos que lo que quiero es realizar un FadeOut de un movie clip al descargarse.

Ahy va el codigo:

//acción para pasar al estado "rollOver"
on(rollOver){
b_b_clientes.gotoAndStop(10);
}

//acción para pasar al estado "rollOut"
on(rollOut){
b_b_clientes.gotoAndStop(1);
}

on (press) {
// devolvemos el elemento actual al estado normal
_parent[_parent.menuactivo].gotoAndStop(1);
// ahora pasará a ser el nombre de instancia de este MC
_parent.menuactivo = this._name;
// llevamos este elemento al estado clicado, en este caso el frame 2, en el que no
// tenemos hit y por tanto quedará anulado como botón
// nos marca la opcion seleccionada del menu

this.gotoAndStop(20);
// a partir de aquí se colocan el resto de
// acciones como loadMovie, llamada a funciones etc...
// en este ejemplo muestro la variable en el campo de texto que situaré en el Stage

//FADEIN & FADEOUT

BB_03.onPress = function (){
FadeOut(_parent.sub_cllientes,4);
}

BB_03.onPress = function (){
FadeIn(_parent.sub_clientes,4);
}
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();
}
}
}
_parent.gotoAndStop("clientes");
_parent.sub_clientes.FadeInEnd = function() {
trace("¡Ha terminado FadeIn clientes");
}
_parent.sub_clientes.FadeOutEnd = function() {
trace("¡He terminado FadeOut clientes!");
}

// Aparece el clip
FadeIn(_parent.sub_clientes, 12);
}




Muchas gracias por la ayuda, o por arrojarme algo de luz.

Un saludo

Por acanogon

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jun 2011 01:31 pm
Tu código se hace un poco ilegible, aunque veo que te has tomado el trabajo de resaltarlo con colores, se pierde toda la indentación. Usa los tags

[ as ][ /as ]

Sin los espacios que dejé ahora, no solo se colorea tu código, además se indenta correctamente y se hace mucho mas legible

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Jun 2011 02:35 pm

Código ActionScript :

//acción para pasar al estado "rollOver"
on(rollOver){
    b_b_clientes.gotoAndStop(10);
}
//acción para pasar al estado "rollOut"
on(rollOut){
    b_b_clientes.gotoAndStop(1);
}
on (press) {
    // devolvemos el elemento actual al estado normal
    _parent[_parent.menuactivo].gotoAndStop(1);
    // ahora pasará a ser el nombre de instancia de este MC
    _parent.menuactivo = this._name;
    // llevamos este elemento al estado clicado, en este caso el frame 2, en el que no
    // tenemos hit y por tanto quedará anulado como botón
    // nos marca la opcion seleccionada del menu
    this.gotoAndStop(20);
    // a partir de aquí se colocan el resto de
    // acciones como loadMovie, llamada a funciones etc...
    // en este ejemplo muestro la variable en el campo de texto que situaré en el Stage
    //FADEIN & FADEOUT
    BB_03.onPress = function (){
        FadeOut(_parent.sub_cllientes,4);
    }
    BB_03.onPress = function (){
        FadeIn(_parent.sub_clientes,4);
    }
    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();
            }
        }
    }
    _parent.gotoAndStop("clientes");
    _parent.sub_clientes.FadeInEnd = function() {
        trace("¡Ha terminado FadeIn clientes");
    }
    _parent.sub_clientes.FadeOutEnd = function() {
        trace("¡He terminado FadeOut clientes!");
   }
    // Aparece el clip
    FadeIn(_parent.sub_clientes, 12);
}

Por acanogon

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Jun 2011 02:39 pm
Tienes un onPress dentro de otro onPress, de la forma que funciona Flash, siempre el contenedor exterior captura el evento que nunca llega a los elementos interiores. Adem{as declarar las funciones en el onPress hacen que estas se redeclaren cada vez que haces click. Así dos problemas:

1. No es viable que un contenedor tenga eventos de Mouse y el contenido también
2. Las funciones genéricas y reutilizables deben estar en el timeline, no dentro de eventos de Clip

El principal problema es el 1, los elementos clickables no pueden estar dentro de elementos clickables

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Jun 2011 10:16 pm
Gracias Soisarg.

La verdad es queno me habia dado cuenta de un press dentro de otro, de echo me ha costado trabajohasta encontrarlo.

ahora toca mirar como solucionarlo, ya que son muchas instrucciones a la hora de pulsar el boton

se aceptan sugerencias.

Por acanogon

12 de clabLevel



 

firefox

 

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