Comunidad de diseño web y desarrollo en internet online

problema de valor de variable que no perdura

Citar            
MensajeEscrito el 01 Nov 2006 02:29 am
hola, saludos

soy nuevo en este foro, y tengo una duda sobre un script que no logro que me de el resultado que espero, basicamente el problema esta en esta función.

idEscuelas y nEscuelas son Arrays, mediante un ciclo for, creo movieclips, que luego al presionarse deberan de mandar a un URL externo.

el problema radica, en que el valor de k adentro del evento onRelease no perdura, y manda un undefined como valor

alguna idea de que esta pasando???????????
aqui esta es script:

Código :

function botones() {
   var total=idEscuelas.length
        var k:Number
        for (var k = 0; k<total; k++) {
      campos = contentMain.attachMovie("barra", "bar"+k, k+100);
      campos._x = 235;
      campos._y += 20+k*30;
      campos.texto_txt.text = nEscuelas[k];
            
campos.onRelease = function() {
      getURL("http://www.asineacentro.org/escNosotros.php?id_esc="+idEscuelas[k], "_self");
            };
            
campos.onRollOver = function() {
   this._alpha = 70;
   };
            
campos.onRollOut = function() {
   this._alpha = 100;
   };
            
    }
}

Por mausetum

2 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Nov 2006 10:18 am
Lee esto:
http://www.cristalab.com/tips/28962/ambito-de-variables-en-actionscript-scope-this
k, siempre valdría su último valor, porque cuando haces click ya ha recorrido todo el bucle, ¡pero eso sería si existiera! Lo que pasa es que si la declaras dentro de la función, sólo se ve en la función. La solución es darle a cada clip un valor num:

Código :

function botones() {
   var total=idEscuelas.length
        var k:Number
        for (var k = 0; k<total; k++) {
      campos = contentMain.attachMovie("barra", "bar"+k, k+100);
campos.num=k;
      campos._x = 235;
      campos._y += 20+k*30;
      campos.texto_txt.text = nEscuelas[k];
            
campos.onRelease = function() {
      getURL("http://www.asineacentro.org/escNosotros.php?id_esc="+idEscuelas[this.num], "_self");
            };
            
campos.onRollOver = function() {
   this._alpha = 70;
   };
            
campos.onRollOut = function() {
   this._alpha = 100;
   };
            
    }
}

Saludos.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 01 Nov 2006 04:34 pm
Muchas gracias Zah, ya funciona ahora..... excelente foro, muchas felicidades!!

Por mausetum

2 de clabLevel



Genero:Masculino  

firefox

 

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