Comunidad de diseño web y desarrollo en internet online

DUDA CON XML Y AS3

Citar            
MensajeEscrito el 18 Dic 2011 06:36 pm
Hola, tengo este AS que me carga un menu en XML

Código ActionScript :

var loader:URLLoader = new URLLoader();

loader.addEventListener(Event.COMPLETE, xmlComplete);
loader.load(new URLRequest("datos.xml"));

function xmlComplete(e:Event):void
{
   var myXML:XML = new XML(e.target.data);
   var menu:Sprite = new Sprite();
   menu.x = 10;
   menu.y = 10;
   addChild(menu);
   
   for (var i:int = 0; i < myXML.boton.length(); i++)
   {
      var tmp:boton = new boton();

      tmp.titulo.texto_txt.text = myXML.boton[i].@texto;
      tmp.y = (tmp.height + 2) * i;
      tmp.ruta = myXML.boton[i].@seccion;
      tmp.addEventListener(MouseEvent.CLICK, onClick);
      tmp.mouseChildren = false;
      menu.addChild(tmp);
   }
}

function onClick(e:MouseEvent):void
{
trace (tmp);
};


El XML:

<menu>
<boton texto="INICIO" seccion="INICIO"/>
<boton texto="GALERIA" seccion="GALERIA"/>
</menu>

mi duda es como hago para que se creen columnas por ejemplo si la cantidad de datos en XML es mayor a X numero por ejemplo que si es mayor a 5 palabras que se forme otra columna?
Gracias.

Por chunilp

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Dic 2011 03:20 pm
Hola chunilp, a ver si esto te sirve:

Código ActionScript :

var j:Number = 0;
var k:Number = 0;
for (var i:int = 0; i < myXML.boton.length(); i++)
   {
      var tmp:boton = new boton();
      j++;
      k++;
      tmp.titulo.texto_txt.text = myXML.boton[i].@texto;


      if(k >= 5)
      {
           k=0;
           j++;
      }
      tmp.x = (tmp.height + 2) * j;
      tmp.y = (tmp.height + 2) * k;


      tmp.ruta = myXML.boton[i].@seccion;
      tmp.addEventListener(MouseEvent.CLICK, onClick);
      tmp.mouseChildren = false;
      menu.addChild(tmp);
   }
}

En principio debería ser algo así, ajusta el valor de "j" y "k" a los que tu quieras.
Ya me dirás.

Por Palacio

Claber

198 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Dic 2011 09:41 pm
Anda perfecto, el unico problema es que se ve asi....
http://arroyitocomercial.com.ar/as.swf


Me lo forma como una escalera :S.
Gracias ;)

Por chunilp

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Dic 2011 09:57 pm
Prueba con este:

Código ActionScript :

var j:Number = 0;
var k:Number = 0;
for (var i:int = 0; i < myXML.boton.length(); i++)
   {
      var tmp:boton = new boton();

      k++;
      tmp.titulo.texto_txt.text = myXML.boton[i].@texto;

      if(k >= 5)
      {
           k=0;
           j++;
      }

      tmp.x = (tmp.height + 2) * j;
      tmp.y = (tmp.height + 2) * k;

      tmp.ruta = myXML.boton[i].@seccion;
      tmp.addEventListener(MouseEvent.CLICK, onClick);
      tmp.mouseChildren = false;
      menu.addChild(tmp);
   }
}


En principio con no incrementar uno de los 2 contadores (j, k) en cada iteración del bucle debería ser suficiente.
Ya me dirás.

Por Palacio

Claber

198 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Dic 2011 10:07 pm
FUNCIONA PERFECTO, muchisimas gracias por tomarte la molesti :D.

Por chunilp

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Dic 2011 10:23 pm
No es nada, a todos nos gusta que nos echen una mano cuando la necesitamos.

Saludos

Por Palacio

Claber

198 de clabLevel



 

safari

 

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