Comunidad de diseño web y desarrollo en internet online

Crear un encuesta en flash

Citar            
MensajeEscrito el 22 Ene 2010 06:26 am
Vamos a crear una encuesta sencilla con Flash, Actionscript y PHP, usando un contador de visitas y el tutorial "Skip Intro" en Flash por SharedObjects”. Quedará como esto:


Bien comenzamos


La encuesta en este caso pregunta "¿Esta complicada la encuesta?" con las opciones de sí o no. Esto nos dice que deberemos crear dos contadores o dos php, uno para SI y otro para NO. Elije tu contador de cabecera, ya sabes un php y un txt y crea uno para cada una de las opciones.

En mi caso este es el codigo del php que utilizo :

Código PHP :

<?php
//Creamos la variable del archivo donde se guardarán el número de visitas
$rutaArchivo = "tu.txt";

//Abrimos el archivo en modo de lectura
$elArchivo = fopen($rutaArchivo, "r");

//Leemos el contenido del archivo
$totalVisitas = fread($elArchivo, filesize($rutaArchivo));

//Cerramos la conexión al archivo cuando lo hayamos leido.
fclose($elArchivo);

//Abrimos nuevamente el archivo para agregar los datos.
$elArchivo = fopen($rutaArchivo, "w");

//Aumentamos el contador en 1. RECORDA QUE ACA VA EL + 1;
$totalVisitas = $totalVisitas+1;

//Reemplazamos el antiguo valor, por la nueva cantidad de visitas.
fwrite($elArchivo, $totalVisitas);

//Cerramos la conexión al archivo
fclose($elArchivo);

//Enviamos el número de visitas a Flash
echo "&totalVisitas=".$totalVisitas;
?>

Nota: mismo nombre, misma carpeta o ubicación, recuerden habilitar en el servidor todos lo permisos y escribir un 0 en el txt y guardar (algunas veces es necesario el 0).

Bien, hasta aquí lo unico que hicimos, es que nuestro php sume de uno en uno, cada vez que se le solicite.
Pero nosotros, tambien queremos mostrar estos datos, osea, una vez que el señor se echo uno, un voto, debemos presentarle la cantidad de votos que lleva nuestra encuesta, asi que creamos otro php y otro txt pero con una diferencia minima en el codigo:
Como ven en esta seccion del codigo anterior ,aquí se aumenta el contador

Código PHP :

//Aumentamos el contador en 1. RECORDA QUE ACA VA EL + 1;
$totalVisitas = $totalVisitas+1;


Bien en este segundo php vamos a eliminar el +1

Código PHP :

<?php
//Creamos la variable del archivo donde se guardarán el número de visitas
$rutaArchivo = "tu.txt";

//Abrimos el archivo en modo de lectura
$elArchivo = fopen($rutaArchivo, "r");

//Leemos el contenido del archivo
$totalVisitas = fread($elArchivo, filesize($rutaArchivo));

//Cerramos la conexión al archivo cuando lo hayamos leido.
fclose($elArchivo);

//Abrimos nuevamente el archivo para agregar los datos.
$elArchivo = fopen($rutaArchivo, "w");

//Aumentamos el contador en 1. RECORDA QUE ACA NO VA EL + 1;
$totalVisitas = $totalVisitas;

//Reemplazamos el antiguo valor, por la nueva cantidad de visitas.
fwrite($elArchivo, $totalVisitas);

//Cerramos la conexión al archivo
fclose($elArchivo);

//Enviamos el número de visitas a Flash
echo "&totalVisitas=".$totalVisitas;
?>

Bueno, aqui hicimos el contador para SI y el visor par SI, ahora, tendriamos que hacer lo mismo para NO su contador y su visor.
Hacen lo mismo que en los pasos anteriores pero diferentes nombres.
Aunque se podria hacer todo en un mismo php, preferi dejarlo asi para que se entienda mejor.

Pasemos a flash


Lo primero que hacemos es crear nuestros dos botones, donde podras votar opcionalmente por SI o por NO.
Comenzamos viendo la imagen de ejemplo:


En el primer frame de nuestra escena creamos los dos botones y damos el aspecto que mas nos guste en cuanto al diseño ( el mio esta bien feito pero en fin…)
En este primer frame colocamos un stop(); asi no corre a los siguientes frames.

Nota: Aquí abrimos un paréntesis para explicar otro detalle de nuestra encuesta:

Gracias a el tutorial del objeto SharedObjects “este es un objeto que nos permite grabar datos de quien ingresa a nuestro sitio en su computadora de forma local, sería algo similar a las famosas cookies pero personalizadas en el mismo Flash.”
Podemos restringirles el voto a las personas , una vez que estos hallan votado, “No es recomendable usar este objeto para aplicaciones en las cuales se requiere mucha seguridad”

Codigo para el boton SI

Código ActionScript :

