LocalConnection() Problème...

Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 13 avril 2005 à 20:41
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 14 avril 2005 à 18:24
Bonjour,

bon ça fait 2 jours que je me suis mis à Flash et j'ai un petit
problème. Je veux faire communiquer 2 swf entre eux, le princip est
simple : login + mot de passe pour avoir accès à certaines parties du
site. J'interface tout ça avec php (me demandez pas de changer ça, jme
base sur une archi déjà existante et qui marche très bien comme ça )



Alors, dans mon premier swf, l'ai un calque que j'ai nommé "script" ou j'ai le code suivant :


//creation de l'objet loader

var my_mcl = new MovieClipLoader();

var nb = 0;

//création d'un canal de communication entre les swf : 

reception = new LocalConnection();

reception.login = function() {

    lireLogin();

};





fichierLogin = "login.php";

chargement = new LoadVars();

chargement.onLoad = function() {

    if (this["message"] == "nologin") {

        _root.login.htmlText = "";

        my_mcl.loadClip("login.swf", login_mcl);

    } else {

        _root.login.htmlText = this["message"];

    }

};

//lecture du fichier de login :

function lireLogin() {

    chargement.load(fichierLogin);

}



lireLogin();

//connection au canal 

reception.connect("CanalA");





et dans mon autre swf, celui qui doit envoyer la demande de relancer lireLogin(), pour un bouton (je précise) :


on(release) {

    chargement = new LoadVars();

    //on va déjà relancer le fichier login.php avec les

    //valeur de login et pass (méthode POST, c'est plus

    //secure :) --> http://developpeur.journaldunet.com/tutoriel/fla/021011fla_phplivredor1a.shtml

    if (login != "" && pass !="") {

        //ATTENTION! le nom des variables
doivent être celles utilisées dans le fichier php avec le $_POST[]

        chargement.login = _root.login.text;

        chargement.pass = _root.pass.text;

        chargement.sendAndLoad("login.php", chargement);

        //on n'a plus qu'à demander au main (back.swf) de recharger sa fonction de vérification :

        //on crée un canal de communication avec le swf principal (cf : back.fla)

        emetteur = new LocalConnection();

        if (_root.login != "" && _root.pass != ""){

            emetteur.send("CanalA", "login");

        }

        else

            _root.login.htmlText= "ca va pas";

    }

}





mais la communication ne passe pas... que faire?

Pour ceux qui en font depuis + de 2 jours c'est peut être évident, mais pas pour moi



Merci!

2 réponses

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
14 avril 2005 à 02:34
a premiere vu ton prob vient de tes appel php, je m'explique
en php il n'y a pas persistence de variables (si ce n'est les var server)
or tu appel un script php depuis un swf (swf1 on va dire)
php execute le code et renvois les resultats (si t'avais utilisé sendAndLoad et non juste send)
et tu dis a un second swf de chargé ce que php a écrit
mais les données généré par ton premier appel (LoadVar.send) disparaisent kan t'appel a nouveau ton php dans swf2 (LoadVar.load)
c'est comme si tu voulais affiché la page http://tralala.com/php.php?login=aaa&mdp=zzz
et affiché comme résultat http://tralala.com/php.php

understand ?

je pense que ca viens plutot de là.
test en degugant (un petit trace(..)) pour vérifier tes appel interSwf (LocalConnexion), mais j'y vois pas d'erreurs.

++ et bon courage

Flash sans Limites
_Benjy
0
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
14 avril 2005 à 18:24
Je suis d'accord sur ce que tu viens de me dire, mais justement, j'utilise des sessions.

Si mes login et mot de passe sont bons, je crée une session : $_SESSION['user'] = $_GET['login'];

et je la récupère par l'autre swf avec : echo $_SESSION['user'];

Mias en fait j'ai capté que je n'avais pas besoin de LocalConnexion(),
le 2eme swf est dans le premier, mais je conaissais pas la technique
pour les faire bosser en encapsulation



Merci quand meme!
0
Rejoignez-nous