Comunidad de diseño web y desarrollo en internet online

botón que muestre un dato aleatorio de un xml (AS3)

Citar            
MensajeEscrito el 11 Sep 2009 06:28 pm
Hola, estoy peleándome hace rato con AS3 y, si bien ya logré un par de cosas, no sé cómo hacer que se unan.

Necesito que un botón muestre un par de datos específicos de un xml en una caja de texto de forma aleatoria, cada vez que lo presiono debe mostrarme un dato diferente.

Tengo esto

Código ActionScript :

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

xmlLoader.load(new URLRequest("http://www.kirupa.com/net/files/sampleXML.xml"));

function LoadXML(e:Event):void {
   xmlData=new XML(e.target.data);
   ParseBooks(xmlData);
}

function ParseBooks(bookInput:XML):void {
   //trace("XML Output");
   //trace("------------------------");

   var authorList:XMLList=bookInput.Book.author;

   for (var i:int = 0; i < authorList.length(); i++) {
      var authorElement:XML=authorList[i];

   }
   //trace(authorList[1]);
}



boton.addEventListener(MouseEvent.CLICK, meApretaste);

function meApretaste(e:MouseEvent) {
   trace("Me Clickiaste");
}


Funciona, carga el xml, el botón también funciona, no ha sido difícil, pero no logro juntarlos.

Soy medio lento en entender, sería estupendo si lo colocas super explicadito :oops:

gracias!!!

Por jose3001

4 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 11 Sep 2009 06:50 pm
Podrias almacenar los datos que obtines del XML y guardarlos en un Array y luego acceder al Array con un parametro aleatorio

Código ActionScript :

//agregando algunas lineas
var arreglo:Array = new Array();
   for (var i:int = 0; i < authorList.length(); i++) {     
  var authorElement:XML=authorList[i];  
arreglo.push(authorList[i]);
   } 
boton.addEventListener(MouseEvent.CLICK, meApretaste);
  function meApretaste(e:MouseEvent) { 
   trace("Me Clickiaste");
   trace(arreglo[Math.random()*arreglo.length()]);
 }


Nota: no he probado el codigo, asi que puede que se me haya pasado algun detalle, pero en si esa es la idea :D

Por Keith_NT

451 de clabLevel

3 tutoriales

 

México, Estado de México

msie8
Citar            
MensajeEscrito el 12 Sep 2009 08:15 pm
ahh, olvide el Math.floor()

Código ActionScript :

//agregando algunas lineas 
var arreglo:Array = new Array();  
  for (var i:int = 0; i < authorList.length(); i++) {    
    var authorElement:XML=authorList[i];
    arreglo.push(authorList[i]);   
 }  
boton.addEventListener(MouseEvent.CLICK, meApretaste);  
 function meApretaste(e:MouseEvent) {
     trace("Me Clickiaste");
    trace(Math.floor(arreglo[Math.random()*arreglo.length()]));
  } 


Otra vez: no he probado el codigo, asi que puede que se me haya pasado algun detalle, pero en si esa es la idea

Por Keith_NT

451 de clabLevel

3 tutoriales

 

México, Estado de México

msie7
Citar            
MensajeEscrito el 13 Sep 2009 12:23 am
Pues sí!!, funcionó! he tenido que modificar algunas cosas pero me imagino que depende del proyecto, tu ejemplo estuvo clarísimo!! Gracias!

Por jose3001

4 de clabLevel



Genero:Masculino  

chrome

 

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