Comunidad de diseño web y desarrollo en internet online

Cargar Varios XML - Flash AS2

Citar            
MensajeEscrito el 16 Abr 2009 03:01 pm
hola a todos he revisado la forma de cargar los xml con onLoad funiona perfectamente:

pero que pasa si quiero cargar varios xml.

siguiendoe ste ejemplo:

http://www.cristalab.com/tutoriales/tutorial-de-xml-en-flash-c12l/

que pasa si yo tengo 5 botones y cada boton cargar un xml distinto

en el ejemplo

Código :

function cargarXML() {
   //Invoca a la función "load" del objeto XML, pasandole por parametro
   //La ruta de nuestro archivo XML
   obj_xml.load("texto.xml");
}

y el boton

[code]
on (release) {
    //Llamamos a la función de carga del archivo XML
    cargarXML();
}

si tengo los cinco botones y cada boton cargar xml diferentes ya que serian   distintos las direcciones de correo al que se enviaran este formulario.


gracias por la ayuda que me pueda dar.+++
[/code]

Por {as}

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 03:57 pm
Mis recomendaciones son que crees un solo xml y lo carges de una sola vez, luego en tus 5 botones, solo administres esa informacion obtenida, si es muy necesario tener 5 xml diferentes, un mismo objeto XML puede cargar los 5 solo cambiando la ruta a cargar, esto, si los 5 XML tiene una estructura similar, de otro modo vas a tener que crear 5 objetos diferentes y 5 funciones diferentes de onLoad.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Abr 2009 04:21 pm
ok gracias pero si fuera un solo xml de esta siguiente forma:


Código :

<mensaje>
   <id = "01">
      <asunto>Aviso de suspensión 001</asunto>
      <correo>[email protected]</correo>
      <cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
      <remitente>[email protected]</remitente>
   </id>
   
   <id = "02">
      <asunto>Aviso de suspensión 002</asunto>
      <correo>[email protected]</correo>
      <cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
      <remitente>[email protected]</remitente>
   </id>
   
   <id = "03">
      <asunto>Aviso de suspensión 003</asunto>
      <correo>[email protected]</correo>
      <cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
      <remitente>[email protected]</remitente>
   </id>

</mensaje>


como acceder a los nodos con el id 01 - 02 - 03 - nnnn

yo pensaba manejarlo con xml diferentes

destinatario1.xml

[code]
<mensaje>
<asunto>Aviso de suspensión 001</asunto>
<correo>[email protected]</correo>
<cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
<remitente>[email protected]</remitente>
</mensaje>

destinatario2.xml

[code]
<mensaje>
<asunto>Aviso de suspensión 002</asunto>
<correo>[email protected]</correo>
<cuerpo>Su servicio sera suspendido a partir de la fecha</cuerpo>
<remitente>[email protected]</remitente>
</mensaje>
[/code]

y asi susesvamente. y que cada boton cargue los xml diferentes

Por {as}

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 04:30 pm
Hola, pues accedes del mismo modo que accedias antes solo que ahora hay un nivel mas de jerarquia, mira, lo mejor seria meter todo ese XML dentro de un Array y objetos. Para que te des una idea, mira en este post cree un slideshow, es una pase de diapositivas, las urls de las diapositivas, las obtiene en un principio de un array, osea, estan escritas en codigo, la segunda funcionalidad fue que ese array se llenara mediante un XML, pero se seguia usando el mismo array, esto es una abstraccion de capas, la capa de la informacion y la capa de la funcionalidad, si mezclas estas dos capas te es muy dificl modificar tu codigo despues, pero separadas, es facil, el array se puede llenar via XML, o desde la BD o desde un TXT no importa, siempre y cuando el resultado final sea un array de informacion que utilizaras en tu codigo como proveedor de informacion.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Abr 2009 05:33 pm
Mi estrutura final de mi XML es el siguiente:

Código :

