Comunidad de diseño web y desarrollo en internet online

Agregar nodos a un XML en AS

Citar            
MensajeEscrito el 29 Feb 2008 09:03 am
Hola, tengo la siguiente duda. Tengo este AS, que monta un XML en mi archivo flash:

Código :

var item_filename:Array = new Array();
var item_label:Array = new Array();
var item_url:Array = new Array();
var item_description:Array = new Array();
var folder:String = "thumbnails/";
var xml:XML = new XML();
item_list_area._visible = false;
stop();

xml.onLoad = function()
{
   item_list.fm_item._visible = false;
   var nodes = this.firstChild.childNodes;
   total = nodes.length;

   for( i = 0; i < total; i++)
   {
      item_filename[i] = nodes[i].attributes.filename;
      item_label[i] = nodes[i].attributes.label;
      item_url[i] = nodes[i].attributes.url;
      item_description[i] = nodes[i].attributes.description;
   }
   create_item_list();
   scroller();
}
xml.load( xml_file );
xml.ignoreWhite = true;
function create_item_list():Void
{
   for( i = 0; i < total; i++)
   {
      var item = item_list.fm_item.duplicateMovieClip("fm_item"+i, i);
      item._y = i * (item_list.fm_item._height + item_spacing);
      item.item_label.text = item_label[i];
      item.no = i;
      
      item.item_button.onRelease = function()
      {
         this._parent._parent._parent.change_item(this._parent.no);
      }
   }
   change_item(0);   // load the first item detail
}
function change_item(no:Number):Void
{
   title.text = item_label[no];
   description.text = item_description[no];
   url.text = item_url[no];
   this.item_pic.loadMovie(folder + item_filename[no]);
   button.onRelease = function()
   {
      getURL(item_url[no]);
   }

El XML es así:

Código :

<thumbnails>
   <thumbnail 
      title="xxx"
      filename="xxx" 
      url="xxx" 
      description="xxx" 
   />      
</thumbnails>

Todo funciona bien. La cosa es que necesito incluir más nodos para incluir más datos (dirección de contacto, teléfono, etc...), pero no encuentro la solución. ¿Tenéis alguna sugerencia?

Por flasheado

7 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 29 Feb 2008 03:54 pm
Tal y como yo veo las cosas creo que sería mas conveniente que añadieras atributos en lugar de nodos.
Este

Código :

<thumbnails>
   <thumbnail 
      title="xxx"
      filename="xxx" 
      url="xxx" 
      description="xxx" 
//he añadido estos para muestra
      telefono="xxx"
      domicilio="xxx"
   />      
</thumbnails>


Despues crearías tantos Array como fueran necesarios y los añades al bucle for siguiendo el modelo que ya tienes.
Por supuesto que tendrias que crear los campos de texto necesarios para contener la nueva información

Por antonio_L

161 de clabLevel



Genero:Masculino  

de Linares

firefox
Citar            
MensajeEscrito el 02 Mar 2008 04:27 pm
Gracias mil antonio_L por tu respuesta.

He probado lo que me dices, pero no funciona. Necesito alterar el AS para conseguir montar más propiedades en el swf. La cosa es que no acierto cómo hacerlo.

Por flasheado

7 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 02 Mar 2008 06:54 pm
OK. Ya lo solucioné. Muchas gracias. Lo tenía en las narices y no daba con ello.

Por flasheado

7 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 02 Mar 2008 07:48 pm
Tengo una consulta más: deseo que el nodo email tenga una dirección de correo que enlace tipo "mailto:"; osea, poner en el AS algo así:

Código :

item_email = "<a href=\""+correos.childNodes[1].attributes.MAILTO+"\">"+correos.childNodes[1].firstChild+"</href>";

y en el XML algo así:

Código :

email="<a href='mailto:[email protected]'>Persona de contacto</a>"

Lo he intentado, pero no funciona. ¿Cómo podría hacerlo?

Por flasheado

7 de clabLevel



Genero:Masculino  

safari

 

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