LeoBaraldi – Ejemplos Flash, Ejemplos actionscript, Tutoriales Flash, Tutoriales actionscript, actionscript 3, curso de actionscript

Recursos y ejemplos de actionscript, Flash, AIR, Flex, CSS y HTML. Tutoriales de actionscript 2 y actionscript 3

Desencadenar eventos en flash, uso de botones y movieClip

| 9 Comments

Entre las tantas cosas que pueden desencadenar eventos en flash como por ejemplo si movemos el Mouse, si abrimos una película, si presionamos una tecla, también tenemos los botones.
Los botones en flash tienen la particularidad (entre tantas) de cuando le hacemos clic pueden realizar algo (evento), este evento tiene una manera y un ámbito de donde se desarrolla.
Ejemplo 1:

Actionscript:
  1. mi_boton_btn.onRelease = function (){
  2. //aquí la acción a realizar
  3. }

 

Ejemplo 2:

Actionscript:
  1. onRelease(){
  2. //aquí la acción a realizar
  3. }

En ambos ejemplos  usamos el detector (onRelease) que significa que el evento se va a desencadenar cuando el usuario presione y suelte el botón.
La diferencia de ambos ejemplos son que de la primera forma debemos indicar el nombre de instancia del botón que queremos detectar el evento y dicha porción de código será escrita sobre un frame.
En el segundo caso la acción esta incluida en el botón mismo.
En mi caso particular trato de evitar los botones como símbolo, y utilizo en su reemplazo clip de película, que estos pueden recibir las mismas propiedades de un botón mas los comportamientos típicos de un clip de película.

Como ya vimos un boton o clip de pelicula puede recibir o detectar el evento onRelease (cuando se presiono y se soltó el botón del Mouse) pero no es el único evento estos pueden recibir.

Sigamos con el caso de que tengamos una película y esta la usamos como si fuese un botón, los eventos entre tantos que este detectaría seria los siguientes.
Observen por ustedes mismos que el nombre de instancia usa el subfilo “_mc” al tipear un punto “.” Automáticamente flash nos desplegara todas las propiedades y eventos disponibles. Por supuesto que esta manera de escribir el codigo es para colocarlo en un frame de nuestra linea de tiempo.

Actionscript:
  1. miPelicula_mc.onRelease = function (){
  2. //accion al hacer clic y soltar el mouse
  3. }
  4.  
  5. miPelicula_mc.onRollOver = function (){
  6. //accion al pasar el Mouse por arriba
  7. }
  8.  
  9. miPelicula_mc.onRollOut = function (){
  10. //accion al salir el mause sobre la pelicula
  11. }
  12.  
  13. miPelicula_mc.onMouseMove= function (){
  14. //accion al mover el cursor del mouse
  15. }
  16.  
  17. miPelicula_mc.onPress= function (){
  18. //accion al presionar el mouse
  19. }

Prueben ustedes mismo mas opciones, pero un ejemplo practico y sencillo seria tener un objeto en nuestro escenario y al presionarlo es se arrastre (Drag) y al soltar el Mouse este deje de arrastrarse.

Actionscript:
  1. miPelicula_mc.onPress= function (){
  2. this.startDrag ()
  3. }
  4.  
  5. miPelicula_mc.onRelease= function (){
  6. this.stopDrag ()
  7. }

Nuestro primer evento indica que mientras este presionado el mouse esta (this) pelicula se arrastre.
El segundo evento se desencadenara cuando soltemos el Mouse, por lo tanto esta (this) pelicula dejara de arrastrarse.

NOTA: Como pueden ver usamos la particula (this) que hace referencia directamente a mi mismo, seria lo mismo escribirlo de esta manera:

Actionscript:
  1. miPelicula_mc.onPress= function (){
  2. miPelicula_mc.startDrag ()
  3. }
  4.  
  5. miPelicula_mc.onRelease= function (){
  6. miPelicula_mc.stopDrag ()
  7. }

Pero de esta manera queda poco prolijo y en un tiempo fututo les puede traer algunos problemas, asi que siempre cuando nos refiramos a nosotros mismos podemos reemplazar nuestro nombre de instancia o lo que sea por “this

Author: LeoBaraldi

