Chargement swf externe dans un swf principal

Retrouvez ici les topics qui font suite aux cours présentés sur explainMe. Si vous avez des questions par rapport aux cours, des remarques ou encore des infos à ajouter, c'est ici.

Chargement swf externe dans un swf principal

Messagepar design7 sur Lun 08 Fév 2010 18:24

Bonsoir à tous,
je débute en flash et jusque là je me débrouillait plutôt bien jusqu'à ce que j'arrive sur ce sujet.
Je n'arrive pas à charger correctement un swf externe sur mon interface principal. Il parvient à le charger mais à la lecture, il clignite deux de suite avant de rester fixe.
Je cherche un moyen de résoudre ce problème sachant que je voudrait après ça être en mesure de charger plus d'un swf sur ce interface. jusque là, vici le code que j'ai utilisé pour chargé le swf :
var swf1:MovieClip;
var loader1:Loader = new Loader();
var defaultSWF1:URLRequest = new URLRequest("swf/sousmenu.swf");//chargement du sous menu se trouvant dans sous répertoire
loader1.load(defaultSWF1);
addChild(loader1);

Merci de bien vouloir m'aider et je vous suis très reconnaissant pour l'attention que vous avez tiré à mon sujet.
Cordialement,
design7 :D
design7
Nouveau membre
 
Messages: 13
Inscrit le: Lun 08 Fév 2010 17:55
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Chargement swf externe dans un swf principal

Messagepar explainMe sur Lun 08 Fév 2010 18:48

Bonsoir et bienvenue à toi,

Alors à première vu ton code est correct et doit te charger ton swf correctement si le chemin est bon (ce qui , si j'ai bien compris, est juste).

Si tu souhaites charger plusieurs swf externe dans ton interface (comme nous le faisons dans le cours), il te faut placer ton code dans une fonction (de manière à ce qu'il soit réutilisable), et du coup le chemin devient une variable que tu passe à ta fonction et dont la valeur change suivant le besoin.

Cependant il faut vider le clip conteneur avant de charger un nouveau swf dedans (car en AS3, addChild(); ne remplace rien contrairement au loadMovie(); que nous utilisions en AS2).

Pour ça je t'invite à regarder ce topic sur le forum, qui traite du sujet. Tu peux aussi lire le chapitre 6 du cours sur flash qui traite du chargement d'un swf dans un autre (si ce n'est pas déjà fait évidement :) ).

Pour ton problème de clignotement, j'aurais 2 questions :


- est-ce que l'animation clignote aussi, lorsque tu test le swf sans le charger dans l'autre ?
-> auquel cas il te manquerait un stop(); dans ton code pour "figer" la tête de lecture.

- le code du swf chargé contient-il des noms d'occurrences identiques à ceux utilisés dans le swf "parent" ?
-> ce qui pourrait provoquer des conflits.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Chargement swf externe dans un swf principal

Messagepar design7 sur Mar 09 Fév 2010 09:29

Bonjour et grand merci à vous pour la réponse.
Pour les propositions que vous m'avez fait, je vais le tester tout à l'heure. Concernant les questions que vous m'avez posé il y a ceci:
1) Quand je charge le swf sans l'autre (sousmenu), mon animation ne clignote pas. Seulement, au lors du chargement, il m'affiche d'abord un fond vide (blanc) qui dure quelque poussière des secondes puis l'interface principale apparaît.
2) le swf chargé jusque là ne contient aucun éléments pouvant avoir le même nom d'occurrence avec ceux utilisé dans le swf parent. En plus de cela, j'ai fais express de ne rien mettre à part un fond (image) pour m permettre de voir si le swf sera bien affiché.

Merci pour votre disponibilité.
clt :) ,
design7
design7
Nouveau membre
 
Messages: 13
Inscrit le: Lun 08 Fév 2010 17:55
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Chargement swf externe dans un swf principal

Messagepar design7 sur Mar 09 Fév 2010 14:02

