AS2 : unloadMovieClip

Résolu
LordGroumf Messages postés 9 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 8 novembre 2010 - 4 nov. 2010 à 17:23
LordGroumf Messages postés 9 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 8 novembre 2010 - 5 nov. 2010 à 17:44
Bonjour,
Je vous expose mon problème tout en précisant que je manipule flash AS2 sans aller trop loin dans les connaissances de code, ce qui fait que je bloque actuellement.

J'ai ma scène principale (anim1) qui contient un bouton qui charge text1.swf via
btn01.onRelease = function (){
createEmptyMovieClip("conteneur", 0);
conteneur.loadMovie("text1.swf");
conteneur._x=215;
conteneur._y=92;
}


Ce clip (text1.swf) contient une fonction qui charge un texte stocké sur un document XML et un bouton pour me permettre de fermer ce text1.swf

Mon problème est que je n'arrive pas vider le conteneur via le swf chargé.

Peut être que je m'y prend mal pour afficher cette "bulle de texte" en chargeant un clip externe et que vous aurez une meilleure idée.
Merci

4 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
5 nov. 2010 à 11:03
Hello,

si le contenu de ton swf externe n'est pas lourd tu auras plus de facilité à gérer ce contenu si tu l'intègres directement dans ton swf principal. Donc concrètement tu auras le code pour charger ton fichier xml dans le swf principal, et les variables en rapport qui seront également définies dans ton swf principal, donc -> une simplicité de gestion du code du fait que tout ce code sera dans le même swf (ainsi pas besoin de LocalConnection()).
Dans les faits tu peux procéder ainsi :
- soit tu stockes ton clip "texte" dans la bibliothèque de ton swf et tu l'affiches via attachMovie lorsque tu le désires, et définis selon la variable le texte à afficher.
- tu peux aussi mettre directement le clip "texte" sur la scène mais en hors champ, de manière à charger le contenu dès l'ouverture de la page par exemple, puis tu déplaces le clip (avec les tweens par exemple) lorsque tu veux l'afficher sur la scène.

Dans les 2 cas ça marchera et tu n'auras pas à te casser la tête avec LocalConnection(), bien que je t'invite tout de même à faire des tests avec LocalConnection() afin de bien comprendre comment ça fonctionne, car sans LocalConnection() il est impossible de faire communiquer 2 swf ensemble en as2.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
4 nov. 2010 à 17:31
Hello,

en fait si je comprends bien l'action de "supprimer" "text1.swf" se trouve dans "text1.swf" lui-même ? Donc si tel est le cas tu dois passer par LocalConnection() pour indiquer au swf conteneur de "text1.swf" de supprimer ce dernier.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
LordGroumf Messages postés 9 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 8 novembre 2010
5 nov. 2010 à 10:03
Merci déjà d'avoir répondu,
Alors, j'ai tenté de trouver un bout de code correspondant à LocalConnection ()
Puis j'ai essayé par moi même, sans succès.

En revanche, je me posais un question sur l'optimisation de mon animation. Qu'est ce qui serait le plus simple :
- Avoir un seul clip "text" directement dans l'anim principale mais dans la bibliothèque et que j'appelle via un attachMovie et qui affiche mon texte XML en fonction du bouton via une variable?
Ce que j'ai essayé et dans ce cas, il ne prend pas mon clip "btclose" qui permet de fermer la fenêtre ni les indications qui permettent de placer ce clip sur ma scène selon x et y.

- Avoir un swf externe (qui contient mon code vers XML) et l'appeler via un loadClip?
Ici tout fonctionne, mon clip "btclose" présent sur l'anim externe, Excepté que je ne peux placer mon clip selon x y.

- Créer un clip conteneur qui charge le swf externe?
Ça fonctionne mais comme je l'ai déjà dis, je ne peux vider le conteneur via le swf chargé.

- Au final, j'ai une anim principale de 1019x714 qui appelle un swf externe qui fait la même taille 1019x714 pour pouvoir placer ce clip comme je veux.

Je sens que je m'y prend mal, j'ai vraiment envie de progresser et comprendre la meilleure solution qui pour moi semble être la première, mais je pense avoir besoin d'un peu d'aide pour me guider.
Qu'en pensez vous?
0
LordGroumf Messages postés 9 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 8 novembre 2010
5 nov. 2010 à 17:44
Merci BBFUNK01, j'ai testé les tweens (je voulais voir comment ça marchait donc c'est une bonne occasion qui s'est présentée là)et ça fonctionne parfaitement.
Je me suis servis de ce tuto : http://www.flashkod.com/codes/INTERFACE-VIP-MEMBER-MC-TWEEN-MOTION_50684.aspx et surtout des commentaires ^^


Au final, j'ai donc mon anim principale avec mon clip sur le coté "hors champs", je le fais glisser sur la scène via les tweens, en fonction du bouton cliqué, il se charge du XML correspondant.

Voici le code pour ceux afin d'en faire profiter les débutants comme moi.

stop();
#include "mc_tween2.as"

function chargeXML() {
var contact_xml:XML = new XML();
contact_xml.ignoreWhite = true;
contact_xml.load(i+"text.xml");
contact_xml.onLoad = function(success) {
if (success) {
fenetre.cadre.htmlText = contact_xml.firstChild.toString();
}
};
}

var i = 0;
btn01.onRelease = function (){
i = 1;
chargeXML();
fenetre.xSlideTo(-142,0.5,"easeInOutCirc"); 
}

btn02.onRelease = function (){
i = 2;
chargeXML();
fenetre.xSlideTo(-142,0.5,"easeInOutCirc"); 
}

btn03.onRelease = function (){
i = 3;
chargeXML();
fenetre.xSlideTo(-142,0.5,"easeInOutCirc"); 
}

fenetre.btclose.onRelease = function (){
fenetre.xSlideTo(-1163,0.5,"easeInOutCirc");
}
0
Rejoignez-nous