Cargar XML en un componente List en Actionscript 3
Este es un ejemplo de clase que extiende el componente List de Flash y le añade la posibilidad de cargar el contenido desde un archivo XML externo.
Este ejemplo de clase surguió a partir de optimizar un clase que me mostró penHolder en Cristalab. Aqui pueden ver su codigo y el post original.
Basicamente mi aporte fue hacer que la clase extendiese de List para no tener que crear una instancia del componente y pasarla como parametro a otra clase, ya que nuestra intención es crear un mismo componete List pero que contenga unos metodos ampliados, en este caso que contewnga un metodo para cargar los datos desde un archivo XML.
- package
- {
- import fl.controls.List;
- import fl.data.DataProvider;
- import flash.net.URLRequest;
- import flash.net.URLLoader;
- import flash.events.Event;
- //------------------------------------
- public class FillList extends List
- {
- private var _xml:XML;
- //------------------------------------
- public function FillList():void { }
- //------------------------------------
- public function setData(url:String):void
- {
- var request:URLRequest = new URLRequest(url);
- var loader:URLLoader = new URLLoader();
- loader.load(request);
- loader.addEventListener(Event.COMPLETE, xmlLoaded);
- }
- private function xmlLoaded(e:Event):void
- {
- _xml = new XML(e.target.data);
- dataProvider = new DataProvider(_xml);
- }
- //------------------------------------
- }
- }
Para crear la instacia colocariamos este codigo enb la clase Main:
- package
- {
- import flash.display.MovieClip;
- import fl.controls.List;
- import FillList;
- //------------------------------------
- public class Main extends MovieClip
- {
- private var bofhList:FillList;
- //------------------------------------
- public function Main()
- {
- bofhList = new FillList();
- bofhList.setData("datos.xml");
- bofhList.setSize(150,200);
- bofhList.move(10,10);
- addChild(bofhList);
- }
- //------------------------------------
- }
- }
Compártelo:
Visto 13.273 veces
ya lo sabes… _O_
Muy buen ejemplo, pero si quisieramos cargar un titlelist y se encuentra en otro moveclip como seria la llamada para la carga de la data:
¿?
@H-A: La carga de los datos no varia por la posición del titleList… Con la función “xmlLoaded” guardas los datos en una variable “_xml ” únicamente has de acceder a esa variable a través de un setter para clocarlo donde te interese.
Parese bueno, pero no logro cargar el xml… siempre me devuelve un error…
1017: No se encontró la definicón de la clase base List.
Que puede estar fallando?
NIco