Consultas al Blog: email desde Flash

Email

Seguimos atendiendo consultas bien en persona o por correo (consultas@iddeco.es es nuestro mail) y hoy contestamos a una cuestión que nos lleva a programar un poco dentro de Flash. ¿Cómo vincular a correo electrónico?

En primer lugar aclarar que NO estamos hablando de mandar el correo electrónico directamente desde la película Flash. Esto último NO es posible directamente sin la intermediación de tecnologías de servidor tales como PHP, JSP, ASP o similares. De todos modos, si estáis interesados en saber cómo se envía un “emilio” desde una interfaz Flash, este enlace a un tutorial del excelente site de Cristalab es lo que estáis buscando, a por él…

• Si lo que queréis es poner un enlace a una dirección de correo electrónico (como era el caso de esta consulta) os lo explicamos en una serie de pasos bien “migaditos”…

Nota: Antes que nada, si no queréis programar “na’ de na'” podéis usar el panel de comportamientos de Flash y añadir una acción de Web>Ir a página Web y tomar en cuenta el punto cero que ahora comentamos:

0) En principio decir que la sintaxis para enlaces de correo electrónico en la web siempre es mailto:nombre@dominio.com y en Flash tampoco cambia esa norma. Tened en cuenta que lo que hace un enlace de dicho tipo es abrir el programa de correo electrónico que uséis por defecto (Outlook, Mail, Entourage, Thunderbird, etc.) y crear un correo nuevo a dicha dirección. NO funciona por tanto para llamar a envío de correos de páginas web del tipo hotmail, gmail, yahoo, etc.

1) En segundo lugar, para llamar a un enlace web dentro de una película Flash tradicionalmente se empleaba el comando getURL, que en su sintaxis más simple funciona de este modo:

getURL(“mailto:pepepe@gmail.com“);

Es decir, la dirección web va entrecomillada.

Ahora mismo en el nuevo estándar de Actionscript 3.0 de Flash CS3 (la versión 9) la cosa va a cambiar (a peor desde mi punto de vista) y ahora tenemos que usar este otro comando:

navigateToURL (new URLRequest(“mailto:pepepe@gmail.com“));

2) Sólo tenemos que vincular ahora este comando dentro de un evento, por ejemplo de un botón, para ello en el Flash con Actionscript 2 (Flash 8 y anteriores), seleccionábamos el botón y escribíamos en el panel de Acciones:

Mucho cuidado que en el panel de acciones ponga “Acciones- Botón”, de otro modo quizá estamos colocando el código en el lugar equivocado.

GetURL en Actionscript 2.0
En Actionscript 2 un evento de botón con programación para
enviar correo electrónico quedaría así

En Actionscript 3.0 de Flash CS3 sería obligatorio darle un nombre a la instancia de botón y luego programar un evento de manera más compleja; por ejemplo si el botón se llama “miboton” como instancia en el Panel de Acciones para el fotograma 1 de la película (que ponga Acciones-Fotograma en el panel) escribiríamos:

miboton.addEventListener(MouseEvent.CLICK, enlaza);

function enlaza (evento:MouseEvent):void {

navigateToURL (new URLRequest(“mailto:pepepe@gmail.com“));

}

Actionscript 3.0 y enlaces
En Actionscript tanto la sintaxis para eventos como la de ir a una URL cambian,
y son más complejas y estrictas, en general como todo Actionscript 3.0

En definitiva, la transición a Actionscript 3.0 de Flash CS3 nos complica un poco la vida y tenemos que volver a aprender cómo hacer cosas que eran simples y conocíamos con Actionscript 2. Por supuesto, siempre puedes “obligar” a Flash CS3 a trabajar como era antes, pero en algún momento dejará de funcionar esto y habrá que ir haciéndose a la idea.


Comentarios (9)

  • noname
    |
    16 octubre, 2007 at 4:33 am

    NO FUNKA EL CODIGO

  • Jesús
    |
    16 octubre, 2007 at 11:57 am

    El código depende de si estás utilizando Actionscript (AS) 2.0 ó el 3.0 de Flash CS3. En todo caso en la imagen que tienes arriba se ve cómo se le asigna a un botón en AS2, es algo así:

    on (release){
    getURL(”mailto:pepepe@gmail.com“);
    }

    Si me dices algo más miramos a ver dónde está el fallo, pero te aseguro que funciona. Sólo quedaba matizar cómo asignarlo a un botón en AS2, en AS3 es como aparece arriba…

  • |
    7 noviembre, 2007 at 8:17 pm

    El codigo no acciona en Flash8 pero al pasar el SWf a Dreamweaver si funciona ?…..

  • |
    24 noviembre, 2009 at 6:02 am

    el codigo correcto es asi:

    botoncontacto.addEventListener(MouseEvent.CLICK, enlaza);

    function enlaza (event:MouseEvent):void {
    navigateToURL (new URLRequest(“mailto:xxxx@xxxxx.com”));
    }

  • jesuse
    |
    24 noviembre, 2009 at 9:56 pm

    Gracias Nikoleitor por la puntualización, de todas maneras el código que pones es casi el mismo que se cita arriba en el artículo, y de poner event o poner evento creo que da igual, es un nombre que toma el evento y lo importante es el tipo (el MouseEvent).

  • Carlos
    |
    4 enero, 2010 at 8:12 pm

    Me estaba volviendo loco.

    on (release){
    getURL(“mailto:pepepe@gmail.com”);
    }

    en as2 en local no me funcionaba,
    pero estoy seguro que antes funcionaba.
    pero ahora era porque tenia que ir a la configuracion del flash player
    y ponerle en parametros de seguridad global,
    y agregar el swf.
    Cambiando ese parametro si funciona ok.

    • jesuse
      |
      4 enero, 2010 at 8:48 pm

      Esas cosas de la seguridad global son un fastidio cuando estás probando en local, sí.
      Pero cuando lo cuelgas de Internet funcionan, sin necesidad de más. No obstante buen apunte…

  • |
    30 mayo, 2010 at 11:30 pm

    Hola queria comentar sobre el ejemplo de flash sobre el boton o link que abre el programa de correo predeterminado con navigateToURL. Resulta que si que funciona pero me habre mi programa de correo y el explorador de internet. ¿Sabrias decirme el porque de esto.
    Gracias

  • |
    1 junio, 2010 at 10:25 am

    Pues es extraño, Joaquín, pero probablemente sólo suceda al probarlo desde Flash, cuando lo cuelgues de Internet no habrá problema…
    ¿con qué versión y sistema lo estás probando?


Deja tu Comentario

¿Cookies, por qué?

Las cookies que utilizamos sólo son para estadísticas varias, nada del otro mundo. Sólo tienes que seguir navegando para aceptar que las utilicemos. No tenemos ningún plan malvado para la información que graba, si quieres saber más de cómo se utilizan en la política de cookies te contamos, si no con pulsar el botón siguiente ya te dejamos tranquilo ACEPTAR

Aviso de cookies