Gestion d'un swf chargé depuis son parent AS3

simonmenu Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2009 - 28 avril 2009 à 14:37
simonmenu Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2009 - 28 avril 2009 à 19:02

7 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
28 avril 2009 à 14:43
Houla, clair net et précis comme message

voici la solution : Void

@+
0
simonmenu Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2009
28 avril 2009 à 14:50
en effet...
dans le meme esprit, merci pour ta réponce ultra rapide !

je retente.
0
simonmenu Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2009
28 avril 2009 à 14:53
cette fois ci j'espere que le message s'affichera, je ne comprend pas ce qui c'est passé.

/////////////////////////////// charge menu.swf ///////////////////////////////////
import flash.display.MovieClip;
var chargeur:Loader = new Loader();
var requestmenu:URLRequest = new URLRequest("datas/menu.swf");
chargeur.load(requestmenu);
addChild(chargeur);

/////////////////////////////// charge anim1 ///////////////////////////////////
var chargeur1:Loader = new Loader();
MovieClip (chargeur1.content).btn1_btn.addEventListener(MouseEvent.CLICK,chargeanim1);
function chargeanim1(event:Event):void {
chargeur1.load(new URLRequest("datas/anim1.swf"));
addChild(chargeur1);
chargeur.unload();
}

/////////////////////////////// retour menu ///////////////////////////////////
MovieClip (chargeur.content).btn1_btn.addEventListener(MouseEvent.CLICK,chargemenu);
function chargemenu(event:Event):void {
chargeur.load(requestmenu);
addChild(chargeur);
chargeur1.unload();
}
0
simonmenu Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2009
28 avril 2009 à 14:55
il manque juste le message mais là je sais ce qui s'est passé, un ctrl C un peu pauvre.

bonjour à tous,
pour me présenter, puisque c'est mon premier passage sur le forum, je suis étudiant en infographie et je découvre l'AS3 depuis peu après un court passage par l'AS2.

mon problème du moment concerne la gestion, depuis un swf principal, de boutons présents dans un swf externe dont j'attends qu'ils charge un autre swf en déchargeant celui qui le contient.
pour schématiser:
home.swf est vide et ne contient que le code.
sont appeler chacun leur tour :
- menu.swf, contenant btn1(vers anim1.swf)
btn2(vers anim2.swf)
btn3(vers anim3.swf)
- anim1.swf, contenant btnRetour(vers menu.swf)
- anim2.swf, contenant btnRetour(vers menu.swf)
- anim3.swf, contenant btnRetour(vers menu.swf)

donc je souhaite gérer chaque bouton depuis home.swf et qu'à chaque nouveau chargement le swf en place soit viré afin d'éviter les superpositions.
déja, ma méthode vous semble t'elle en phase avec l'AS3 ?

voici le code que j'ai actuellement dans le fichier initial (home.swf) mais après une longue serie d' "essai-erreur" à partir de l'aide de flash et des forum, j'ai effacé une partie de charabia en espérant etre revenu à une version compréhensible et complétable. et je pense que j'utilise mal la classe MovieClip :

/////////////////////////////// charge menu.swf ///////////////////////////////////
import flash.display.MovieClip;
var chargeur:Loader = new Loader();
var requestmenu:URLRequest = new URLRequest("datas/menu.swf");
chargeur.load(requestmenu);
addChild(chargeur);

/////////////////////////////// charge anim1 ///////////////////////////////////
var chargeur1:Loader = new Loader();
MovieClip (chargeur1.content).btn1_btn.addEventListener(MouseEvent.CLICK,chargeanim1);
function chargeanim1(event:Event):void {
chargeur1.load(new URLRequest("datas/anim1.swf"));
addChild(chargeur1);
chargeur.unload();
}

/////////////////////////////// retour menu ///////////////////////////////////
MovieClip (chargeur.content).btn1_btn.addEventListener(MouseEvent.CLICK,chargemenu);
function chargemenu(event:Event):void {
chargeur.load(requestmenu);
addChild(chargeur);
chargeur1.unload();
}

Si quelqun peut me mettre sur la voix à partir de ce code inachevé...
Merci à ceux qui prendrons le temps de m'aider ou à defaut de m'avoir lu.
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
28 avril 2009 à 15:14
Rebonjour,

var chargeur1:Loader = new Loader();

MovieClip (chargeur1.content).btn1_btn.addEventListener(MouseEvent.CLICK,chargeanim1);

function chargeanim1(event:Event):void {

    chargeur1.load(new URLRequest("datas/anim1.swf"));

    addChild(chargeur1);

    chargeur.unload();

}

En gros, tu crées un Loader, chargeur1,  qui est VIDE et qui n'est PAS placé sur la scene > pas de addchild()
Tu sous-entend que dedans il y a un bouton MovieClip (chargeur1.content).btn1_btn (impossible) qui, lorsqu'il est pressé (pas possible puisque chargeur1 n'est pas sur la scene) charge une animation dans de le Loader (chargeur1)

va voir ce posten cours... on y traite presque du même sujet

@+
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
28 avril 2009 à 17:43
pour info, charger une animation dans un MovieClip qui ne fait partie d'aucune liste d'affichage fonctionne très bien ...

Peg'
0
simonmenu Messages postés 5 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2009
28 avril 2009 à 19:02
re
merci pour tes indications. j'ai mieux compris le rôle d' addChild. Pour l'utilisation de MovieClip m'échappe complètement par contre, pour tout dire j'ai utilisé cette ligne de code en remplacement d'une autre parce qu'on me l'avez indiqué comme ça toute faite (un prof).
parce qu'il me fallait un résultat le plus vite possible pour avancer sur autre chose, j'ai renoncé pour l'instant à contrôler les boutons présents dans mon menu.swf en les supprimant, coller en place sur ma scene principale puis envoyés à y=1000. puis retour à leur place respective lorsque je rappel le menu.swf.
c'est un peu tiré par les cheveux je sais mais pour l'instant j'obtiens au moins ce que j'attendais : pas de superposition et tout le code de la navigation au meme endroit. et ce en m'inspirant largement du code trouvé sur le post que tu m'as indiqué.
un grand merci
0
Rejoignez-nous