Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2007, 16h16   #1
Invité régulier
 
Inscription : janvier 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 23
Points : 6
Points : 6
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 :
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.
raptorman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 20h48   #2
Invité régulier
 
Inscription : janvier 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 23
Points : 6
Points : 6
Je me permet un petit up de ce message, je suis toujours dans cette impasse.
raptorman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 22h37   #3
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 234
Points : 2 234
yep,

je sais pas si ca va resoudre ton pb mais il me semble que :
Code :
charger_loader.onEnterFrame = undefined;
serai plutot à ecrire comme cela :
Code :
delete charger_loader.onEnterFrame;
sinon as-tu essayé de faire un trace sur ta variable pctLoaded ? (pour savoir d'ou vient le pb)
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 17h56   #4
Invité régulier
 
Inscription : janvier 2006
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 23
Points : 6
Points : 6
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 :
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 ?
raptorman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 13h35   #5
Rédacteur/Modérateur
 
Avatar de beekeep
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 1 606
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : octobre 2006
Messages : 1 606
Points : 2 234
Points : 2 234
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 :
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
beekeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h00.


 
 
 
 
Partenaires

Hébergement Web