Script flash-php qui ne fontionne plus apres un loadmovie()

ArthasDK Messages postés 6 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 juin 2005 - 5 avril 2005 à 14:40
ArthasDK Messages postés 6 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 juin 2005 - 6 juin 2005 à 19:59
Hello tou le monde !

Alors voila, j'ai longtemps travaillé sous flash 4, je me suis mis il y a peu a flash MX.

J'essaie de comprendre le lien php-flash petit a petit.
J'essaie d'adapter un script de Kingcobra :
http://www.flashkod.com/code.aspx?id=24764
à mon site mais sans succés...

Le script fonctionne trés bien dans un swf normal ( pas trés compliqué vu la clarté de la programmation ).

Ce qui donne ca:
http://cesiumwebsite.free.fr/msk1/ma/news.swf

Mais le souci c'est que je désire charger cette animation à l'intérieur d'un autre swf a l'aide d'un loadmovie()
Mais evidemment ca marche plus ^^
En fait la première animation est chargée dans celle-ci :
http://cesiumwebsite.free.fr/msk1/ma/website.swf

à l'aide d'un movie clip ayant comme nom d'occurrence "contenu"
Mais voila tous les noms des variables sont désormais éronnées.

Si quelqu'un comprends mon problème ( si mal expliqué soit -il) et est dans la capacité de m'aider, je le remercie d'avance...

A bientôt

6 réponses

cs_wolvie Messages postés 25 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 5 avril 2005
5 avril 2005 à 15:28
Salut, pour répondre à ton problème, as-tu des scripts reprenant une syntaxe débutant par "_root."nom de clip ou autre dans ton fichier news.fla, cela peut être une source de problème.

Autre point à voir, la manière dont sont appelées tes variables (il pourrait être bon de les déclarer également dans le fichier root, à savoir website.swf).

Dant tous les cas, décris un peu plus précisément ton code et surtout les scripts de news.fla

Pierrot_le_puy
0
ArthasDK Messages postés 6 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 juin 2005
5 avril 2005 à 17:26
En effet quasiment tous mes changements d'etats de variables commence par _root.variable=
Que dois-je faire? enlever le _root ?

Etant donné ke je viens juste de lacher flash 4 le script de news.fla est quasi identique au script de la source de Kingcobra

Le Pacte est Signé !
0
cs_wolvie Messages postés 25 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 5 avril 2005
5 avril 2005 à 17:44
Ok, ton problème se situe donc à ce niveau, _root représente systématiquement la scène 0, si news était ton swf principal, cela ne poserait pas de problème, mais le fichier de base étant website.swf, c'est lui qui est considéré comme le _root, et news.swf est considéré comme un clip de niveau supérieur (_level1 par exemple).

Dans tous tes scripts d'appel de variable sur news.fla, remplace "_root" par "this", afin que ta varialbe soit bien traitée sur le niveau news.swf, (this.variable=)
car avec ton code actuel cela est interprété comme suit:
"charge la variable sur le _root (donc website.swf) et affiche la dans le champ texte prévu à cet effet"
==> ton champ étant présent sur news.swf, et pas sur website, pas de contenu à afficher."

