Comunidad de diseño web y desarrollo en internet online

botonera/3 estados/ FOR

Citar            
MensajeEscrito el 28 May 2009 02:36 pm
Hola cristaleros grossos...

Quiero hacer una botonera, donde cada botón con tres estados y sus links respectivos (que vaya a x frame), y no encuentro en el foro algo que complemente lo que tengo.

Cada botón tiene tres estados:
1) rollOver: hace un fadeIn;
2) rollOut: hace un fadeOut;
3) y un "estático" queda pintado y detenido el botón.

Hasta ahora tengo esto:

Código :

for (i = 0; i < 12; i++)
{
   this["btn" + i].onRollOver = function() { this.gotoAndPlay("in"); }
   this["btn" + i].onRollOut = function() { this.gotoAndPlay("out"); }
}


Todo bien, hace fadeIn y fadeOut. Pero cuando llego a la parte de onRelease si hago stop(); en para que quede parado, al hacer rollOut hace fadeOut. Y si hago cada onRelease por separado, en cada botón voy a tener que repetir if/_currentframe tantas veces como botones tenga multiplicado por cada uno de los botones.

Espero haber sido lo más específico posible: de manera automática que haga fadeIn, fadeOut, quede parado al cliquear, y se desactive al cliquear otro.

Mil gracias... saludos a todos
Emiliano

Por boratlon

Claber

139 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 May 2009 03:54 pm
Me autorespondo... no es que sea mago, sino que tengo viejos conocidos que saben mucho, se los dejo porque está muy bueno y es muy útil. Si hay algún otro parecido dejen links (dentro de cristalab claro).
Abrazos:

Código :

function botonera()
{
    for (i = 1; i < 9; i++)
    {
        this["btn" + i].id = i;
        this["btn" + i].onRelease = function ()
        {
            act = this.id;
            //Si quieren hacer que vaya de un fotograma a otro en el ROOT usen lo siguiente (saquenle las "//"). El 98 es el número del fotograma donde empieza la info de la página posterior a toda una intro
            //_root.gotoAndStop(98 + this.id);
            if (act != ult_press)
            {
                _root["btn" + ult_press].gotoAndStop("3");
                this.gotoAndStop(4);
                ult_press = act;
            } // end if
        };
        this["btn" + i].onRollOver = function ()
        {
            ult_over = this.id;
            if (act != ult_over)
            {
                this.gotoAndStop(2);
            } // end if
        };
        this["btn" + i].onRollOut = function ()
        {
            if (act != ult_over)
            {
                this.gotoAndStop(3);
            } // end if
        };
    } // end of for
} // End of the function

_root.actual_var = 1;
botonera();
act = -1;
ult_press = -2;
ult_over = -2;
this["btn" + _root.actual_var].onRelease();
this["btn" + _root.actual_var].gotoAndStop(4);
this.btn1.onRelease = function ()
{
    _root.gotoAndPlay("institucional");
};


Una acotación, la última parte:

Código :

this.btn1.onRelease = function ()
{
    _root.gotoAndPlay("institucional");
};

Esto hace que el primer botón, btn1, aparezca activo pero después no funcione... lo quité y no pasa nada... pero por si quieren experimentar con eso incluido, creo no tiene razón de existir.
Ojalá les sirva... abrazos grande.
Emiliano

Por boratlon

Claber

139 de clabLevel



 

msie7

 

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