El botón eliminado con removeChild () se vuelve a agregar en su estado final

Tengo un SimpleButton en el escenario, y en el evento de clic para él, lo elimino usando removeChild(). Cuando se vuelve a agregar el botón, se vuelve a agregar en su estado "terminado", no en el estado "activo" como se esperaba.

Estoy bastante seguro de que es un error, así que presenté una JIRA: http://bugs.adobe.com/jira/browse/SDK-31445, mi pregunta ahora es cómo solucionarlo, si alguien ha tenido una experiencia similar.

Lo que he intentado:

  • usar visible = false en su lugar, funciona, pero preferiría eliminarlo del escenario por completo, ya que el juego en el que estoy trabajando puede tener muchas ventanas emergentes / pantallas.
  • Disparando el mouse_out evento manualmente - no funciona, y en cualquier caso, el mouse_out el evento se activa como se esperaba (quizás antes de restablecerse al estado activo, hace una verificación para ver si se agregó a la etapa, descubre que no lo es y luego se cierra antes)
  • Restablecimiento del enfoque del escenario: pensé que era un problema con el enfoque del escenario, ya que estabas perdiendo el enfoque cuando el botón estaba oculto, pero restablecerlo no lo solucionó.
  • Podría cambiar temporalmente el estado over and up cuando está oculto, pero parece una mala solución.

preguntado el 05 de septiembre de 11 a las 09:09

¿puedes publicar el código? porque creo que no es un error, sino algunos errores lógicos dentro del código. -

Si sigue el enlace a la jira, hay un zip que contiene un proyecto y un código:

hmm, sólo le eché un vistazo rápido. A mí también me parece un error. Me di cuenta de que no tenía el error al reproducirlo en mi Flash Player o en FireFox. (Solo lo obtuve en IE y Chrome). ¿Quizás deberías hacer tu propio botón personalizado? -

¿Le está dando al botón un nombre de instancia? Si es así, intente no darle un nombre de instancia (solo para ver si funciona). Si necesita un nombre de instancia, modifique visible es probablemente el camino a seguir. -

de la documentación sobre upState: ||| Especifica un objeto de visualización que se utiliza como objeto visual para el estado del botón hacia arriba: el estado en el que se encuentra el botón cuando el puntero no está posicionado sobre el botón. ||| Dado que se está llevando a cabo la eliminación del objeto, no se está produciendo ningún evento MOUSE_OUT; de lo contrario, cuando utiliza visible false, está sucediendo. -

1 Respuestas

También he tenido este problema, quitando un botón y agregando otro en respuesta a un evento Mouse up en un sprite separado .. Es decir, el mouse no está sobre ninguno de los botones en ese momento, pero cuando el primer botón ( el que tenía el problema) se eliminó previamente, el mouse estaba de hecho sobre él, por lo que no recibió un evento mouseOut y se mantuvo en el estado over. Usar la visibilidad para solucionar esto, lo cual está bien para mis necesidades, PERO la respuesta alternativa sería reemplazarlo con una nueva instancia del botón antes de agregarlo a la Lista de visualización.

Respondido 19 Oct 11, 02:10

Gracias por la respuesta Noisy. Sin embargo, se está disparando un evento mouseOut en el botón (descargue el código de la jira y verá), por lo que creo que es un error. Reemplazarlo con una nueva instancia no es una mala idea, pero no me gusta crear nuevos objetos cuando no tengo que hacerlo, y se rompe cuando estás usando Flash para tu arte (es decir, y el artista puede hacer un GUI para usted. En ese caso, el botón en sí está configurado para exportar, solo la GUI principal) - salchichas divilly

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.