Voila, après ça cela devrait tourner, sinon tu peux aussi rédiger ton script comme ceci:
"_root.contenu.variable=" (c'est la même chose mais tu prends comme référent le clip ayant le nom d'ocurrence "contenu" (donc news.swf) présent sur _root (donc website.swf), et voila...
@+

Pierrot_le_puy
0
ArthasDK Messages postés 6 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 juin 2005
5 avril 2005 à 22:47
Arf ca marche toujours pas, j'avais déja essayé la syntaxe _root.contenu.variable---> sans succés.
Là je viens d'essayer avec this.variable : même résultat :(
Voila la source de news.fla

titre = "";
news = "";
MOTDEPASSE = "******";

date_ = new Date();
nom_jour = date_.getDay();
jour = date_.getDate();
mois = date_.getMonth();
année = date_.getFullYear();
nom_J = new Array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi");
nom_M = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre");

AUJOURDHUI = nom_J[nom_jour]+" "+jour+" "+nom_M[mois]+" "+année;
// <<<<<<<<<<<<<<<< Objet loadvar >>>>>>>>>>>>>>>>
// objet de reception des variables php --> flash

R_news = new LoadVars();

// objet d'envoie des variables flash --> php

S_news = new LoadVars();

// <<<<<<<<<<<<<<<< Fonction >>>>>>>>>>>>>>>>

ajouter.onRelease = function() {
if (this.titre != "" and this.texte != "") {
this.passanim.play();
} else {
this.news = "Veuillez entrer un titre et une news...";
}
};

// acces au bouton ... du mot de passe
passanim.passanim.ok.onPress = function() {
count++;

// verification a 3 fois du mot de passe
if (this.passanim.passanim.pass == this.MOTDEPASSE) {
this.txt = "Actualisation...";
// on stoque les nouvelles données dans les champs de l'objet S_news
this.S_news.E_date = this.AUJOURDHUI;
this.S_news.E_titre = this.titre;
this.S_news.E_texte = this.news;
// on envoie ces variables au php (l'objet de reception est R_news)
this.S_news.sendAndLoad("news.php", this.R_news);
this.titre = "";
this.news = "";
this.passanim.play();
}
// si le mot de passe est incorrecte on efface tout et on recommence
if (count == 3) {
this.titre = "";
this.news = "";
this.passanim.play();
count = 0;
}
this.passanim.passanim.pass = "";
};
// chargement des variables venant du php
R_news.onLoad = function(Psucces) {
if (Psucces) {
// il y'a eu un chargement
if (this.R_nb_news == 0) {
// la base de donnée est vide
this.txt = "Pas de NEWS disponible !";
} else {
// la base contient au moins une news
this.txt = "";
// on affiche cette news
for (var i = 0; i<this.R_nb_news; i++) {
this.txt += this["R_date_"+i]+"\n\n";
this.txt += this["R_titre_"+i]+"\n";
this.txt += this["R_texte_"+i]+"\n\n";
this.txt += "----------------------------------------\n\n";
this.txt += "\n\n";
}
// reaffecte la scrollbar à son texte
this.sb.setScrollTarget(txtsb);
// remet le texte au début à l'endroit de la nouvelle news
this.sb.setScrollPosition(0);
}
} else {
// il n'y'a pas eu de chargement
this.txt = "Erreur lors du chargement des NEWS...";
}
};
// <<<<<<<<<<<<<<<< On regarde s'il y'a des news >>>>>>>>>>>>>>>>
R_news.load("news.php");

Merci de t'interesser à mon problème.
J'espère qu'il ne va pas falloir déclarer certaines variables dans le website.swf et utiliser loadmovie("news.swf",/contenu,"Post"), je vais m'emméller les pinceaux avec les variables...
0

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

Posez votre question
Kahn001 Messages postés 3 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 12 juillet 2005
6 juin 2005 à 17:04
La propriété MovieClip._lockroot peut peut être t'aider ..

Sur le .swf qui sera chargé, ajoutes y cette instruction :

this._lockroot = true



L'instruction root du .swf chargé ne serra plus interpretée comme une
instruction root du .swf "loadeur", mais comme root du .swf chargé. Ca
te permet donc de charger ta 2eme animation sans presque rien y changer.
0
ArthasDK Messages postés 6 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 juin 2005
6 juin 2005 à 19:59
Merci d'être aller repecher ce vieux topic.
Tout d'abord j'ai oublié de mettre des this devant R_news et S_News dans leur déclaration donc forcément ca marchait pas.
Enfin, et je trouve ca étrange, il a fallu que le calque sur lequel était disposé les variables servant d'afficher le php soit en premier plan sinon cela ne marchait toujours pas.

En tout cas, ta dernière fonction m'est trés utile !

Le Pacte est Signé !
0
Rejoignez-nous