Créer un projet flash où les utilisateurs peuvent visiter le site et éteindre/allumer des objets dans une maison (lumières, télévision, ordinateur, etc.) L'utilisateur suivant qui visitera la maison le site Web, va voir ce que les lumières ou les appareils ménagers ont été laissés sur. Les variables Flash sont transmises à PHP et ces variables sont enregistrées dans un fichier XML. (Pour tester ce qui est enregistré dans le fichier XML, cliquez sur --vars.xml à chaque clic.) Dans le fichier vars.xml, je vois que les objets de la maison qui ont été activés en dernier sont enregistrés dans le fichier .vars.xml. Fichier XML - MAIS dans le fichier SWF, seul l'un des objets répertoriés dans le fichier XML est activé. Seul le dernier objet qui a été cliqué sur montrerait ON - pas tous les objets dans le fichier XML)Passer des variables de Flash à PHP
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.text.*;
import flash.net.*;
public class House extends MovieClip {
var request:URLRequest = new URLRequest("vars.xml")
var loader:URLLoader = new URLLoader();
// Constructor--------------------------------------------------------------------
public function House()
{
loader.addEventListener(Event.COMPLETE, parseXML);
loader.load(request);
}
// function sendPhp ------------------------------------------------------------------
function sendPhp():void
{
// send vars to php
var request:URLRequest = new URLRequest("write_xml.php"); // the php file to send data to
var variables:URLVariables = new URLVariables(); // create an array of POST vars
for (var i:int=0; i<onList.length; i++) {
variables["v"+i] = onList[i];
}
//variables['powerUsage'] = totalTxt.text;
request.data = variables; // send the vars to the data property of the requested url (our php file)
request.method = URLRequestMethod.POST; // use POST as the send method
try
{
var sender:URLLoader = new URLLoader();
sender.load(request); // load the php file and send it the variable data
navigateToURL(new URLRequest("vars.xml"), '_blank'); //show me the xml
}
catch (e:Error)
{
trace(e); // trace error if there is a problem
}
}
// function parseXML ------------------------------------------------------------------
function parseXML(evt:Event)
{
var xdata:XML = new XML(loader.data); // using E4x
//xdata.child(0);
for (var j:int=0; j<xdata.length(); j++) {
onList[j] = xdata.child(j);
for (var k:int=0; k<HouseObjects.length;k++) {
//root[onList[j]].gotoAndStop(3);
if (onList[j] == HouseObjects[k].name) {
HouseObjects[k].gotoAndStop(3);
//trace("tracing house objects"+ HouseObjects[k]);
trace("onList[j]: " + onList[j]);
trace("Array onList: " + onList);
}
}
}
}
} //end of class
} // end of package
Cela peut ne pas être très bon parce que beaucoup de gens peuvent changer les choses à la fois –
Assurez-vous d'échapper/valider vos variables '$ _POST'. En ce moment tout le monde peut mettre quelque chose dans votre fichier '.xml' –