Encore ma foutu conception flash...

Leyry Hynemonth

a découvert une nouvelle définition de l'ennui.
Club iGen
18 Décembre 2004
4 144
261
Nîmes
www.lyhn.fr
Voilà, je revient de nouveau parce que j'ai un problème pour naviguer entre les clips, images et séquences :

J'ai un séquence (TAR) qui contient 4 images sur un claque: Sport; Cult; Jeun et Serv.
Sur un autre calque de cette même séquence, j'ai un clip dans lequel il y à des boutons.
J'aimerais faire en sorte que lorsque je clique sur un de ces boutons, la séquence TAR aille à l'image Cult, par exemple. Ce qui donne :

on(press) {
_root.gotoAndPlay("Cult")
} => Directement sur les actions de mon bouton

ou encore

BTcult.onPress=function(){
gotoAndPlay("Cult");
} => Sur la première image d'un calque vide de la séquence TAR.

Seulement, ça n'a aucun effet.
Qu'est-ce qui ne vas pas ?

Merci pour votre flash !
 
Salut

J'essaie de comprendre : tu as 4 images sur ta timeline principale, et tu as bien nommé tes images-clés Sport, Cult, Jeun et Serv.

Ton bouton BTcult, que tu devrais renommer en cult_btn, c'est mieux pour le Flash (de même, les instances de movieClips à nommer nom_mc, etc.), est placé sur un calque indépendant et présent tout le long de la timeline utilisée.

Tu peux écrire sur ta première image-clé, par exemple sur un calque indépendant que tu appèlerais "code" pour y regrouper tout le code :

cult_btn.onRelease=function(){
gotoAndStop("Cult");
}

(J'ai mis gotoAndStop car s'il s'agit juste d'aller se positionner sur une image-clé contenant une image, il n'est pas nécessaire de lancer la lecture, et ça évite de placer un stop(); sur chaque image-clé.)

et faire pareil avec tes autres boutons.

Maintenant, comme ton explication manque de précision, on peut aussi comprendre que tu as sur ta timeline principale en plus des 4 boutons, un movieClip nommé TAR qui contient tes fameuses 4 images. Si c'est le cas, on va le renommer tar_mc et changer le code comme cela :

cult_btn.onRelease=function(){
tar_mc.gotoAndStop("Cult");
}

Bref, tout est question de bien s'adresser aux objets sur lesquels on veut agir.
 
Il s'agit de faire aller la séquence principale (qui s'appelle TAR ) à une image précise. En l'occurrence : cult .

cult_btn.onRelease=function(){
gotoAndStop("Cult");
}

et

BTcult.onPress=function(){
gotoAndPlay("Cult");
}

C'est pas pareil ? Surtout lorsqu'ils sont placées sur la timeline directement ?

Au moins, tu a clarifié ce qui était floue.

Par contre, un truc que tu pourrais m'expliquer : En quoi est-ce que le fait de nommer un bouton cult_bnt est mieux que BTcult ? J'avoue que je ne pige vraiment pas !

Au cas où je me serais mal exprimer (Pour changer... :rateau: )
Les boutons qui doivent gouverner la séquence TAR sont dans un clip ("kltur") qui est placé dans un calque de la séquence TAR.... Juste au cas ou il faudrait rajouter un _root. en plus quelque part...
 
Si tu saisis ton code dans le mode expert, avec le code au kilomètre, lorsque tu tapes des mots suivis d'un point, un menu contextuel apparait, te suggérant des instructions possibles à placer à la suite. Le fait qu'un nom d'occurence de bouton se termine par _btn fait que ce menu ne va contenir que les instructions correspondantes aux boutons, et pas celles spécifiques aux movieClips par exemple. Idem pour les movieClips dont le nom d'occurence se termine par _mc, le menu n'indique que les instructions pour les movieClips.

Le typage strict des objets permet ça aussi il me semble. Le typage strict c'est déclarer l'existence d'un objet avant de l'utiliser, et de préciser son type (variable, movieClip, etc.). Exemple :

conteneur_lv:loadVar = new loadVar;

D'une manière générale, ce genre de précision accélère l'exécution du code par le lecteur Flash qui doit moins se soucier de vérifier que le code qui suit convient bien à l'objet auquel il se rattache.

Pour en revenir au sujet, TAR c'est bien le nom de ta scène ? Si tes boutons sont dans un movieClip (kltur_mc ;) ), ce que tu as oublié de préciser dans ta question initiale :p, ton chemin n'est donc pas bon, depuis la timeline principale, il faut adresser tes boutons comme ceci :

kltur_mc.cult_btn.onRelease=function(){
etc.

Quand quelque chose ne marche pas, il faut déjà vérifier les chemins vers les objets, c'est une erreur classique.
 
La suite :

Acte I :

J'ai refait une nouvelle animation avec juste les éléments qui doivent interagir mais avec le même nombre de couches (Calques, séquences, boutons .....)
J'ai mis en places les formules, évidement, ça marche exactement comme je veut.

Acte II :

Je compare l'animation originale avec celle que je vient de créer, Tout me semble correct.
Deuxième vérification : La clip de l'animation originale contiens les boutons dans une image clef à 1 seconde. Ce même clip contiens les boutons une deuxième fois à 3 seconde du début du clip. Et ça, je ne m'en apercevait pas. Donc à chaque fois, je donnais un nom aux bouton à l'image 1, mais jamais à l'image 2, alors que c'est dans la position de l'image deux que l'on peut cliquer sur ces foutus boutons, et donc déclencher les actions souhaitées.


Dans le cas présent, une fois que l'animation étaient publiée, je ne faisait que cliquer sur un bouton sans nom, auquel aucune action était associée.

Voilà, merci pour ton aide jeanba ! ;)