_parent _root : à se tirer les cheveux !!!! Besoin d'aide

tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006 - 19 janv. 2005 à 10:54
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006 - 20 janv. 2005 à 11:26
Bonjour, je vous fais part de mon problème sur lequel j'ai passé les dernières 48 heures à me mordre les os enfouis sous les ongles.
Le problème de base : un swf (une galerie photo) dans un autre swf (l'anim principale) par la fonction loadMovie.

Le menu de ma galerie photo est créée par un code, c'est pour ça que je galère autant. Téléchargez les sources, vous comprendrez mieux

Pour les hauts débits http://www.octeo.com/sources/fichiers.zip (1,48M), y'a les fla, les swf.

A mon avis le code à toucher se situe sur la première frame, premier calque (scripts) du fichier "plaques_tombales.fla" , je vois que ça.

Merci beaucoup

7 réponses

John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
19 janv. 2005 à 14:04
http://www.flashkod.com/forum.v2.aspx?ID=351705C à toi de bien décrire ton probleme (et eventuellement mettre le code ici), g pas envie de chercher dans ton .fla !
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
19 janv. 2005 à 14:26
J'ai reproduit une galerie photo trouvée ici :
http://www.lionbichstudios.com/flash_tutorials_advanced_picturenav.htm
(si vous n'allez pas voir, vous manquerez quelque chose)

Cette galerie, j'e l'ai insérée dans une autre anim, du coup, il faut que je modifie le problème de niveau (les root / parent ...) . Le problème c'est que j'ai lu des trucs sur flash-france.com à ce sujet mais entre comprendre une théorie et la pratiquer (tout seul) il y a une petite différence.

Pour naviguer dans cette galerie photo, un menu est créé entièrement avec action script. Le menu est simple, c'est un numéro correspondant au numéro de la photo. Quand on clique sur un numéro X, on va jusqua la photo numéro X avec un effet élastique. Le menu apparait sous la forme :
1 2 3 4 5 6
Mais une fois ma galerie insérée dans mon anim principale, le menu ne s'affiche plus.

Voici le code qui crée le menu dans ma galerie ainsi que l'effet élastique :

speed = 4;
MovieClip.prototype.slideTo = function(x, y, speed, callbackObj, callbackFunc) {
if (this.slideControl) {
var mc_control = this.slideControl;
} else {
var mc_control = this.createEmptyMovieClip("slideControl", this.depth++);
}
mc_control.targetX = x;
mc_control.targetY = y;
mc_control.speed = speed;
mc_control.callBackObj = callBackObj;
mc_control.callBackFunc = callBackFunc;
mc_control.onEnterFrame = function() {
this._parent._x += (this.targetX-this._parent._x)/this.speed;
this._parent._y += (this.targetY-this._parent._y)/this.speed;
if (Math.abs(this.targetX-this._parent._x)<0.2 && Math.abs(this.targetY-this._parent._y)<0.2) {
this._parent._x = this.targetX;
this._parent._y = this.targetY;
this.callBackObj[this.callBackFunc](this._parent);
this.removeMovieClip();
}
};
};
holder.setMask(maska);
for (var i = 1; i<=9; i++) {
var mc_control = _root.attachMovie("butt", "butt"+i, i);
mc_control._x = 125+i*9;
mc_control._y = 375;
mc_control.mc = this.holder["c"+i];
mc_control.tf.text = i;
mc_control.onPress = function() {
this._parent.holder.slideTo(this._parent.maska._x-this.mc._x, this._parent.maska._y-this.mc._y, this._parent.speed, this._parent, "slideDone");
};
}

Vous retrouverez ce code sur le site en haut.

Il faut (je pense) juste régler les parent ou root. C'est quelque chose que je ne maitrise pas encore.

Merci beaucoup
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
19 janv. 2005 à 16:20
Donc d'apres toi c cette instruction qui plante :

var mc_control = _root.attachMovie("butt", "butt"+i, i);

Ben g encore besoin de savoir ou est situé ce script pour repondre exactement : il faut mettre un truc du genre :


var mc_control = _parent._parent._parent.attachMovie("butt", "butt"+i, i);

enfin il faut mettre _parent le nombre de fois qu'il y a des clips imbriqués l'n dans l'autre + une fois pour le .swf.

_parent est le clip qui contient le clip courant (this) donc dans ton cas :

this = MovieClip

_parent = le clip (ou .swf) contenant MovieClip

_parent._parent =
le clip contenant
le clip contenant MovieClip (ou le .swf contenant le clip contenant MovieClip)
...
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
19 janv. 2005 à 16:23
Sinon oui c sympa comme diaporama.
0

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

Posez votre question
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
20 janv. 2005 à 10:03
Merci pour ton explication mais ça ne marche toujours pas.
C'est bien le root de cette ligne qui plante :
var mc_control = _root.attachMovie("butt", "butt"+i, i);

on m'a conseillé de mettre un truc dans ce genre :

_root.content(nom du clip contenu swf).attachmovie...
ou passer en relatif (_parent)

Le chemin relatif ne fonctionne pas (je suis allé à taton, avec un _parent, 2 _parent , 3 .... )

Alors je triffouille encore un peu mais de l'aide me ferai le plus grand bien, puisque je comprendrai ou l'erreur se situe.

Merci beaucoup.
0
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
20 janv. 2005 à 11:13
var mc_control = this.attachMovie("butt", "butt"+i, i);

et ca marche !! (testé avec ton .fla).

J'aime pas trop aller voir dans les sources d'habitude, mais la en 10 secondes ctai bon.

Je croyais que ce bout de code etait dans la fonction MovieClip.prototype c pour ca que je disais _parent. Mais en fait il est sur le scenario principal de ton .swf donc this (designe le clip courant) designe le .swf plaques_tombales.
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
20 janv. 2005 à 11:26
tu es un chef ! ! ! C'est super, ça me tire vraiment une fière chandelle du pied .

Merci beaucoup John_Doe_88
0