Comunidad de diseño web y desarrollo en internet online

onRollOver, onPress,etc. en botones creados dinámicamente

Citar            
MensajeEscrito el 24 Nov 2006 10:25 pm
He creado unos botones en base a elementos de un XML, de ahi tomo las etiquetas para estos.
El problema es que no sucede nada al momento de llamar a los eventos onRollOver, onRelease, onPress, etc.

Código :

var activeCountries :Array=new Array();
var paisCanal:XML = new XML();
paisCanal.ignoreWhite = true;
var posY=13;
var incY=20;
var nivel=20;

var formatoTexto:TextFormat = new TextFormat();
formatoTexto.font = "Verdana";
formatoTexto.color = 0xFFFFFF;
formatoTexto.bold = true;

paisCanal.onLoad = function(exito) {
   if (exito) {
        desactivarPaisesTodos();
      for(n in paisCanal.firstChild.childNodes){

            countryCode=paisCanal.firstChild.childNodes[n].attributes.code;
            countryName=paisCanal.firstChild.childNodes[n].attributes.name;
            
             mBotones.attachMovie("bnPais","bn" + countryCode,n);
            mBotones["bn"+countryCode]._x=5;
             mBotones["bn"+countryCode]._y=posY;           

   //  Etiquetas de los paises      
               labelsPaises.createTextField("t"+ countryCode, n, 0, posY, 150, 20);            
               labelsPaises["t"+ countryCode].text = countryName;
          labelsPaises["t"+ countryCode].setTextFormat(formatoTexto);
      labelsPaises["t"+ countryCode].selectable=false;
   
         posY+=incY;
         nivel++;   
            activeCountries.push([countryCode,countryName]); //agrega codigo del pais a lista de paises activos
      }
      activarPaises();
      
   } else {
      trace("error al cargar XML");
   }
};

                       ...
//-------------------------------------------------------------------------------------------
// AQUI ES COMO ESTOY INTENTANDO PROGRAMAR LOS EVENTOS
//------------------------------------------------------------------------------------------

//    bnMX --------- > es uno de los botones que creé dinámicamente arriba

mBotones.bnMX.onRelease=function(){
   getURL("javascript:getChannels('MX')");
}
 mBotones.bnMX.onRollOver=function(){
      trace("eitale Mexico");  //   NUNCA me ha mostrado este mensaje ni usando  mBotones["bnMX"].onRollOver=function()
}


// y lo curioso es que si puedo modificar el boton desde otros botones y/o movie clips

Mexico.onRollOver=function(){
cambiaColor(this,colorSeleccionar);
cambiaColor(mBotones.bnMX,colorSeleccionar); //si le cambia el color al boton
}

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Nov 2006 10:57 pm
No te muestra el trace porque cuando intentas definir el evento, el botón sigue siendo undefined.
Los eventos defínelos dentro del bucle así:

Código :

 var btn:MovieClip=mBotones.attachMovie("bnPais","bn" + countryCode,n);
 btn._x=5;
 btn_y=posY;   
btn.pais=countryCode
btn.onRelease=function(){
getURL("javascript:getChannels("+this.pais+")");
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 24 Nov 2006 11:57 pm
Un gracias infinito zah , ya me tenia en jaque esto.
:D

Código :

 var btn:MovieClip=mBotones.attachMovie("bnPais","bn" + countryCode,n);

 btn._x=5;

 btn._y=posY;    //aqui nomas se te habia pasado el punto antes del  _y  :)

btn.pais=countryCode

btn.onRelease=function(){

getURL("javascript:getChannels("+this.pais+")");

}

Por Rafeo

650 de clabLevel

3 tutoriales
1 articulo

Genero:Masculino  

firefox

 

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