Comunidad de diseño web y desarrollo en internet online

Componentes List y xml

Citar            
MensajeEscrito el 22 Abr 2010 10:42 pm
Alguien me puede decir como utilizar el componente List y que cada fila del list sea cogido de un xml. O enviarme a un ejemplo. O si no como hacer algo parecido con su scroll y demas gracias. Tb me gustaria que las lineas de separación en el list de cada fila no apareciera. Gracias.

Por LeonSoft

15 de clabLevel



 

msie8
Citar            
MensajeEscrito el 23 Abr 2010 10:04 am
Ahi tienes un ejemplo:

1. añade un componente list y uno label a la biblioteca.
2. pega este codigo en el primer frame:

Código :

import fl.data.DataProvider;
import fl.controls.List;
import fl.controls.Label;
import fl.controls.Button;
import flash.net.*;
import fl.events.ListEvent;

//creamos las variables para el componente list, label, y el dataprovider
var lista_de_tiendas:List = new List();
var dp:DataProvider = new DataProvider();

//Importamos el XML
//cambiar * por el nombre de tu archivo
var url:URLRequest=new URLRequest('*.xml');
var loadUrl:URLLoader=new URLLoader(url);

loadUrl.load(url);
loadUrl.addEventListener(Event.COMPLETE, onComplete);
function onComplete(e:Event):void {
//Al cargar el archivo xml lo introducimosen una var de tipo XML
   var xml_data:XML=new XML(e.target.data);
/*Esta parte varia dependiendo de la estructura de tu xml ahi tendras que 
ver tu como creaste tu xml
y cargar los datos en el dataprovider con el metodo addItem().*/
   for each (var item in xml_data.tienda) {
      //trace(item.@nombre);
      dp.addItem({label:item.@nombre});
   }
   //asignamos el DataProvider al componente list configuramos su tamaño 
       //y lo colocamos donde queramos
   lista_de_tiendas.dataProvider=dp;
   lista_de_tiendas.setSize(240,250);
   lista_de_tiendas.move(10,32);
       //añadimos el componente list
        addChild(lista_de_tiendas);

   //Creamos eventos para cada item del componente list
   lista_de_tiendas.addEventListener(ListEvent.ITEM_CLICK,itemClick);
   lista_de_tiendas.addEventListener(ListEvent.ITEM_ROLL_OVER,itemRollover);
   lista_de_tiendas.addEventListener(ListEvent.ITEM_ROLL_OUT,itemRollout);
   
   function itemClick(e:ListEvent){
      trace("clico");
   }
   function itemRollover(e:ListEvent){
      trace("Paso sobre un item");
   }
   function itemRollout(e:ListEvent){
      trace("Saco el raton de un item");
   }
}


Respecto a lo de las lineas... no se en realidad como hacerlo supongo que o es editando el componente desde la biblioteca o con cellRenderer. Te recomiendo que busques un poco en la ayuda (incluso antes de preguntar ^^ )

Saludos!

Por Atomsk

350 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 23 Abr 2010 03:34 pm
Haciendo todo esto tengo un error no se si me he metido en materias imposibles (que tambien puede ser por mi conocimiento) o pq lo estoy haciendo mal. Como he comentado en algun otro post estoy intentando hacer un mp3 en flash que a traves de php lea un directorio (donde estan los mp3) y a traves de las id3 de las canciones las muestre.
Pues bien consigo todo menos hacer una lectura "previa" de todos los id3 de las canciones
Ya que lo unico que consigo es que me repita el id3 de la primera cancion tantas veces como canciones tengo.

for(var mySong:Number=0; mySong < my_total; mySong++){
myURL = playlist[mySong].@URL;
trace (myURL);
listandosonido = new Sound();
listandosonido.load(new URLRequest(myURL));
listandosonido.addEventListener(Event.ID3,id3Handler);
listando.lista_mc.addItem({label:clinea, data:mySong});
}

function id3Handler(evt:Event) {
var id3:ID3Info = ID3Info(sonido.id3);
nombre_txt.text = id3.songName;
autor_txt.text = id3.artist;
anyo_txt.text = id3.album+" ("+id3.year+")";
clinea=cancion+".-"+id3.artist+"-"+id3.songName+" ("+pasarMil(sonido.length)+")";

}

Por LeonSoft

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Abr 2010 11:06 pm
Puedes poner el codiho completo? sino no creo que pueda ayudarte...

Por Atomsk

350 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 25 Abr 2010 11:09 pm
Te lo pego todo (las 300 lineas de codigo) lo digo pq esta parte creo que es la importante (digo creo pq tampoco veo si algo fuera de mi vision puede afectar).

Por LeonSoft

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Abr 2010 11:59 pm
Por cierto por si sirve a alguien incluso estoy pensando en reiniciar el sonido pero no se como se hace.

if (cargadolista==0) {
listando.sonando.type = TextFieldType.DYNAMIC;
listando.sonando.border = false;
listandosonido = new Sound();
for(var mySong:Number=0; mySong < my_total; mySong++){
myURL = playlist[mySong].@URL;
listandosonido = new Sound();
listandosonido.load(new URLRequest(myURL));
//listandosonido.play();
listandosonido.addEventListener(Event.ID3, id3Handler2);
trace (myURL);
//para ver primera cancion clinea y quitamos el comentario de abajo
//listandosonido.addEventListener(Event.ID3,id3Handler);
listando.lista_mc.addItem({label:clinea, data:mySong});
cargadolista=1;
}
}

Como veis con trace myURL me sale la ruta perfectamente de los mp3 si pongo play se van sumando y se van reproduciendo todos, por tanto el load funciona pero cuando paso supuestamente cada mp3 por el id3 solo me da la informacion de la primera, como ya no se que pensar he pensado de que se va almacenando todo en listandosonido especie de un array y que solo me da la informacion del primer miembro de la array por tanto quiero reiniciar o cortar la carga no se algo para que cada load sea una variable.

Por LeonSoft

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Abr 2010 10:50 pm
Por cierto ya he arreglado todo esto, ahora tengo un error para mi todo raro y es que la lista me la carga en orden (el archivo swf) este archivo lo incluso al html (normal) lo visualizo en explorer se ve bien la lista, lo visualizo en firefox sale la lista desordenada, esto es importante pq si pulso sobre el nombre de una cancion quiero que me salga esa cancion reproduciendose no otra.

Sabeis pq puede ser, el swf ordenado este al verlo con firefox sale mal.

Por LeonSoft

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Abr 2010 03:52 pm
Solo tengo una respuesta a eso:
IHNI -> I Have No Idea ^^.

Haber si alguien mas por aqui te puede ayudar...

Por Atomsk

350 de clabLevel

3 tutoriales

 

firefox

 

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