<?xml version="1.0" encoding="utf-8"?>

 
<enviodemensajes> 

   <mensaje> 
      <asunto>Titulo Mensajem # 1</asunto> 
      <correo>[email protected]</correo> 
      <cuerpo>Brindamos el Mejor Servicio. +++</cuerpo> 
      <remitente>[email protected]</remitente> 
   </mensaje> 
   
   <mensaje> 
      <asunto>Titulo Mensajem # 2</asunto> 
      <correo>[email protected]</correo> 
      <cuerpo>Brindamos el Mejor Servicio. +++</cuerpo> 
      <remitente>[email protected]</remitente> 
   </mensaje> 
   
   <mensaje> 
      <asunto>Titulo Mensajem # 3</asunto> 
      <correo>[email protected]</correo> 
      <cuerpo>Brindamos el Mejor Servicio. +++</cuerpo> 
      <remitente>[email protected]</remitente> 
   </mensaje> 

</enviodemensajes> 


si cargo el xml y parseo los datos en un array como accedo a esos datos desde un boton

Por {as}

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Abr 2009 05:50 pm
Depende de tu array, el punto del array es que simplemente te evites estar accediendo a un objeto XML.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 16 Abr 2009 06:43 pm
ok,

he aqui el codigo as

Código :

var cargarXML:XML = new XML (); 
cargarXML.ignoreWhite = true; 
cargarXML.load("destinatarios.xml"); 
var parsearXML:Function = function(nodosxml:XML):Array 
{ 
   var datosenvio:Array = [];
   
   var asunto:String;
   var correo:String; 
   var cuerpo:String; 
   var remitente:String; 
 
    
   for(var i:Number=0; i<nodosxml.childNodes.length; i++){ 
      asunto = nodosxml.childNodes[i].childNodes[0].firstChild.nodeValue; 
      correo = nodosxml.childNodes[i].childNodes[1].firstChild.nodeValue; 
      cuerpo = nodosxml.childNodes[i].childNodes[2].firstChild.nodeValue; 
      remitente = nodosxml.childNodes[i].childNodes[3].firstChild.nodeValue; 

      datosenvio.push({TXT1: asunto, TXT2: correo, TXT3: cuerpo, TXT4: remitente}); 
   } 
   return datosenvio; 
} 

cargarXML.onLoad = function(){ 
   var mensajesaenviar:Array = parsearXML(this.firstChild);  
   trace("Prueba Trace : " + mensajesaenviar);
   trace (mensajesaenviar [0][0]);
} 

text1.text = asunto;
text2.text = correo;
text3.text = cuerpo;
text4.text = remitente;


btn_mostrar_dest1.onRelease = function ()
{
    // acceder al primer bloque de nodos del xml
};

btn_mostrar_dest2.onRelease = function ()
{
    // acceder al segundo bloque de nodos del xml
};

btn_mostrar_dest3.onRelease = function ()
{
    // acceder al tercer bloque de nodos del xml
};

btn_mostrar_dest4.onRelease = function ()
{
    // acceder al cuarto bloque de nodos del xml
};

Por {as}

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Abr 2009 04:03 am
Hola, esta es la primer parte de la estructura, solo falta implementar la funcion parsearXML.

Código ActionScript :

var enviodemensajes:Array;
var cargarXML:XML = new XML (); 
cargarXML.ignoreWhite = true; 
cargarXML.onLoad = function( ok:Boolean ){ 
   if( ok )
   {
      enviodemensajes = parsearXML( this.firstChild );  
   }
};
cargarXML.load("destinatarios.xml"); 

function parsearXML( nodo:XMLNode ):Array 
{ 
   //Acciones que llenan el array enviodemensajes
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 17 Abr 2009 05:28 am
Para llenar los campos de texto, necestas algo asi:

Código ActionScript :

for(var i:Number = 0; i < 4; i++) 
{
   this["boton" + i].index = i;
   this["boton" + i].onRelease = function()
   {
      llenarCampos( this.index );
   };
}


Falta implementar la funcion llenar campos.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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