Comunidad de diseño web y desarrollo en internet online

Modificar Varias instancias excluyendo una

Citar            
MensajeEscrito el 30 Nov 2006 06:58 am
Hola, soy medio nuevo en esto, estube leyendo pero no pude encontrar alguien que ya haya preguntado esto.

Estoy creando un menu principal con 22 items para mi site, los mismos se componen de MC con estados, no con botones, o sea uso _up _over _down _active, este ultimo me sirve para dejar seleccionado el boton e identificarlo del resto al estar presionado.

Bueno el problema surge aca, creo todos los botones con un "for (i=0; i<max_btm; i++) " al que despues le siguie "var menu:MovieClip = this.attachMovie('flat_mc', 'flat_mc'+i, i);" esto lo que hace
es una serie de flat_mc0, flat_mc1, flat_mc*, para activar los movieclips y hacer que anden como botones uso el evento onRelease para cada instancia creada, hasta ahi los botones andan barbaro, salvo que no se deseleccionan al pasar de uno a otro, para ello tengo un propotipo creado llamado
deselect al cual puedo llamar, el tema y origen del post viene aca,

flat_mc0.onRelease = function() {
this.select();
flat_mc1.deselect();
flat_mc2.deselect........
};
flat_mc1.onRelease = function() {
this.select();
flat_mc0.deselect();
flat_mc2.deselect........
};

como podran ver hacer esto con 22 botones, requiere mucccccchooo codigo reiterativo, y me imagino que debe poder simplificarse para que me aplice deselect a todos los botones menos al que tengo presionado con menos lineas, como mucho de codigo no se me estoy volviendo loco para tratar de resumir esta funcion, si alguien sabe alguna solución o tiene alguna idea para esto, le agradeceré infinitamente.

Por madescoces

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Nov 2006 11:21 am
En estos casos debes poner codigo en el boton que esta en la biblioteca para que cuando, por ejemplo, se haga un click, llame a una función y envíe un parámetro indicando que botón es.
Abre el boton y en el primer frame pon:

Código :

var instancia;
this.onRelease = function (){
  _root.seleccion(this); // o _root.seleccion(instancia); var instancia debe ser cargado con el nombre correspondiente al momento de attachear el clip de la biblioteca.
}


Luego en el frame principal (_root) creas la function que sabrá que hacer.

Por micheloud

341 de clabLevel



 

Misiones, Argentina

firefox
Citar            
MensajeEscrito el 30 Nov 2006 11:36 am
O también:

Código :

for (i=0; i<max_btm; i++) {
  this["flat_mc"+i].onRelease= function() {
    for (j=0; j<max_btm; j++) {
      if (this["flat_mc"+j] == this["flat_mc"+i]) {
        this["flat_mc"+j].select();
      } else {
        this["flat_mc"+j].deselect();
      }
    }
  };
}


o algo parecido (que con las rutas siempre me hago un lio :crap: ).

Saludos.

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

firefox

 

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