El uso de XML en Actionscript 3 se ha vuelto muy sencillo gracias a E4X. Un ejemplo simple es completar un componente List con un archivo XML básico.
Código :
<datos> <datos label="Freddie" /> <datos label="Aoyama" /> <datos label="DanielSemper" /> <datos label="Dano" /> <datos label="DJ Konflëis" /> <datos label="Elcash" /> <datos label="Fael" /> <datos label="La100ra" /> <datos label="Mariux" /> <datos label="Maikel" /> <datos label="NEO_JP" /> <datos label="Pedro" /> <datos label="Ramm" /> <datos label="Zarzamora" /> <datos label="Zguillez" /> <datos label="_CONEJO" /> </datos>
En un principio lo hize en el fla creando un par de funciones...
Código :
import flash.net.URLRequest; import flash.net.URLLoader; import fl.controls.List; import fl.data.DataProvider; // var _list:List; var _xml:XML; var _request:URLRequest; var _loader:URLLoader; var _dataProvider:DataProvider; // function buildList():void { // _list = new List(); _list.setSize(150, 200); _list.move(10, 10); addChild(_list); } // function loadData(_xmlData:String):void { // _request = new URLRequest(_xmlData); _loader= new URLLoader(); _loader.load(_request); } // function xmlLoaded(event):void { // _xml = new XML(_loader.data); _dataProvider = new DataProvider(_xml); _list.dataProvider = _dataProvider; } // function addListeners():void { // _loader.addEventListener(Event.COMPLETE, xmlLoaded); } // buildList(); loadData("datos.xml"); addListeners(); //
Al ver esto me di cuanta que seria mas optimo crear un pequeña clase que cargue el XML, pasandole al constructor la instancia del List y el archivo XML.
Código :
package com.penholder.component{ // import fl.controls.List; import fl.data.DataProvider; import flash.net.URLRequest; import flash.net.URLLoader; import flash.events.Event; // public class FillList { // private var _list:List; private var _xml:XML; private var _xmlData:String; private var _request:URLRequest; private var _loader:URLLoader; private var _dataProvider:DataProvider; // public function FillList(list:List, xmlData:String):void { // _list = list; _xmlData = xmlData; // loadData(_xmlData); addListeners(); } // private function loadData(toLoad:String):void { // _request = new URLRequest(toLoad); _loader = new URLLoader(); _loader.load(_request); } // private function xmlLoaded(event):void { // _xml = new XML(_loader.data); _dataProvider = new DataProvider(_xml); _list.dataProvider = _dataProvider; } // private function addListeners():void { // _loader.addEventListener(Event.COMPLETE, xmlLoaded); } // } }
... y en el fla quedaria nada mas esto:
Código :
import fl.controls.List; import com.penholder.component.FillList; // var bofhList:List = new List(); bofhList.setSize(150,200); bofhList.move(10,10); addChild(bofhList); // var filler:FillList = new FillList(bofhList, "datos.xml");
y el resultado seria...
Gracias TheFricky por la ayuda
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Zguillez el 23 de Octubre de 2008
Pero.. ¿para que crear una instancia del componente List y luego otra de tu componente? Has que tu clase extienda de List y le añades los métodos que te interesen implementar..
la clase te quedaría asi:
Código :
Y en la clase Main
Código :
Por The Fricky! el 23 de Octubre de 2008
Buen tip
Por Chevy el 23 de Octubre de 2008
Por M@U el 24 de Octubre de 2008
Chevy-blog :
Por esutoraiki el 24 de Octubre de 2008
Código :
Por ???? el 06 de Noviembre de 2008
para llenar un puto listado tienes que escribir toda esa mamada?, cuando antes lo hacias con new XML y dataprovider en 4 lineas
Por penHolder el 07 de Noviembre de 2008
????-blog :
para llenar un puto listado tienes que escribir toda esa mamada?, cuando antes lo hacias con new XML y dataprovider en 4 lineas
eso cada vez que lo necesitabas, osea q si los necesitabas en 5 proyectos escribias 20 lineas, ahora se resume solo a 2 lineas en definitiva, por lo q en 5 proyectos la cantidad de lineas se reduce a 10, es una reutilidad del 50%...
Código :
recibe tu batzo amistozo con dignidad
Por Jose Alejandro el 08 de Noviembre de 2008
Por Cesar el 27 de Marzo de 2009
Por esutoraiki el 29 de Marzo de 2009
Hola man!!!. Una manera rapida que se me ocurre es que le cambies la posición al componente por medio de actionscript. si no puedes mover directamente el componente metelo dentro de un movieclip y mueve el movieclip. Claro esta teniendo en cuenta que depronto es necesario que le pongas un nombre de instancia al movieclip y que redirecciones algunas cosas
Por ViejoIvan el 10 de Mayo de 2009
Se les agradece saludos.
Por ClickPublicitario el 02 de Julio de 2009
Por edgar2231 el 30 de Agosto de 2011
graciaas por su valioso aporte o en mi correo
[email protected]
Por Flais el 21 de Agosto de 2013
Por ejemplo: tengo un diagrama de flujo al darle clic a cada boton me despliega una información la cual mando llamar desde un xml pero dentro de esta información desplegada necesito seleccionar una parte de texto y desplegar mas información pero en particular sobre ese texto seleccionado... ??? esperando me puedan ayudar... agradezco su atención!!...