on (release){
//la cookie
newContenedor = SharedObject.getLocal("MyCookie");
if (newContenedor.data.presentacion == undefined) {
contenedor = SharedObject.getLocal("MyCookie");
contenedor.data.presentacion = "si";
contenedor.data.fechaDeIngreso = new Date(Date.UTC());
contenedor.flush();
delete contenedor;

//Creamos una instancia de LoadVars
var cargadorsi:LoadVars = new LoadVars();
//Hacemos un llamado al archivo PHP

cargadorsi.load("http://www.tusitio/tu.php");

//Función que atiende al llamado onLoad
cargadorsi.onLoad = function(exito){
if (exito) {

si_txt.text = this.totalVisitas;
gotoAndStop("gracias");

} else {

si_txt.text = "Error";
}
}

} else {
gotoAndPlay("yavoto");
}
stop();
}

Como veran aquí esta presente el codigo que aumenta la votacion y nuestro SharedObject contemplando que este tio ya voto.
Cuando esta persona vota es direccionado hasta el frame “gracias” en este caso el frame 5, donde lo mima diciendole gracias por votar etc etc…
Si esta persona volviese a votar nuevamente lo llevaria al frame 10 o “yavoto” donde solo le mostraria los resultados de la encuesta y lo insultaria por tramposo jeje…
Codigo boton NO:

Código ActionScript :

on (release){
newContenedor = SharedObject.getLocal("MyCookie");
if (newContenedor.data.presentacion == undefined) {
contenedor = SharedObject.getLocal("MyCookie");
contenedor.data.presentacion = "si";
contenedor.data.fechaDeIngreso = new Date(Date.UTC());
contenedor.flush();
delete contenedor;

//Creamos una instancia de LoadVars
var cargadorsi:LoadVars = new LoadVars();
//Hacemos un llamado al archivo PHP

cargadorsi.load("http://tusitio/tu.php");

//Función que atiende al llamado onLoad
cargadorsi.onLoad = function(exito){
if (exito) {

no_txt.text = this.totalVisitas;
gotoAndStop("gracias");

} else {

no_txt.text = "Error";
}
}

} else {
gotoAndPlay("yavoto");
}
stop();
}

Nota: es el mismo codigo con la diferencia que el load enfoca hacia el otro php

Siguiente frame


Pasemos al frame siguiente 5 o “gracias” donde mostraremos los resultados.
Aquí le damos un nombre a nuestro frame, ya saben : “gracias” y creamos 2 campos de texto dinamico con nombre de instancia
siver
nover


Ahora a nuestro frame le insertamos el codigo que va a mostrar los resultados de las votaciones:

Codigo para ambos campos de texto:

Código ActionScript :

//Creamos una instancia de LoadVars
var cargadorsiv:LoadVars = new LoadVars();
//Hacemos un llamado al archivo PHP
cargadorsiv.load("http://www.tusitio/tuver.php");
//Función que atiende al llamado onLoad


cargadorsiv.onLoad = function(exito){
if (exito) {

siver.text = this.totalVisitas;



} else {

siver.text= "Error";
}
}
//--------------------------------------------------------------------
//Creamos una instancia de LoadVars
var cargadornov:LoadVars = new LoadVars();
//Hacemos un llamado al archivo PHP

cargadornov.load("http://www.tusitio/tuver.php");
//Función que atiende al llamado onLoad
cargadornov.onLoad = function(exito){
if (exito) {

nover.text =this.totalVisitas;
} else {
//Si no se logró cargar se desplegará un error.
nover.text = "error";
}


}


Como pueden observar estos codigos apuntan a los php que no suman, sino que muestran los resultados de estas.

Siguiente frame



Este ultimo frame (10) sera llamado: “yavoto”
El codigo a utilizar aquí es exactamente el mismo que en el keyframe anterior (gracias)
Ya que solo mostrara los resultados de la encuesta.
Este frame sera mostrado cada vez que el votante quiera reincidir en el voto, gracias a SharedObject .
Bien, por ultimo el boton de resetear la “cookie”

Código ActionScript :

on (press) {
this.newContenedor.clear();
_root.gotoAndStop(1);

}


No olviden crear los Botoncitos para regresar al primer frame.
Saludos.

Por checheno

528 de clabLevel

3 tutoriales

 

Mar del Plata - Argentina

firefox
Citar            
MensajeEscrito el 01 Abr 2010 06:28 am
Hola checheno,

Entiendo tu aporte, es un buen trabajo y lo acabo de mover al foro Aportes. Pero no lo puedo pasar a portada de tips. Esto es Actionscript 1, que tiene más de 8 años de viejo y ya no se usa. Es demasiado obsoleto el código en Actionscript que estás usando. Igual espero que a alguien le sirva ahora que está en aportes.

Saludos

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 02 Mar 2011 04:41 am
.....................entonces...con los nuevos "fl" de hoy..a comparacion de esos antiguos...no hay manera de arreglar tal tutorial?...

Por sirfredd

1 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.