IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

lancer un clip avec un bouton


Sujet :

Flash

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 1
    Points
    1
    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.

  2. #2
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    c'est très simple en effet il suffit d'utiliser l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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.

  4. #4
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    il faut placer le code sur un calque pas sur le bouton le code complet doit donner quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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.

  6. #6
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    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 :
    ... 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    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

Discussions similaires

  1. lancer fonction avec des boutons
    Par zouloutom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/08/2011, 10h22
  2. Réponses: 0
    Dernier message: 03/07/2008, 16h18
  3. [Débutant] Lancer un fichier voulu avec un bouton
    Par brucelee410 dans le forum Delphi
    Réponses: 4
    Dernier message: 07/02/2007, 13h18
  4. [VB.NET] Pb avec le bouton Annuler d'1 barre de progression
    Par dada1982 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/06/2004, 09h56
  5. Réponses: 10
    Dernier message: 10/06/2004, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo