Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2008, 16h27   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 3
Points : 0
Points : 0
Par défaut lancer un clip avec un bouton

Bonjour,

Je débute dans l'animation flash et j'aurais besoin d'aide pour mon animation en cours. Il s'agit d'une animation pédagogique sur les pollutions agricoles et je voudrais pouvoir lancer différents clips à partir de boutons. En gros, j'ai 3 boutons sur ma première image et chaque bouton lancerait (dans l'absolu) un clip différent (bouton 1 lance clip 1, bouton 2 lance clip 2...), clips qui seraient présents dans la biliothèque. J'ai parcouru de nombreux forums et faq sans succès et pourtant cette action ne me semble pas irréalisable. J'espère avoir bien expliqué ma requête. Merci pour votre aide éventuelle.
missa444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 16h56   #2
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,
c'est très simple en effet il suffit d'utiliser l'instruction :
Code :
this.attachMovie("nom_de_liaison", "nouveau_nom", this.getNextHighestDepth());
Ce qu'il ne faut surtout pas oublier c'est l'identifiant de liaison. Dans la bibliothèque tu fais un clic droit sur le clip à copier et tu sélectionnes liaison. Là tu coches la case "exporter pour actionScript. A ce moment là il te propose comme nom de liaison le nom du clip mais tu peux très bien le changer c'est ce non de liaison qui est utilisé par le programme dans la méthode attachMovie.
Ensuite pour appliquer des méthodes et utiliser des propriétés il faudra utiliser "nouveau_nom" par exemple pour replacer le clip à un endroit satisfaisant quelque chose du genre
Code :
this.nouveau_nom._x = 100;
voilà ça parait un peu compliqué comme ça mais c'est tout bête...

crdt
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 17h17   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 3
Points : 0
Points : 0
c'est effectivement assez compliqué pour un néophyte comme moi. Le code est-il à entrer dans un calque action ou bien directement sur le bouton ? Merci pour ton aide, je vais essayer d'avancer en suivant tes conseils.
missa444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2008, 17h33   #4
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
il faut placer le code sur un calque pas sur le bouton le code complet doit donner quelque chose comme ça:
Code :
1
2
3
4
 
mon_bouton.onRelease = function(){
this._parent.attachMovie("nom_de_liaison", "nouveau_nom",this.getNextHighestDepth());
}
tu noteras que cette fois je préfixe par "this._parent" parce que this "attacherai" le clip au bouton lui même or je veux que le clip soit attaché au "parent" du bouton. D'ailleurs tu peux très bien t'amuser à tester "this.attachMovie" au lieu de "this._parent.attachMovie"
courage ça va marcher...
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 10h46   #5
Invité de passage
 
Inscription : janvier 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 3
Points : 0
Points : 0
Bonjour

Tout d'abord merci pour le code même si je n'arrive pas encore à faire fonctionner tout ça comme je le voudrais. Quelques interrogations subsistent quant au réel fonctionnement de mon animation : mes deux boutons sont créés (btn_01 et btn_02) et mes 2 clips aussi (cli_1 et cli_2). J'ai bien saisi l'histoire du nom de liaison (clic droit liaison etc) et je ne vois à peu près à quoi correspond le nouveau nom. En gros, je ne sais pas quoi faire de mes clips, où doivent-ils se trouver ? Ils sont pour l'instant dans la bibliothèque, dois-je les placer sur un calque du timeline ou ailleurs. Pour info, voici le code tel qu'il est sur mon anim :

btn_01.onRelease = function(){
this.attachMovie("cli_1", "cli_12",this.getNextHighestDepth());
this.cli_12._x = 100
this.cli_12._y = 120
}
btn_02.onRelease = function(){
this.attachMovie("cli_2", "cli_22",this.getNextHighestDepth());
this.cli_22._x = 100
this.cli_22._y = 120
}

J'ai peut-être oublié quelque chose d'évident, dans ce cas je plaide coupable de nullité mais je débute dans l'actionscript et j'entrave quedalle . Merci pour tout.
missa444 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 13h59   #6
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,

"attachMovie()" sert à charger dans l'animation des clips qui se trouvent dans la bibliothéque justement pour ne pas avoir à faire un "glissé-déposé" de clip (note bien qu'on peut faire comme ça aussi mais c'est une autre démarche). Je t'ai donné cette solution puisque ta question initiale était :
Citation:
... clips qui seraient présents dans la biliothèque ...
Quelque chose que tu dois assimiler pour la suite c'est la notion de chemin pour "cibler" les éléments de ton animation. Ton animation principale s'appelle _root. Maintenant imaginons que je place un clip "mon_clip" sur un calque de la scene principale. Si je veux atteindre une propriété de ce clip (par exemple ses coordonnées en x pour leur donner la valeur 100). Dans le code lui même placé sur un calque de la scene principale je peux faire de trois manières.
1 "mon_clip._x = 100; ça marche parceque le code et le clip sont au même endroit, mais pour plus de sureté je peux préciser
2 _root.mon_clip._x = 100; Là il n'y a plus d'ambiguité mais par contre c'est dangereux parce que on peut être amener à charger des clips les uns dans les autres et _root ne voudra plus dire la même chose. Enfin la dernière solution est d'utiliser "this" qui veut dire "lui même"
3 this.mon_clip._x = 100; comme j'ai écrit ce code au niveau de l'animation principale this représente _root.

Donc revenons au bouton si tu écris :
Code :
1
2
3
4
5
btn_01.onRelease = function(){
this.attachMovie("cli_1", "cli_12",this.getNextHighestDepth());
this.cli_12._x = 100
this.cli_12._y = 120
}
dans ce cas "this" veut dire "lui même" c'est à dire le bouton or toi tu veux que le clip soit "attaché" à l'animation qui contient le bouton dont c'est un niveau au dessus que tu vas atteindre en utilisant : this._parent. et ça devrait donner quelque chose comme :
Code :
1
2
3
4
5
6
btn_01.onRelease = function(){
this._parent.attachMovie("cli_1", "cli_12",this.getNextHighestDepth());
this._parent.cli_12._x = 100
this._parent.cli_12._y = 120
}
voilà j'espère t'avoir fait un peu avancé?
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2008, 11h34   #7
Invité régulier
 
Inscription : mars 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 30
Points : 7
Points : 7
Salut tout d'abord.

heu je suis également novice en flash et actionscript.
Je suis à la lettre vos indications, sur un FLA très simple pour comprendre votre méthode, et lorsque je clique sur mon bouton j'ai rien qui se met à l'écran :s

Ais-je oublié quelque chose?

Cordialement
timous59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h46.


 
 
 
 
Partenaires

Hébergement Web