Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: lancer un movie clip à partir d'un bouton
Envoyé: 20 janvier 2004, 7h41 par Oznog
Exacte, comme en programmation orientée objet (POO) tout objet dois avoir un "nom d'occurence" ou "nom d'instance". Car un objet peut être utilisé plusieurs fois, avoir des propriétés différentes etc. Et pour différencier ces diverse forme on donne un nom à chaque occurence.
Si dans la librairie j'ai un objet "auto". En le glissant sur la scène j'obtiens une occurence de cet objet. Si je glisse un autre "auto" sur la scène j'obtiens une deuxième occurence de ce même objet.
Ainsi je peux donne les propriété de couleur "Bleu" à l'auto 1 et la couleur "Rouge" à l'auto 2 sans affecter l'auto de la librairie.
À l'inverse si je change quoi que se soit dans l'auto de la librairie, la modification aura une répercussion sur les deux occurences de cet objet sur la scène.
Ensuite, si tu veux accéder, modifier une "propriété" ou utiliser une "méthode" d'une occurence sur la scène en programmation (Action Script) tu dois idéalement lui donner un nom d'instance (qui est en fait une de ses propriétés). (NOTE :, il est effectivement possible d'accéder aux objets sans nom d'instance en bouclant tous les objets de la scène ou d'un clip. Mais ça reste quand même dificile à identifier, donc pour cet exception aussi un nom d'instance est beaucoup plus pratique.).
DONNER UN NOM D'INSTANCE.
Tu dois ouvrir la fenêtre "Propriétés" (properties) (voir menu "fenêtre" (window) [CTRL-F3]. Version 4 et moins c'est une palette parmi les autres à droite. Version 5+ c'est une fenêtre normalement en bas au dessus de la fenêtre "Action Script".
Tu verra sous une liste déroulante des types de clip (Movie Clip, button, graphic) une boite de saisie où "<Instance Name>" est écrit en gris pâle. (Désolé aucune idée en français).
Tu entre le nom dans cette boîte.
ATTENTION, avant la version MX il y avais aussi le "nom de variable" pour un champ texte dynamique, plutôt à droite. Mais depuis MX un champ texte peut aussi avoir un nom d'occurence mais il devient ainsi un objet "TEXT" qui ne réagis plus au "nom de variable".
PROGRAMMATION AVANCÉE
D'autre part, quand tu "double" (duplicateMovieClip), quand tu "crée" (createEmptyMovieClip) ou quand tu "attache" (attachMovie) un clip directement en programmation. Le nom d'instance est spécifier lui aussi dans directement dans la syntaxe.
Par exemple :
duplicateMovieClip(cible,[NOUVEAU NOM D'INSTANCE]);
BOUTON
Maintenant que l'occurence de ton clip a un nom, tu peux accéder à ses propriété et utiliser ses méthode en le ciblan.
Tu as comme tu dit le tellTarget (vielle méthode bien que très rapide en runtime) mais aussi regarde dans la fenêtre des Actions en haut à gauche. Un bouton en forme de cible. Tu peux cibler tes occurences (de plusieurs façon) "bien nommé" par là et apprendre beaucoup sur le ciblage.
Dans l'ensemble c'est comme ça :
Scène principale > nom d'objet > propriété
Soit
_root.NomDoccurence._visible
_root.NomDoccurence._visible
Enfin, tu as plusieurs façon de procéder dans ton cas. Tu peux changer la position x pour sortir l'occurence hors de la scène. Tu peux le rendre invisible ou encore un gotoandPlay(x) pour partir le clip.
// Ton clip est invisible
// Ce code le rend visible
_root.NomDoccurence._visible = true;
// Ton clip à un stop() sur le premier cadre
// Ce code indique de passer au cadre 2
// provoquand ainsi l'animation
_root.NomDoccurence.gotoAndPlay(2);
// Ton clip est à l'extérieur de la scène visible
_root.NomDoccurence._x = 50;
// Enfin, pour ton tellTarget
tellTarget (NomDoccurence) {
gotoAndPlay(2);
}
Bonne chance.
Ciao
Oznog
Réponses
|