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 MX 2004] Problème de préchargement d'un fichier XML


Sujet :

Flash

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut [Flash MX 2004] Problème de préchargement d'un fichier XML
    Bonjour,

    Je souhaiterait réaliser le préchargement d'un fichier xml lors du clique sur un bouton.

    Lors du clique sur le dit bouton, le préchargement commencerait et la barre de progression augmenterait progressivement, puis, une fois entièrement remplie, le fichier xml préchargé s'afficherait dans un cadre.

    Mais le problème est que la barre de chargement n'augmente pas pendant le préchargement lorsque l'on clique sur le bouton, mais elle se remplie totalement d'un coup lorsque le fichier a été entièrement chargé.

    Voici le code que j'utilise :


    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
    26
    27
    28
    29
    //INITIALISATION
    charger_loader.bar._xscale = 0;
    parser_loader.bar._xscale = 0;
    xmlDoc = new XML();
     
    //CHARGEMENT DU FICHIER XML
    this.charger_btn.onPress = function() {
    	xmlDoc.ignoreWhite = true;
    	xmlDoc.onLoad = function(success:Boolean) {
    		if (success) {
    			Voir_xml.text = xmlDoc;
    		} else {
    			Voir_xml.text = "Erreur lors du chargement du fichier XML";
    		}
    	};
    	xmlDoc.load("carte.xml");
     
    //AFFICHAGE DE LA BARRE DE PROGRESSION
    	charger_loader.onEnterFrame = function() {
    		var pctLoaded:Number = Math.floor(xmlDoc.getBytesLoaded()/xmlDoc.getBytesTotal()*100);
    		if (!isNaN(pctLoaded)) {
    			//c'est bien un nombre
    			charger_loader.bar._xscale = pctLoaded*60/100;
    			if (pctLoaded>=100) {
    				charger_loader.onEnterFrame = undefined;
    			}
    		}
    	};
    };
    Je ne vois pas du tout d'où peut venir le problème, mais j'espère avoir été assez clair pour vous décrire la situation.

    Merci par avance pour vos suggestions.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Je me permet un petit up de ce message, je suis toujours dans cette impasse.

  3. #3
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    yep,

    je sais pas si ca va resoudre ton pb mais il me semble que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    charger_loader.onEnterFrame = undefined;
    serai plutot à ecrire comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete charger_loader.onEnterFrame;
    sinon as-tu essayé de faire un trace sur ta variable pctLoaded ? (pour savoir d'ou vient le pb)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Salut à toi beekeep et merci pour ta réponse.

    J'ai donc testé ce que tu me proposais de remplacer dans le code, mais cela n'a pas eut d'effet malheureusement.

    Par contre, tu as bien fait de me demander si j'avais fais un trace sur pctLoaded, car en effet, je ne l'avais pas fait.

    J'ai donc mis un trace(pctLoaded) après cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pctLoaded:Number = Math.floor(xmlDoc.getBytesLoaded()/xmlDoc.getBytesTotal()*100);
    Et c'est apparament là d'où vient le problème, car la valeur retourné est 100.

    Qu'en penses-tu ?

  5. #5
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Lut,

    vu que le post n'est tjr pas résolu je repond ..

    je pense que lorsque tu defini ta fonction onEnterFrame, le chargement est deja terminé !

    essaye en placant ton chargement (xmlDoc.load("carte.xml"); ) aprés la definition d'onEnterFrame.
    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
    26
    27
    28
    29
    30
    //INITIALISATION
    charger_loader.bar._xscale = 0;
    parser_loader.bar._xscale = 0;
    xmlDoc = new XML();
     
    //CHARGEMENT DU FICHIER XML
    this.charger_btn.onPress = function() {
    	xmlDoc.ignoreWhite = true;
    	xmlDoc.onLoad = function(success:Boolean) {
    		if (success) {
    			Voir_xml.text = xmlDoc;
    		} else {
    			Voir_xml.text = "Erreur lors du chargement du fichier XML";
    		}
    	};
     
    //AFFICHAGE DE LA BARRE DE PROGRESSION
    	charger_loader.onEnterFrame = function() {
    		var pctLoaded:Number = Math.floor(xmlDoc.getBytesLoaded()/xmlDoc.getBytesTotal()*100);
    		if (!isNaN(pctLoaded)) {
    			//c'est bien un nombre
    			charger_loader.bar._xscale = pctLoaded*60/100;
    			if (pctLoaded>=100) {
    				delete charger_loader.onEnterFrame;
    			}
    		}
    	};
    // lancer Chargement XML
    	xmlDoc.load("carte.xml");
    };
    bye

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/03/2007, 14h21
  2. [FLASH MX 2004] Problème avec loader
    Par Sorento dans le forum Flash
    Réponses: 3
    Dernier message: 06/07/2005, 20h21
  3. [FLASH MX 2004]Optimisation du rendu d'un fichier .swf
    Par yezhouden dans le forum Flash
    Réponses: 3
    Dernier message: 15/07/2004, 09h38
  4. Réponses: 12
    Dernier message: 03/06/2004, 20h21
  5. Réponses: 12
    Dernier message: 27/05/2004, 00h13

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