Consultas al Blog: email desde Flash
26 Julio, 2007 por
jesuse

Seguimos atendiendo consultas bien en persona o por correo (consultas@iddeco.net 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.

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“));
}

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.
Publicado en Consultas al Blog, Internet y Desarrollo Web, Multimedia y web, Trucos y tutoriales |
16th Octubre, 2007 at 4:33 am
NO FUNKA EL CODIGO
16th 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…
7th Noviembre, 2007 at 8:17 pm
El codigo no acciona en Flash8 pero al pasar el SWf a Dreamweaver si funciona ?…..