Ikarr
Messages postés12Date d'inscriptionjeudi 6 novembre 2008StatutMembreDernière intervention 5 juillet 2010
-
15 oct. 2009 à 13:26
thenaoh
Messages postés111Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention24 juin 2015
-
14 nov. 2009 à 11:51
bonjour
je me heurte à un petit problème, j'imagine que c'est possible mais je n'en suis pas totalement certain.
je charge un swf qui s'appelle "galerie.swf", c'est une galerie photo ou il y a toutes les images dans la bibliothèque liées par bitmapdata.
je le charge dans un swf "index.swf" qui lui ne possède rien excepté un container pour le swv "galerie" et deux boutons.
j'aimerai que un des boutons " > " qui sont sur le swf "index.swf" démarrent la fonction "imageSuivante(param)" du swf "galerie" pour que la deuxième image apparaisse et ainsi de suite.
de même avec le deuxième bouton " < " démarre la fonction "imagePrecedente(param)" pour que ça revienne en arrière.
je n'ai malheureusement pas de code sur moi,je suis au travail, mais je cherche désespérément un début de réponse sur google ou d'autres forums sans résultats.
je ne comprends pas la communication entre 2 swf parent et enfant.... jai pourtant mis ma fonction (si je me souviens du code) - galerie.imageSuivant(param) - dans Event complete du loader qui charge "galerie.swf" et j'ai mis un ADDED_TO_Stage dans "galerie.swf"
mais il y a une erreur du genre : // imageSuivante ne semble pas être une fonction //
merci de votre aide,,, je mettrai le code dés que je le pourrais.
thenaoh
Messages postés111Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention24 juin 2015 13 nov. 2009 à 09:52
Salut
Je ne sais pas quelle version d'actionscript tu utilises, mais je t'invite à regarder dans l'aide de Flash la classe LocalConnection, qui devrait normalement résoudre ton souci.
thenaoh
Messages postés111Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention24 juin 2015 13 nov. 2009 à 12:10
La solution d'Orange73 marche effectivement si tu veux agir sur la lecture du swf enfant ou agir sur le déplacement des éléments graphiques de celui-ci et a le mérite d'être très simple. Quant à ma solution (LocalConnection), elle te sera utile si tu veux appeler une fonction du swf enfant (et donc à partir de laquelle tu peux faire ce que tu veux ). A toi de voir !
Vous n’avez pas trouvé la réponse que vous recherchez ?
thenaoh
Messages postés111Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention24 juin 2015 13 nov. 2009 à 14:29
Ah bon ?
Là je suis curieux, j'ai essayé à plusieurs reprises avec ta méthode pour appeler une fonction de ma classe liée à mon FLA, mais j'ai jamais réussi... Et c'est du coup pour ça que j'ai regardé du côté de LocalConnection qui marche très bien pour moi. Tu pourrais me dire comment tu ferais ? (juste pour ma culture générale )
Merci !
Orange73
Messages postés1375Date d'inscriptiondimanche 28 novembre 2004StatutMembreDernière intervention 2 août 2011 13 nov. 2009 à 16:01
Dans le SWF Parent :
var chargeur:Loader = new Loader();
var adresse:URLRequest = new URLRequest("ss.swf");
chargeur.load(adresse);
addChild(chargeur);
chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, go);
function go(e:Event):void
{
MovieClip(chargeur.content).hello();
}
Dans le SWF enfant :
function hello()
{
trace("hello");
}
A+
-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
thenaoh
Messages postés111Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention24 juin 2015 13 nov. 2009 à 17:49
Ben justement c'est bien ce que j'avais testé et ça ne marche pas.
Ce qui ne m'étonne pas d'ailleurs car avec la commande :
MovieClip(chargeur.content).hello();
tu demandes finalement à appeler la méthode hello() sur un MovieClip, ce qui n'est évidemment pas possible ...
thenaoh
Messages postés111Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention24 juin 2015 13 nov. 2009 à 19:15
Ok !
Dans la timeline effectivement ça m'a l'air possible en effet. Mais dans le cas où tu crées une classe liée à ton FLA (du code qui se trouve donc externalisé, et donc pas dans la timeline, ce qui en terme de propreté de code est tout de même mieux pour un projet même de taille moyenne, mais c'est un autre débat), et que dans cette classes tu crées une méthode hello(), là ça ne marchera pas, même si cette méthode est déclarée en public. Et donc dans ce cas, il faudra passer par une LocalConnection.
Les 2 solutions se défendent, donc, selon l'endroit où est placé le code du swf enfant (externalisé ou non).