Diseñador gráfico y programador en Web, con experiencia profesional en el rubro desde 1998. Experto en diseño de interfaces Frontend y Backend, sitios, portales y dispositivos móviles. Experto en estándares, CSS y HTML, amplios conocimientos en CEO. Desarrollador de sitios multi plataformas, HTML5, CSS3 y JQuery. Experto programador en Adobe Flex, AIR y ActionScript 3.0. Conocimientos en lenguajes como PHP, Javascript y bases de datos MySQL. Profesor de Diseño y Diseño Web en la Escuela Superior de Diseño Aguas de la Cañada, asesor y colaborador para medios gráficos, editoriales y revistas afines. Actualmente Jefe de Producción en Manifesto solutions.

9 Comments

  1. Hola me llamo Dejaan y me gustaria que me expliquen bien los eventos de boton porq tengo algunas dudas sobre todo cuando trato de activarlo al presionar las teclas no me sale con las teclas a...z nose porq ,y cuando uno el evento de precionar con enter nose como hacer para que cambie de color , como si estubiera presionado

  2. Ok Dejann entiendo lo que necesitas, esta noche te subo un ejemplo de lo que queres hacer.

  3. Estoy empezando con el mundillo este de flash y la verdad me encanta lo bien que explica, espero que pronto suba de nivel, me ha aclarado más de una duda.

    muchas gracias y ánimo.

  4. Hola, tengo un grave problema con mi pelicula, por favor les ruego me ayuden.

    cuando quiero hacer esto flash no me lo permite:

    mgallery["item"+i].onRelease = function(){lo que quiero que haga}

    sucede que mgallery es un MC que creo en tiempo de diseño, pero ["item"+i]lo creo en tiempo de ejecucion, es decir:

    mgallery.createEmptyMovieClip("item"+i, i);

    pero entonces como hago, necesito que el evento me haga caso.

    lo que estoy haciendo es una galeria en donde esten varias discotecas y al hacer click en una de ellas, me cargue una primera imagen de esa discoteca en un contenedor que muestra pues la imagen pero mas grande y que debajo del contenedor tenga 2 botones, > y >.

    les dejo el codigo del XML y del ActionScript para que lo vean en mas detalle.

    XML:

    ACTIONSCRIPT:

    x = 0;
    y = 0;

    ancho = 60;
    alto = 45;

    miXML = new XML();
    miXML.ignoreWhite = true;
    miXML.load("galeria.xml");
    miXML.onLoad = function()
    {
    menu = miXML.firstChild;
    for (var i=0;i

  5. Buenos días. Mi problema está con los botones, pero no cualquiera, sino los arrastres. Necesito que dos botones de arrastres distintos (MC_F07 y MC_F06) puedan ir indistintamente a dos cajas destino (CajaF07 y CajaF06). A su vez estas cajas se "anularían" para no poder poner una pieza sobre otra. De momento he duplicado condicionales y los arrastres pueden ir a cualquier destino, pero ahora no sé bien cómo condicionarlas. ¿Me podrias ayudar? Gracias

  6. el problema que tengo es q deseo aprener a manejar los botones para que de una foto a otra me lleve como haciendo un recorrido precionando entrar y eso me lleve a otra foto
    de un lugar especifico

  7. hola leo tengo un problema mundial, porke he estado buscando soluciones en la web y veo ke vrias personas tienen el mismo problema... bueno el problema es que tengo una pagina web hecha en frames, digamos frame izquierdo(donde tengo botones flash de navegacion), y frame derecho(donde esta el contenido) el problema es que cuando hago clik en los botones flash para que se carge una nueva pagina en el frame de contenido... no carga nada y en ves de eso abre la nueva pagina de contenido en una ventana nueva... brodersi tuvieras la solucion y me puedes enviar el fla... o algo para solucionarlo.... te lo agradeceria mucho ...porfavor!! no puedo dormir por este f***** problema... gracias de antemano

  8. hola
    estaba trabajando en una pagina web en flash cs3 y se cerro, cuando trato de abrir el fla dice" no se pudo abrir tal archivo, no me da una respuesta , una causa , alguien sabe como solucionarlo?

  9. ¡Hola!
    mi nombre es Nicolás,esty realizando un trabajo para niños de primer grado y necesito saber como hacer un crucigrama sencillo para las cinco vocales y un ejemplo de arrastrar textos u objetos. por favor enviarmelas a mi correo

    Gracias señor Leo Baraldi

Deja un comentario

Required fields are marked *.

*