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

Cerrar MovieClip al dar click a un boton

Estas en el tema de Cerrar MovieClip al dar click a un boton en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/10/2010, 13:35
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
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.
  #2 (permalink)  
Antiguo 15/10/2010, 17:55
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Cerrar MovieClip al dar click a un boton

Hola
e intentaste

Código actionscript:
Ver original
  1. btn.cerrar.addEventListener(MouseEvent.CLICK, CerrarServicio);
  2. //o
  3. function CerrarServicio(e:MouseEvent):void{

??
y que tiene la clase BotonCerrar?
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 15/10/2010, 19:34
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Cerrar MovieClip al dar click a un boton

Tampoco sale asi como lo has puesto.

La clase BotonCerrar contiene un simbolo que contiene la imagen del boton cerrar.

Antes de escribir y usar la funcion CargarHijos() y las que siguen abajo, si funcionaba.
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 16/10/2010, 17:23
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Cerrar MovieClip al dar click a un boton

Ha
entonces imagino que si pones en comentario las nuevas funciones
obtienes de nuevo correcto funcionamiento de la clase

si es así, entonces ve quitando los comentarios progresivamente
de cada función nueva, hasta cuando encuentres la que esta molestando

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 17/10/2010, 21:12
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Respuesta: Cerrar MovieClip al dar click a un boton

Creo que lo unico que necesitaba era descansar: Acabo de ver bien tu primera respuesta, lo que me faltaba poner era el argumento del MouseEvent en la funcion CerrarServicio.

Muchas gracias por tu tiempo.
__________________
El aprendiz.

Etiquetas: cerrar, dar, movieclip, botones
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 02:58.