Foros del Web » Creando para Internet » Flash y Actionscript »

Definir array con nombre dinámico

Estas en el tema de Definir array con nombre dinámico en el foro de Flash y Actionscript en Foros del Web. Esto intentando realizar una serie de arrays a los cuales se les asigne el nombre en tiempo de ejecución. La idea es tener en un ...
  #1 (permalink)  
Antiguo 12/07/2008, 04:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 19 años, 4 meses
Puntos: 0
Definir array con nombre dinámico

Esto intentando realizar una serie de arrays a los cuales se les asigne el nombre en tiempo de ejecución.

La idea es tener en un XML los nombres de la cada uno de los arrays (nodename) y su valor (nodevalue).

Por ejemplo supongamos que el xml es:

<Fila>
<Codigo>003</Codigo>
<Texto>Texto 003</Texto>
</Fila>
<Fila>
<Codigo>005</Codigo>
<Texto>Texto 005</Texto>
</Fila>
<Fila>
<Codigo>007</Codigo>
<Texto>Texto 007</Texto>
</Fila>

El código debería crear los arrays VBD_Codigo y VBD_Texto y hacer la siguientes asignaciones:

VBD_Codigo[0]='003'
VBD_Codigo[1]='005'
VBD_Codigo[2]='007'

VBD_Texto[0]='Texto 003'
VBD_Texto[1]='Texto 005'
VBD_Texto[2]='Texto 007'


Mi código es el siguiente, el cual si que parece que los cree, pero luego cuando intento acceder desde otro frame me da undefined.


Código:
for (Wi=0; Wi<WFilas; Wi++) {
  WFNodo=eval("WFila" + Wi);  
  WFCampo=WFNodo.firstChild;
  while (WFCampo!=null) { 
    WN="VBD_"+WFCampo.nodeName+'['+Wi+']';
    set (WN,WFCampo.childNodes[0].nodeValue); 
    set ("WBD"+WFCampo.nodeName+Wi,WFCampo.childNodes[0].nodeValue);
    WFCampo=WFCampo.nextSibling;
  }
}
Como alternativa, con la 2ª sentencia set, si que consigo crear las variables:

WBDCodigo0='003'
WBDCodigo1='005'
WBDCodigo2='007'

WBDTexto0='Texto 003'
WBDTexto1='Texto 005'
WBDTexto2='Texto 007'

y si perfectamente accesibles desde cualquier frame.

Encontro el siguiente post: http://www.actionscript.org/forums/s...d.php3?t=31809, pero no me ha servido de mucha ayuda. ¿Alguna idea?.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.