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.