Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2010, 13:35
juandedios
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Cerrar MovieClip al dar click a un boton

Hola, al dar click a un menu generado con AS3 y XML hago que aparezca un movie clip con la informacion referente al menu, todo eso sale perfeto, el problema viene cuando quiero darle click al boton que le he puesto para Cerrar, simplemente no cierra.

Les pongo el script que genera los menu y el contenido de cada menu al hacer click, no se que puede estar yendo mal, si alguien detecta el error, por favor me lo hace saber.

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

Gracias de antemano.
__________________
El aprendiz.