Passage d'une variable d'une page html a une autre

cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011 - 13 nov. 2006 à 14:29
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011 - 21 nov. 2006 à 10:21
Bonjour : voila je suis en train de creer un site a moitie flash/html:

pour plus de clarté voici une capture d'ecran du site :

la page principale est la page bienvenue.php et elle contient juste le site en flash. (image ci-dessus)
les 4 premiers boutons numérotés de 0 a 3, appelles des fiches contenus numérotés de 0à3 au sein meme du swf

les 2 derniers appellent des pages html (ou php), contact.php par exemple
ces pages contiennent un autre swf qui reprend juste mon menu.

Voila mon probleme :
lorsque je me trouve sur la page contact.php et que je clique sur le bouton 2 par exemple, je retourne sur la page bienvenue.php avec mon swf principal et j'aimerai que celui si affiche directement la fiche 2 . (si on clique sur le bouton 3, il affiche la fiche 3)

et voici ce que j'ai tenté de faire

// voici la fonction qui permet d'afficher les fiches dans le swf principal :

function afficheDepart(param) {
    
    var ficheDep_mc:MovieClip = this.attachMovie("fiche"+param, "fiche"+param, 1);
    ficheDep_mc._x = 178;
    ficheDep_mc._y = 47;
    ficheDep_mc.gotoAndPlay("arrivee");}

// ici je tente de recuperer la variable passée dans l'URL avec le code qui suit

_global.rubrique =_level0.sect
afficheDepart(rubrique);

//dans le onRelease du menu de la page contact.php
this.mc_menu.derouleMenu.btn4.onRelease=function(){
    getURL("bienvenue.php?sect=1");}

// dans contact.php

<?php
$sect=$_GET['sect'];
echo  "
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='123' height='191'>
 
 
 
 
</object>
"
?>

// et pour finir dans bienvenue.php

<?php
$sect=$_GET['sect'];
echo "
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='921' height='560'>
 
 
  </object>
"
?>

voila j'espere avoir ete suffisament claire, sinon n'hesitez pas a me demander des precisions.

En esperant que quelqu'un pourra m'aider, par avance merci.

12 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
13 nov. 2006 à 17:52
Bonjour,

pourquoi ne passe tu pas ce parametre via un cookie spécifique à  flash le sharedObject.
avant de passer ves une de tes pages 'externes' tu met dans le sharedOject la fiche ou tu te trouver et au retours, tu vérifies la dernière fiche pacée dans le sharedObject. Pas de passage par php, html ou de transit de valeurs par url

@+
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
14 nov. 2006 à 09:38
J'ai regardé ce dont tu me parles ds l'aide de flash.
Si j'ai bien compris ce que tu me dis, ceci me permettrais d'afficher la derniere fiche consultée au retour sur ma page pricinpale.

Mais j'avais utiliser le système de variable ds l'URL car le visiteur a la possibilité de choisir la fiche qu'il veut consulter depuis le menu en flash ds les pages externes. Je m'explique : si au départ il a vu la fiche 2, puis il va sur la page contact.php, il peut decider ensuite de consulter la fiche 3.

Ta méthode marche aussi dans ce cas la ??

merci et a+
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
14 nov. 2006 à 20:03
Salut,

je pense que oui, si tes autres pages sont aussi en flash.
Elles doivent toutes pouvoir communiquer avec le sharedObject puisqu'il est nommé.

@+
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
15 nov. 2006 à 09:29
D'accord je te remercie de ton aide, je vais regarder comment je peux faire !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
15 nov. 2006 à 10:10
Bonjour,

pour t'aider un peut...
Ecriture dans le sharedObject :
var so:SharedObject = SharedObject.getLocal("fiche");
so.data.ficheVoulue = 1;
so.flush(); // force l'écriture du sharedObject

Lecture dans le sharedObject:
var so:SharedObject = SharedObject.getLocal("fiche");
if(so.data.ficheVoulue != undefined){
// lancer l'animation vers la fiche en mémoire
} else {
// rien en mémoire, donc on lance une fiche prédéfinie
}

