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] Besoin d’éclaircissement avec la fonction onEnterFrame


Sujet :

Flash

  1. #1
    Membre habitué Avatar de solarishp
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 123
    Points : 140
    Points
    140
    Par défaut [FLASH MX2004] Besoin d’éclaircissement avec la fonction onEnterFrame
    Je suis allé sur la section preloader de ce site et j'ai téléchargé un des preloader disponible.

    En faisant mes tests je me suis rendu compte que la fonction onEnterFrame continue pendant toute la durée de mon SWF ! Est-ce normal ?, comment faire pour stopper cette fonction une fois le téléchargement arrivé à 100 % ?

    J’ai placé deux TRACE pour vous montrez !

    Voici le code source :

    stop(); //inutile si qu'une image
    var poidTotal:Number;//poid total de l'animation
    var poidCharge:Number;//poid déja chargé de l'animation
    var pourcentage:Number;//Pourcentage de chargement
    var longueurBarre:Number = barre_mc._width;//Taille de la barre à 100%

    this.onEnterFrame = function () {
    poidTotal = Math.round(this.getBytesTotal()/100); //poid en Ko
    poidCharge = Math.round(this.getBytesLoaded()/100); //poid en Ko
    pourcentage = Math.round((poidCharge/poidTotal)*100); //Calcule du pourcentage arrondi

    if(isNaN(pourcentage)) {
    pourcentage_txt.text = poid_txt.text = "";
    } else {
    barre_mc._width = pourcentage*(longueurBarre/100); //Changement de la taille de la barre
    pourcentage_txt.text = pourcentage +" %"; //Affichage du pourcentage
    poid_txt.text = poidCharge+"Ko / "+poidTotal+"Ko"; //Affichage du poid chargé et du poid total
    trace("En charge!");
    if (pourcentage >= 100) {//Lorsque le chargement atteind 100%
    trace("Fin du chargement !");
    this.gotoAndStop("contenu");//On accède au contenu
    }
    }
    };
    Merci de m’éclairer sur le sujet
    Respecter la charte du forum pour rappel ! Ici
    Vérifier l’orthographe de vos messages
    Il ne faut pas penser à l'objectif à atteindre, il faut seulement penser à avancer. C'est ainsi, à force d'avancer, qu'on atteint ou qu'on double ses objectifs sans même sans apercevoir.

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 146
    Points : 150
    Points
    150
    Par défaut
    justement, c'est ce que j'essayer de te faire comprendre dans ce post :
    http://www.developpez.net/forums/sho...d.php?t=248987

    en fait l'évenement onEnterFrame est appelé à chaque frame de ton animation (ex : en 12frames/s cette fonction s'exécute 12 fois par secondes).

    il n'a aucune raison de s'arréter à la fin du chargement.
    pour l'arréter il suffit de le redéfinir avec une fonction vide lorsque tu veux plus qu'il s'éxecute (à la fin de ton chargement).

    ca donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    stop(); //inutile si qu'une image
    var poidTotal:Number;//poid total de l'animation
    var poidCharge:Number;//poid déja chargé de l'animation
    var pourcentage:Number;//Pourcentage de chargement
    var longueurBarre:Number = barre_mc._width;//Taille de la barre à 100%
    
    this.onEnterFrame = function () {
    poidTotal = Math.round(this.getBytesTotal()/100); //poid en Ko
    poidCharge = Math.round(this.getBytesLoaded()/100); //poid en Ko
    pourcentage = Math.round((poidCharge/poidTotal)*100); //Calcule du pourcentage arrondi
    
    if(isNaN(pourcentage)) {
    pourcentage_txt.text = poid_txt.text = "";
    } else {
    barre_mc._width = pourcentage*(longueurBarre/100); //Changement de la taille de la barre
    pourcentage_txt.text = pourcentage +" %"; //Affichage du pourcentage
    poid_txt.text = poidCharge+"Ko / "+poidTotal+"Ko"; //Affichage du poid chargé et du poid total
    trace("En charge!");
    if (pourcentage >= 100) {//Lorsque le chargement atteind 100%
    this.onEnterFrame = function() {};
    trace("Fin du chargement !");
    this.gotoAndStop("contenu");//On accède au contenu
    }
    }
    };
    Best Web Design Software ever - http://tweakstyle.com

  3. #3
    Membre habitué Avatar de solarishp
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 123
    Points : 140
    Points
    140
    Par défaut
    Effectivement tu as raison, ça fonctionne. Merci encore et sorry
    Respecter la charte du forum pour rappel ! Ici
    Vérifier l’orthographe de vos messages
    Il ne faut pas penser à l'objectif à atteindre, il faut seulement penser à avancer. C'est ainsi, à force d'avancer, qu'on atteint ou qu'on double ses objectifs sans même sans apercevoir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/02/2007, 12h30
  2. [FLASH MX2004] Besoin d'aide créer animation
    Par Taz_8626 dans le forum Flash
    Réponses: 7
    Dernier message: 29/03/2006, 07h52
  3. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  4. [FLASH MX2004] Taille d'un movieclip avec bordure
    Par tomperso dans le forum Flash
    Réponses: 1
    Dernier message: 27/07/2005, 13h26

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