Foros del Web » Creando para Internet » Flash y Actionscript »

Filtrar XML

Estas en el tema de Filtrar XML en el foro de Flash y Actionscript en Foros del Web. Hola, estoy haciendo una pagina en Flash, el asunto es que para uno de los menu tuve que crear de forma dinamica un submenu (con ...
  #1 (permalink)  
Antiguo 20/10/2010, 10:56
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Filtrar XML

Hola, estoy haciendo una pagina en Flash, el asunto es que para uno de los menu tuve que crear de forma dinamica un submenu (con datos que son llenados en la base de datos).

El menu se llama SERVICIOS y al darle click aparece un submenu con los servicios, al dar click en algun elemento del submenu me aparece la informacion del servicio y los subservicios que pertenecen al servicio, pero aqui esta el problema, me aparecen todos los subservicios incluso los que no pertenecen al servicio que seleccione.

Como puedo hacer la filtracion?

A continuacion les pongo el script de como esta actualmente, primero carga el submenu, al dar click a cualquier elemento de submenu aparece la informacion referente a ese elemento y debeia aparecer solo los subelementos (por asi decirlo) de ese elemento, pero me salen todos los subelementos.

Código AS3:
Ver original
  1. function CargarMenu()
  2. {
  3.   var ldrMenu:URLLoader = new URLLoader();
  4.   ldrMenu.addEventListener(Event.COMPLETE, CompleteHandler);
  5.   var reqMenu:URLRequest = new URLRequest(url);
  6.   ldrMenu.load(reqMenu);
  7. }
  8.  
  9. function CompleteHandler(e:Event):void
  10. {
  11.   datos = new XML(e.target.data);
  12.  
  13.   for (i = 0; i < datos.servicio.length(); i++) {
  14.       miBoton = new MovieClip();
  15.       miBoton.x = 580;
  16.       miBoton.y = 95 + i * 27;
  17.       miBoton.buttonMode = true;
  18.       miBoton.mouseChildren = false;
  19.  
  20.       stage.addChild(miBoton);
  21.       new Tween(miBoton, "alpha", Strong.easeOut, 0, 1, 1, true);
  22.  
  23.       CargarServicios();
  24.   }
  25. }
  26.  
  27. function CargarServicios():void
  28. {
  29.   boton = new MenuElemento();
  30.   boton.txtMenu.text = datos.servicio.nombre.text()[i];
  31.   miBoton.addChild(boton);
  32.  
  33.   Click(i);
  34. }
  35.  
  36. function Click(num:Number):void
  37. {
  38.   miBoton.addEventListener(MouseEvent.CLICK, MostrarServicio);
  39.  
  40.   function MostrarServicio(e:MouseEvent):void
  41.   {
  42.       details = new MovieClip();
  43.       details.x = 30;
  44.       details.y = 100;
  45.  
  46.       servicio = new Servicios();
  47.       servicio.txtTituloServicio.text = datos.servicio.nombre.text()[num];
  48.       servicio.textoClip.txtCuerpoServicio.text = datos.servicio.descripcion.text()[num];
  49.  
  50.       btn = new MovieClip();
  51.       btn.x = 820;
  52.       btn.y = 5;
  53.       btn.buttonMode = true;
  54.      
  55.       cerrar = new BotonCerrar();
  56.  
  57.       stage.removeChild(miBoton);
  58.       stage.addChild(details);
  59.       details.addChild(servicio);
  60.       details.addChild(btn);
  61.  
  62.       CargarHijos();
  63.      
  64.       btn.addChild(cerrar);
  65.  
  66.       new Tween(details, "alpha", Strong.easeIn, 0, 1, 1, true);
  67.       new Tween(btn, "alpha", Strong.easeIn, 0, 1, 2, true);
  68.  
  69.       btn.addEventListener(MouseEvent.CLICK, CerrarServicio);
  70.   }
  71. }
  72.  
  73. function CargarHijos():void
  74. {
  75.     var ldrHijos:URLLoader = new URLLoader();
  76.     ldrHijos.addEventListener(Event.COMPLETE, CompleteHandlerHijos);
  77.     var reqHijos:URLRequest = new URLRequest(urlHijos);
  78.     ldrHijos.load(reqHijos);
  79. }
  80.  
  81. function CompleteHandlerHijos(ev:Event):void
  82. {
  83.     xmlHijos = new XML(ev.target.data);
  84.  
  85.     for (c = 0; c < xmlHijos.hijo.length(); c++) {
  86.         hijo = new MovieClip();
  87.         hijo.x = 650;
  88.         hijo.y = 128 + (c * 170);
  89.         hijo.buttonMode = true;
  90.        
  91.         details.addChild(hijo);
  92.         new Tween(hijo, "alpha", Strong.easeIn, 0, 1, 1, true);
  93.        
  94.         llenarHijos();
  95.     }
  96. }
  97.  
  98. function llenarHijos():void
  99. {
  100.   loader = new Loader();
  101.   loader.load(new URLRequest(xmlHijos.hijo.imggrande.text()[c]));
  102.   hijo.addChild(loader);
  103.   ClickHijo(c);
  104. }
  105.  
  106. function ClickHijo(num:Number):void
  107. {
  108.     hijo.addEventListener(MouseEvent.CLICK, DetalleHijo);
  109.    
  110.     function DetalleHijo(e:MouseEvent):void
  111.     {
  112.         detHijo = new MovieClip();
  113.         detHijo.x = 30;
  114.         detHijo.y = 100;
  115.        
  116.         addChild(detHijo);
  117.        
  118.         serHijo = new Servicios();
  119.         serHijo.txtTituloServicio.htmlText = xmlHijos.hijo.nombre.text()[num];
  120.         serHijo.textoClip.txtCuerpoServicio.htmlText = xmlHijos.hijo.descripcion.text()[num];
  121.         serHijo.textoClip.txtCuerpoServicio.autoSize = TextFieldAutoSize.LEFT;
  122.         serHijo.txtTituloServicio.mouseEnabled = false;
  123.         serHijo.textoClip.txtCuerpoServicio.mouseEnabled = false;
  124.        
  125.         imgHijo = new MovieClip();
  126.         imgHijo.x = 650;
  127.         imgHijo.y = 128;
  128.        
  129.         ldrImgHijo = new Loader();
  130.         ldrImgHijo.load(new URLRequest(xmlHijos.hijo.imggrande.text()[num]));
  131.  
  132.         btnHijo = new MovieClip();
  133.         btnHijo.x = 820;
  134.         btnHijo.y = 5;
  135.         btnHijo.buttonMode = true;
  136.      
  137.         cerrarHijo = new BotonCerrar();
  138.  
  139.         stage.addChild(detHijo);
  140.         detHijo.addChild(serHijo);
  141.         detHijo.addChild(imgHijo);
  142.         detHijo.addChild(btnHijo);
  143.         imgHijo.addChild(ldrImgHijo);
  144.      
  145.         btnHijo.addChild(cerrarHijo);
  146.  
  147.         new Tween(detHijo, "alpha", Strong.easeIn, 0, 1, 1, true);
  148.         new Tween(btnHijo, "alpha", Strong.easeIn, 0, 1, 2, true);
  149.  
  150.         btnHijo.addEventListener(MouseEvent.CLICK, CerrarHijo);
  151.     }
  152. }

Espero que me puedan ayudar.

Gracias
__________________
El aprendiz.

Etiquetas: filtrar, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:45.