Passer des variable de php à flash

maclosky Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2005 - 31 janv. 2005 à 21:53
maclosky Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2005 - 2 févr. 2005 à 14:45
Bonjour à tous,



J'ai une base de donné avec des info, les données dans la db sont des côtes de 1 à 4.



1=Vert

2=Jaune

3=Orange

4=Rouge



j'ai fait un script php qui récupère les info pour l'élément demendé.

Voici le php :



<?

include('connexion.php');

$id = $_COOKIE['id'];

$query "SELECT * FROM test WHERE id '$id'";

$result = mysql_query($query);

$val = mysql_fetch_array($result);



echo "frontFaceDamage=".$val['frontFaceDamage'];

echo "&backFaceDamage=".$val['backFaceDamage'];

echo "&leftFaceDamage=".$val['leftFaceDamage'];

echo "&rightFaceDamage=".$val['rightFaceDamage'];

echo "&topFaceDamage=".$val['topFaceDamage'];

?>



Ensuite j'ai un cube et selon la côte prise dans la db il affiche la bonne couleur.

Voici mon actionscript :



// Call php page .. Make sure the database for this demo contains 5 variables with 1-4 damage level.

// loadVariablesNum();

this.recepteur = new LoadVars();



// Declare variables for database

var frontFaceDamage;

var backFaceDamage;

var leftFaceDamage;

var rightFaceDamage;

var topFaceDamage;

// function to set colour



function setFaceColor(cName, cDamage) {

cColor = cName+"Color";

cColor = new Color(cName);

switch (cDamage) {

case 1 :

cColor.setRGB(0x537C18);

break;

case 2 :

cColor.setRGB(0xF5EA69);

break;

case 3 :

cColor.setRGB(0xF19F3D);

break;

case 4 :

cColor.setRGB(0x000000);

break;

}

}



this.recepteur.sendAndLoad("flashdb.php", this.recepteur, "POST");

this.recepteur.onload = function(marche){

if(marche){

frontFaceDamage=this.frontFaceDamage;

backFaceDamage=this.backFaceDamage;

leftFaceDamage=this.leftFaceDamage;

rightFaceDamage=this.rightFaceDamage;

topFaceDamage=this.topFaceDamage;

}else{

trace("Marche Pas");

}

};



setFaceColor(frontFace, frontFaceDamage);

setFaceColor(topFace, topFaceDamage);

setFaceColor(leftFace, leftFaceDamage);

setFaceColor(rightFace, rightFaceDamage);

setFaceColor(backFace, backFaceDamage);



le problème est que je n'ai pas d'erreur mais le cube reste a sa couleur d'origine, il ne change pas selon les côtes.



Voici le même script avec les variable déclaré dans flash et cela fonctionne.

Voici le actionscript :



// Call php page .. Make sure the database for this demo contains 5 variables with 1-4 damage level.

// loadVariablesNum();





// Declare variables for database

var frontFaceDamage;

var backFaceDamage;

var leftFaceDamage;

var rightFaceDamage;

var topFaceDamage;



// function to set colour



function setFaceColor(cName, cDamage) {

cColor = cName+"Color";

cColor = new Color(cName);

switch (cDamage) {

case 1 :

cColor.setRGB(0x537C18);

break;

case 2 :

cColor.setRGB(0xF5EA69);

break;

case 3 :

cColor.setRGB(0xF19F3D);

break;

case 4 :

cColor.setRGB(0x000000);

break;

}

}



frontFaceDamage=1;

backFaceDamage=2;

leftFaceDamage=3;

rightFaceDamage=1;

topFaceDamage=4;



setFaceColor(frontFace, frontFaceDamage);

setFaceColor(topFace, topFaceDamage);

setFaceColor(leftFace, leftFaceDamage);

setFaceColor(rightFace, rightFaceDamage);

setFaceColor(backFace, backFaceDamage);



De cette façon ça fonctionne mais mon probleme c'est que je doit créer
un flash pour chacune des possibilitées, ce qui n'est vraiment pas bon
car le vrai projet aura plus de 100 diff.rente facon de l'afficher.
C'est pourquoi j'ai besoin qu'il aille chercher les côtes dans la db
pour ensuite donner la bonne couleur au bon côté.



Auriez-vous une idée qui pourrait m'aider à avançé.



PS. le flash comme tel a été fait par qqu que je connais, mais notre probléme est l'affectation des variable de php a flash.



merci

4 réponses

shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
2 févr. 2005 à 08:58
elle est ou la ligne qui te permet de charger le php ? pasque la il n'y
en a pas ... ou du moins elle a été noyer dans le flux enorme
d'information

<hr>
http://www.c0rben.com
0
maclosky Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2005
2 févr. 2005 à 13:48
this.recepteur.sendAndLoad("flashdb.php", this.recepteur, "POST");
0
shubenka Messages postés 759 Date d'inscription mercredi 11 décembre 2002 Statut Membre Dernière intervention 12 novembre 2008
2 févr. 2005 à 14:06
ca me paraitrai plus judicieux d'écrire
_root.sendAndLoad("flashdb.php", this.recepteur, "POST");

pasque la syntaxe du Send&Load

my_lv
.sendAndLoad(
url
,
targetObject
[, 
method
])


ou my_lv correspond a un level et la tu donne un objet en level donc ta variable
va se stokker je ne sais ou.
essaye de faire un debug en regardant l'arbre des variables ctrl+shift+entrer
(mx 2004)

<HR>
http://www.c0rben.com
0
maclosky Messages postés 9 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 2 février 2005
2 févr. 2005 à 14:45
J'ai réussi à la faire fonctionner avec ceci :



// Declare variables for database

var frontFaceDamage;

var backFaceDamage;

var leftFaceDamage;

var rightFaceDamage;

var topFaceDamage;



// Call php page .. Make sure the database for this demo contains 5 variables with 1-4 damage level.





receiver = new LoadVars();

receiver.load("http://www.infosalvage.com/test/flashdb.php");

receiver.onLoad = function() {

frontFaceDamage = receiver.frontFaceDamage;

backFaceDamage = receiver.backFaceDamage;

leftFaceDamage = receiver.leftFaceDamage;

rightFaceDamage = receiver.rightFaceDamage;

topFaceDamage = receiver.topFaceDamage;

//trace("top= " + topFaceDamage + " front= " + frontFaceDamage + " left= " + leftFaceDamage + " right= " + rightFaceDamage);

}



// function to set colour



function setFaceColor(cName, cDamage) {

//trace(cName + " = " + cDamage);

cColor = cName+"Color";

cColor = new Color(cName);

switch (cDamage) {

case "1" :

cColor.setRGB(0x537C18);

break;

case "2" :

cColor.setRGB(0xF5EA69);

break;

case "3" :

cColor.setRGB(0xF19F3D);

break;

case "4" :

cColor.setRGB(0x000000);

break;

}



}



function displayColor(){

setFaceColor(frontFace, frontFaceDamage);

setFaceColor(topFace, topFaceDamage);

setFaceColor(leftFace, leftFaceDamage);

setFaceColor(rightFace, rightFaceDamage);

setFaceColor(backFace, backFaceDamage);

}



et ceci dans le php file :



<?

include('connect.php');

$id = $_COOKIE['id'];

$query "SELECT * FROM test WHERE id '$id'";

$result = mysql_query($query);

$val = mysql_fetch_array($result);



$frontFaceDamage = $val['frontFaceDamage'];

$backFaceDamage = $val['backFaceDamage'];

$leftFaceDamage = $val['leftFaceDamage'];

$rightFaceDamage = $val['rightFaceDamage'];

$topFaceDamage = $val['topFaceDamage'];



echo
"&frontFaceDamage=$frontFaceDamage&backFaceDamage=$backFaceDamage&leftFaceDamage=$leftFaceDamage&rightFaceDamage=$rightFaceDamage&topFaceDamage=$topFaceDamage";

?>



tout fonctionne



merci de ton aide
0
Rejoignez-nous