Bonjour,
Je me suis référé à votre proposition de solution que je vous aviez proposé à Julice, ça marché apparemment mais :?: le swf ne s'affiche plus, il n'y a plus des messages d'erreur mais le swf (sousmenu) n'apparaît plus. J'ai même dû essayé d'autres piste proposé dans les sites mediabox, ça donné la même réaction que lors de mon premier essai :( . (clignotement et en plus ça j'avais oublié de vous le dire. Le swf que je charge dans le swf principal paraît un peut décalé par rapport à l'interface principal.
J'attends toujours de propositions de votre part (forum) :D .
Merci,
design7
design7
Nouveau membre
 
Messages: 13
Inscrit le: Lun 08 Fév 2010 17:55
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Chargement swf externe dans un swf principal

Messagepar explainMe sur Mar 09 Fév 2010 19:22

Ok,

pourrait-tu m'envoyer tes fichiers FLA que j'y jette un coup-d'œil histoire de démêler tout ça ?

Pour le moment sans code ni visuel, j'ai du mal à voir ce qui peut provoquer ça...
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Chargement swf externe dans un swf principal

Messagepar design7 sur Mer 10 Fév 2010 09:35

Bonjour,
J'essai e joiindre le fichier .fla à partir d'ici ça réfuse, même le .zip.
je vous l'envoie si vous ne voyez pas d'inconvénients.
Ci joint, les fichiers fla de mon petit projet :arrow: (index.fla et sousmenu.swf).
Merci de votre apport.
Clt,
design7
design7
Nouveau membre
 
Messages: 13
Inscrit le: Lun 08 Fév 2010 17:55
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Chargement swf externe dans un swf principal

Messagepar explainMe sur Mer 10 Fév 2010 18:55

J'ai bien reçu tes fichier (svp tu peux me tutoyer je préfère).

Alors première chose : tel quel ça ne peut pas marcher !

La fonction est juste mais il n'y a pas de code pour la déclencher (écouteur sur un bouton par exemple).

Donc de mon côté j'ai compléter les points qui n'allaient pas et voici le résultat :

Image

J'ai tout simplement rajouté un nom d'occurrence et un petit bout de code pour lancer la fonction lors du clique sur le bouton "home".

-> je n'ai eu aucun clignotement ni quoi que ce soit d'autre, tout à très bien marché une fois le nom d'occurrence ajouté et le code de l'écouteur.

Voici mes remarques sur le fichier index.fla :

    1 - je n'ai pas trop compris pourquoi tu avait placé le gotoAndStop("interface"); à la fin de la timeline, ça oblique flash à lire une première fois l'animation puis de revenir placer sa tête de lecture en arrière une fois arrivé à la dernière image clé qui contient le code (déplace le code sur la première image tu gagnera du temps.
    2 - dans le clip interface : ton clip "menu" n'a pas de nom d'occurrence donc tu ne pourra pas cibler tes boutons - qui eux en possèdent - via l'ActionScript puisqu'ils sont dans ton menu.
    3 - La fonction est juste mais tel quel elle ne se lance pas, elle existe mais n'est pas appelée. Il faut créer un appel dans ton code pour lancer l'exécution de la fonction (un simple appel : affiche(); devrait la lancer ou bien tu places un écouteur sur l'un de tes boutons sur l'événement CLICK et lorsque tu cliquera sur le bouton, ça lancera l'exécution de la fonction, et donc le chargement du swf. La procédure pour les écouteurs se trouve dans le cours sur flash.
    4 - Pour le fichier sousmenu.swf je ne peux rien te dire car ce n'est pas le fichier source donc je ne peux pas voir dedans.

Voici un exemple de code pour l'écouteur (en prenant comme postula que le nom d'occurrence du clip menu est menuHaut) :
Code: Tout sélectionner
this.menuHaut.btn1.addEventListener(MouseEvent.CLICK, affiche);

Pour comprendre comment ça marche et qu'est-ce que ça fait, je t'invite à lire le cour sur flash.
Si tu ne l'as pas fait, je te propose de lire le cours depuis le début (même si certaines parties te sont déjà acquises) pour suivre la progression de l'explication et si tu as des questions ou des incompréhensions, n'hésites pas à poser tes questions, je me ferai un plaisir d'y répondre.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Chargement swf externe dans un swf principal

Messagepar design7 sur Jeu 11 Fév 2010 12:22

Bonjour,

Excuse moi, il m'arrive de beaucoup voussoyer à cause de ma culture (C'est par respects pour un supérieur ou une personne plus âgé que soit ou encore que l'on ne connais pas encore s'il est plus grand que soit ou non). Merci, je crois que ça ira comme tu me l'a permis.

J'ai corrigé les erreurs et cette fois j'ai obtenu une autre, on me dit
TypeError: Error #1010: Un terme n'est pas défini et n'a pas de propriété.
at interface_fla::MC_INTERFACE_1/affiche()


Et portant j'ai mit le nom d'occurrence que t'as demandé à ce que je mettes :? .
Concernant le fla du sous menu, il contiendrons également des animations mais j'ai pas encore touché à ça. Je compte terminer d'abord la structure générale de tous le site (s'assurer que tous les swf des mon site se charge dans l'interface principal) après quoi, je m'y mettrai à faire des animations. Actuellement, le seul swf que constitue mon sous menu ne contient absolument rien du tout à part un texte et une forme rectangulaire (fond bleu).
Merci bien et te souhaite de passer une très bonne après midi.
Clt,
design7.
design7
Nouveau membre
 
Messages: 13
Inscrit le: Lun 08 Fév 2010 17:55
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Chargement swf externe dans un swf principal

Messagepar explainMe sur Jeu 11 Fév 2010 20:09

Rassure-toi j'ai bien pris ton vouvoiement comme une marque de politesse te je t'en remercie, d'ailleurs dans la culture française aussi c'est comme ça (si j'ai bien compris tu es d'une autre culture c'est bien ça ?!).

Cela dit je trouve ça un peu trop formaliste voilà tout, maintenant si cela te dérange, il ne faut pas te sentir obligé non-plus, je ne veux pas forcer les gens, je te le signalais juste au cas où tu n'osais pas, voilà tout.

Pour le message d'erreur que tu obtiens, en fait c'est normal j'ai oublié de te signalé dans mon précédent message ( :oops: ) que tu avait également oublié de donner un nom d'occurrence à ton clip conteneur, du coup, dans ta fonction affiche();, la ligne :

this.contenu.addChild(chargeur);

provoque une erreur puisque flash ne trouve pas le nom d'occurrence "contenu".

Il te suffit de donner ce nom d'occurrence à ton clip conteneur et tout devrait fonctionner.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Chargement swf externe dans un swf principal

Messagepar design7 sur Ven 26 Fév 2010 10:52

Bonjour Boris,
T'as raison car j'avais manqué de spécifiers plussieurs qui sont à la base de ce disfonctionnement. J'ai pu résoudre le blem et maintenant ça va. J'ai connais un autres bug car je voudrais cette fois charger un swf nommé homme au chargement de l'interface.swf. home.swf devra être chargé dans le clip contenu contenu dans le clip interface. (root>interface>contenu).
Voici le code que j'avais utilisé vant sans faire référence au clip qui a marcg=hé mais ne pouvais pas charger mon home.swf dans le clip contenu :
//URl à atteindre
var monclip:URLRequest = new URLRequest("home.swf");
//Création du chargeur
var chargeur:Loader = new Loader()
//Chargement du contenu
chargeur.load(monclip);
//ajout à la liste d'affichage soit afficher dans l'ecran
addChild(chargeur);

Après, j'ai utilisé ce dernier en faisant référence à la hiérarchie de mes clip qui n'a pas donné de résultat :
var monclip:URLRequest = new URLRequest("home.swf");
//Création du chargeur
var chargeur:Loader = new Loader()
//Chargement du contenu
chargeur.load(monclip);
//ajout à la liste d'affichage soit afficher dans l'ecran
this.c_interface.contenu.addChild(chargeur);

Merci et passez une excellente journée.
Cordialement :D ,
design7
design7
Nouveau membre
 
Messages: 13
Inscrit le: Lun 08 Fév 2010 17:55
Reputation points: 0
Add reputation pointSubtract reputation point

Suivant

Retourner vers Suite des cours

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron