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 :

[FLASH MX2004] Attendre la fin d'un .swf


Sujet :

Flash

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut [FLASH MX2004] Attendre la fin d'un .swf
    Salut

    sur ma frame 1 je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    stop();
    my_mcl.loadClip("titi.swf","_root");
    puis, je voudrais ne passer à la frame 2 que lorsque je sais
    que titi.swf a fini (animation).

    Comment faire sans bidouiller titi.swf?
    S'il faut utiliser un gestionnaire d'events, dites moi comment
    faire car je ne trouve pas.




    merci

  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,
    l'idéal est donc de récupérer l'information de le clip est fini. Je pensais qu'il existait un truc genre movie.LastFrame mais je n'ai pas trouvé.
    Si tu connais exactement le nombre d'image de ton clip "titi" et que celui ci ne bouge pas tu peux écrire quelque chose comme ça : (si par exemple "titi" comporte 20 images)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    onEnterFrame = function() {
    	if (my_mcl._currentframe > 19)
    		gotoAndStop(2);
    }
    et sur l'image 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my_mcl.unloadMovie();
    C'est assez "bourrin" mais ça peut dépanner

  3. #3
    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
    ça y est j'ai trouvé l'instruction magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my_mcl._currentframe >= my_mcl._totalframes)
    Attetion >= il faut bien mettre inférieur ou égale sinon ça marchera pas.

  4. #4
    Membre confirmé Avatar de Destiny
    Profil pro
    Inscrit en
    Février 2005
    Messages
    720
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 720
    Points : 617
    Points
    617
    Par défaut
    meric ça va aussi m'être utile, car pour l'instant j'utilisai aussi la méthode bourrin..



  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut
    oui c'est super lorsque ton titi.swf a un nombre N de frames
    qui se déroulent de 1 à N

    MAIS

    lorsque ton titi.swf est une animation seulement par actionscript,
    (du genre fonctions mathématiques) donc qui n'a qu'une seule
    frame mais un gros onEnterFrame...

    disons que j'arrete le onEnterFrame de titi.swf lorsqu'une condition
    se donne, mais je ne sais pas comment faire pour que son parent
    le sache... en tout cas pas en faisant une gestion de frames

    mais, je ne sais pas, est-ce qu'un movieclip peut s'unloader soi-même
    par exemple?

    merci encore

  6. #6
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,

    Oui il peut s'unloader lui-même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.removeMovieClip();
    Sinon pour le parent soit au courant, soit tu déclenches un evenement soit tu crées une function dans le parent qui s'appelle par exemple aFini() et dans le clip enfant, tu fait :

  7. #7
    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

    moi je suis pas d'accord parce que la contrainte initiale c'est qu'on n'est pas propriétaire de titi.fla pour faire des modifs dedans !!!
    Comment faire sans bidouiller titi.swf?

  8. #8
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Oui mais moi je suis pas d'accord car s'il faut tout lire et tout comprendre c'est pas possible
    Le début est toujours bon, non ?

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut
    la contrainte n'était que pour éviter de faire du bricolage inecessaire.
    titi m'appartient et oh combien 8)

    j'ai donc créé la fonction aFini.

    Par contre l'histoire de déclencher en event: t'as un exemple?

    Aujourd'hui c'est la journée de la

    merci


  10. #10
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    si tu es sur que c'est un onEnterFrame qui est balancé dans titi.swf, et que tu connais sa cible, tu peux également lancer un onEnterFrame dans ton controleur, et tester si le gestionnaire onEnterFrame de la cible dans titi.swf est défini ou non...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if( myTitiContainer.onEnterFrame == undefined )
    {
    // onEnterFrame n'est plus déclaré, donc à priori, le traitement est terminé...
    }
    mais bon, tu dois être sur de la cible


    A++

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut
    merci beaucoup,
    tout ça est vachement intéressant.

    L'histoire de comment déclencher un event d'un clip vers un autre
    m'intéresse encore. Quelqu'un peut me donner un exemple de code?
    C'est quelqu'un peut être freegreg puis qu'il m'a conseillé de le faire

    encore

    chau


  12. #12
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    c'est juste question d'appeler la bonne méthode...

    genre tu déclare une méthode "onFinished" sur le _level0, puis dans ton swf titi, tu place un appel à cette méthode, soit en faisant un appel avec chemin "relatif"

    this._parent.[[je sais pas quelle est la profondeur totale]].onFinished();

    soit en faisant un appel avec chemin "absolu" :

    _level0.onFinished()

    et tu place le code que tu veux dans ta fonction onFinished...

    Après on peut utiliser l'eventDispatcher, mais c'est tout une autre histoire...

    A+

Discussions similaires

  1. [FLASH MX2004] Comment exporter une vidéo en .swf
    Par Véronika dans le forum Flash
    Réponses: 1
    Dernier message: 17/11/2007, 08h52
  2. [FLASH MX2004] [AS2] Attendre la fin de chargement d'un fichier avant de continuer.
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 01/03/2007, 15h13
  3. Réponses: 13
    Dernier message: 07/12/2006, 14h41
  4. Réponses: 2
    Dernier message: 10/04/2006, 15h39
  5. [FLASH MX2004] Attendre la fin d'une anim
    Par stailer dans le forum Flash
    Réponses: 2
    Dernier message: 11/07/2005, 12h47

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