Faire passer des object ou array de php à flash [Résolu]

Signaler
Messages postés
29
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
10 mars 2009
-
Messages postés
29
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
10 mars 2009
-
Bonjour, je me suis fait un code flash qui à parti d'un objet du type :
anniversaires=[{pseudo:"choy",age:22},{pseudo:"machin",age:34}];
me fait une ptite liste animée.
Maintenant j'aimerai que cette liste s'alimente via php, j'ai fait un code qui me sortait ça :
&mavar=[{pseudo:"choy",age:22},{pseudo:"machin",age:34}]&
mais comme vous vous en doutez ça ne marche pas.

Comment puis je faire passer des infos structurés de php à flash ?? j'avai déja essayé avec du xml mais le probleme et que je n'arrive pas à envoyer des variables au php qui génere le xml (dans cet exemple je n'envois pas de variable mais j'ai d'autre code qui en auront besoin).
Merci à ceux et celles qui se pencheront sur le sujet !

4 réponses

Messages postés
232
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011

Il y a une erreur de frappe. J'ai pas mis les espaces entre new et Array, et entre new et Object.

Sinon tout fonctionne.

Pour afficher le contenu du tableau, tu peux rajouter ceci :

<hr size="2" width="100%" />trace ("Resultat : ");
trace ("==========");
for (var i:Number = 0; i<Resultat.length; i++)
{
    if (i != 0)
        trace ("");
   
    trace (": Index " + i + " : ");
    for (var nom:Stringin Resultat[i])
    {
        trace (":: " + nom + " : " + Resultat[i][nom]);
    }
}
trace ("==========");
<hr size="2" width="100%" />
Fenêtre de sortie :
<hr size="2" width="100%" />Resultat :
========
: Index 0 :
:: age : 22
:: pseudo : choy

: Index 1 :
:: age : 34
:: pseudo : machin
========
<hr size="2" width="100%" />
:)

Distorstase
Messages postés
232
Date d'inscription
mercredi 2 avril 2003
Statut
Membre
Dernière intervention
29 mars 2011

Tu ne peux envoyer à Flash via PHP que du texte je crois.

Ce que tu peux faire c'est envoyer "pseudo:choy,age:22;pseudo:machin,age:34"
Après tu traites cette chaine de caractères pour en retirer quelque chose.
Déjà tu coupe au niveau des ";" pour avoir les différents éléments.

var mavar:String = "pseudo:choy,age:22;pseudo:machin,age:34";
var T1:Array = mavar.split (";");

ensuite tu coupe chaque élément de T1 au niveau de la virgule, pour obtenir les différents paramètres. Pour ça il va falloir parcourir le tableau et coupé à chaque fois :

for (var i:Number = 0; i<T1.length; i++)
{
    T1[i] = T1[i].split (",");
}

ensuite, dans cette même boucle for, tu rajoutes le code qui va permettre de créer tes objets, et les mettres dans un tableaux.
Pour ça il faut d'abord créer le tableau qui stockera les résultats. Puis il faudra créer les objets, et enfin mettre les objets dans le tableau.

var mavar:String = "pseudo:choy,age:22;pseudo:machin,age:34";     // Variable envoyé par PHP
var T1:Array = mavar.split (";");                                                         // On coupe au niveau des ";"
var Resultat:Array = newArray();                                                       // On créer le tableau de stockage

for (var i:Number = 0; i<T1.length; i++)       // On parcours tous les éléments du tableau

{

    T1[i] = T1[i].split (",");                              // On coupe au niveau de la virgule à chaque fois.
    var obj:Object = newObject();                 // On céer l'objet

    for (var j:Number = 0; j<T1[i].length; j++)   // Ici on parcours le tableau nouvellement créé pour définir l'Objet
    {
        var T3:Array = T1[i][j].split (":");        // On coupe au niveau du ":" pour avoir le nom de la propriété et sa valeur.
      
        obj[T3[0]] = T3[1];                              // La propriété de nom "T3[0]" prendra la valeur "T3[1]"
    }

    Resultat.push (obj);         // L'objet est créé avec toutes ses propriété, on l'ajoute et on passe au suivant.

}

Je n'ai pas testé, mais je pense que ça marche, ou sinon c'est une petite erreur. J'ai un petit doute sur la ligne 14 quand même, mais normalement, ça devrait macher.

Distorstase
Messages postés
29
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
10 mars 2009

Franchement merci pour ta réponse, il y a apparament un truc qui cloche au niveau de la création des objets. Je fait des test sans succes pour le moment mais j'y vois déja beaucoup plus clair !
Messages postés
29
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
10 mars 2009

Yep j'ai vu ça dans l'aprem mais trop de souci de connexion pour venir poster ici :) en tout cas un grand merci à toi ! j'ai super bien avancé aujourd'hui !