@+
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
15 nov. 2006 à 12:32
je pense avoir compris l'essentiel, je suis sur plusieurs projets, mais je vais essayer de le faire rapidement pour que tu puisses me depanner si besoin est.
Je te tiens au courant et en encore merci !!
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
16 nov. 2006 à 16:59
Et me revoila !! :))
En plus de tes explications je me suis inspirée de ceci :
http://flash.media-box.net/index.php?showtopic=10289

Voila donc le code que j'ai inséré pour le menu

for (var i:Number = 0; i<=3; i++) {
    this.mc_menu.derouleMenu["btn"+i].nombre = i;
    this.mc_menu.derouleMenu["btn"+i].onRelease = function() {
        user = SharedObject.getLocal("passagedevar", "/");
        user.data.fiche= this.nombre;
        user.flush();
        getURL("bienvenue.htm");
    };
}

puis celui dans le site :
so = SharedObject.getlocal("passagedevar", "/");
if (so.data.fiche != undefined) {
   afficheDepart(so.data.fiche);
    // lancer l'animation vers la fiche en mémoire
} else {
        afficheDepart(0);
    }

cela ne fonctionne pas !! pour savoir ou se situait le probleme j'ai copié collé le code du site dans un autre fla qui ne contenait qu'un champs texte.
ce qui donne ceci :
so = SharedObject.getlocal("passagedevar", "/");

if (so.data.fiche != undefined) {

   my_txt.text = so.data.fiche;

   

} else {

        my_txt.text = 20

    }

Et alors la miracle le passage de variable se fait parfaitement bien !! le champs texte m'indique bien le bouton sur lequel j'ai cliqué ds le menu !!!!
Je suis ensuite retournée sur le fla du site, mis en commentaire tout le code et recopié collé ce dernier code ... et bien cela ne marchait pas !! Le probleme est vraiement lie a mon fla du site, mais a quel niveau ??
Je ne sais plus vraiement quoi penser, as tu une idée ??

Merci !!
a+
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
16 nov. 2006 à 21:45
Hello,

peux-tu me donner le code de la fonction afficheDepart()
-> attention, je pense que les données stockées via shared Object sont de type string.
Comment fait tu ton test pour les diverses fiches dans la fonction  afficheDepart()

@+
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
18 nov. 2006 à 15:03
Hello !!

Voila ma fonction :


function afficheDepart(param) {

    

    var ficheDep_mc:MovieClip = this.attachMovie("fiche"+param, "fiche"+param, 1);

    ficheDep_mc._x = 178;

    ficheDep_mc._y = 47;

    ficheDep_mc.gotoAndPlay("arrivee");

}


et a la place du param je mettais la variable stockee ds le sharedObject.


Les fichiers etant resté sur mon poste au boulot et etant en vacances
depuis vendredi jusqu'a la semaine prochaine je vais essayer de me les
faire envoyer a la maison, parce que la j'ai plus tout en tete.

Mais vu que j'arrive a faire passer en memoire le numero du bouton
cliqué dans mon menu et à restituer ce chiffre dans un champs texte
dans un autre swf, on peut dire que shareObject peut stocker autre
chose que des données type string non ?


Merci et bon week end !!
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
18 nov. 2006 à 22:11
Salut,

la fonction est bonne, pas de soucis.
Est-ce que tu as rempli le parametre de liaison de tes clips 'fiche'
Bibliotheque -> clic droit su le clip -> liaison... -> exporter pour actionscript et donner le nom que tu appel via attachMovie()
CE N'EST PAS LE NOM que tu vois dans la fenetre bibliotheque... même si on choisi souvent le nom du clip comme nom de liaison pour actionscript

@+
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
19 nov. 2006 à 12:18
Salut !!!


Oui c'est fait.

D'ailleurs il suffit de rentrer n'importe quel chiffre a la place du param dans ma fonction et la bonne fiche apparait !


a+
0
cs_chiktika Messages postés 58 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 23 janvier 2011
21 nov. 2006 à 10:21
Salut !


Ca pourrait t'aider si je t'envois les fla ??

Merci

A+
0
Rejoignez-nous