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 27/06/2007, 17h54   #1
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 65
Points : 26
Points : 26
Par défaut Datagrid > Formatage des données reçues par PHP

Hello,
je reviens avec mon datagrid.... C'est pas évident lorsqu'on ne connait pas ce truc...

Alors voila ma question :

Je récupère des données dans un datagrid y compris un temps en milisecondes (donc de la forme : temps=15687... J'aimerais pouvoir convertir ce chiffre sous la forme Min'Sec'Millisec (donc du style temps:1'07'324).
Pour ce faire j'ai un code qui marche bien qui est celui-ci:
Code :
1
2
3
4
5
//Convertion du temps
var MS_total = TempsTotal%1000;
var S_total = Math.floor(TempsTotal/1000)%60;
var M_total = Math.floor(TempsTotal/60000)%60;
Affichage_total.text = M+":"+S+":"+MS;
Or, je ne sais pas où le placer dans mon code....

Je récupère les données au niveau de mon Datagrid via le gestionnaire onLoad. Voici une partie de mon code :

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
31
32
select_lv.onLoad = function() {
			for (var i:Number=0; i < this.n; i++) {
				scoreInfo.push(
					{record:this["id"+i],
					 prenom:this["prenom"+i],
					 nom:this["nom"+i],
					 temps:this["temps"+i]
					});
			}
            // On n'affiche uniquement le prenom, le nom et le temps (pas l'id)
			temps_dg.columnNames = ["prenom", "nom", "temps"];
			// Formatage colone "Prénom"
			temps_dg.getColumnAt(0).width = 200;
			temps_dg.getColumnAt(0).sortedUp = false;
			temps_dg.getColumnAt(0).headerText = "Prenom";
			// Formatage colone "Nom"
			temps_dg.getColumnAt(0).width = 200;
			temps_dg.getColumnAt(0).sortedUp = false;
			temps_dg.getColumnAt(0).headerText = "Nom";
			// Formatage colone "Nom"
			temps_dg.getColumnAt(2).width = 160;
			temps_dg.getColumnAt(2).headerText = "Temps";
			
			// Création du DataProvider
			temps_dg.dataProvider = scoreInfo;
			// Ajout de l'écouteur pour le clic sur l'entête des colones
			temps_dg.addEventListener("headerRelease", headerListener);
			msg_ta.text = "Vous pouvez enregistrer votre temps";
}
msg_ta.text = "Chargement des temps...";
//Envoi des données au script PHP via SendAndLoad
select_lv.sendAndLoad("http://localhost/wits_project/wits_project/jeux_flash/menu_jeux/getscore.php", select_lv, "GET");
De plus, je me pose une question par rapport au tri. Si jamais j'arrive à modifier la variable "temps" et de l'afficher sous la forme "min'sec'millisec" est-ce que le tri pourra encore s'effectuer dans mon datagrid?

Voici la methode de tri que j'ai employé pour la colone qui affiche mes temps (mon datagrid s'appelle "temps-dg")

Code :
1
2
3
4
5
6
7
8
9
case 2:
if (temps_dg.getColumnAt(2).sortedUp) {
    temps_dg.sortItemsBy(temps_dg.columnNames[2], Array.NUMERIC | Array.DESCENDING);
} 
else {
    temps_dg.sortItemsBy(temps_dg.columnNames[2], Array.NUMERIC);
}
temps_dg.getColumnAt(2).sortedUp = !temps_dg.getColumnAt(2).sortedUp;
break;
Merci d'avance à tous ceux qui pourraient m'apporter des solutions !
purple21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 18h31   #2
Membre confirmé
 
Avatar de Fares BELHAOUAS
 
Homme Fares Belhaouas
Développeur Flex & Java
Inscription : mars 2002
Messages : 182
Détails du profil
Informations personnelles :
Nom : Homme Fares Belhaouas
Âge : 36
Localisation : Algérie

Informations professionnelles :
Activité : Développeur Flex & Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2002
Messages : 182
Points : 236
Points : 236
Envoyer un message via MSN à Fares BELHAOUAS Envoyer un message via Yahoo à Fares BELHAOUAS
Salem purple21,

trop long ton post, je veux dire ta question, ça ne donne pas envie à lire. Peux-tu s'il te plait être bref et précis.

Merci
__________________
Bon courage, @ ciao bonsoir!
--------------
Mettre le Tag est aussi une aide aux développeurs
Fares BELHAOUAS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 09h28   #3
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 65
Points : 26
Points : 26
yop,

voici ma question wachement réduite:

comment et surtout à quel endroit de mon code je peux formater des données affichées dans un datagrid. Mes données affichées sont du style : 75689 (c'est un temps en miliseconde) et moi je voudrais qu'elles s'affichent sous la forme "1'34'890 (soit sous la forme min'sec'millisec)

Voilou !
purple21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 11h33   #4
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 65
Points : 26
Points : 26
------------------------RESOLU-----------------------------------

J'ai trouvé la solution tout seul comme un grand.

Je la poste pour ceux que ça interresseraient...

Alors, en fait, juste avant de récupérer les données envoyées par PHP et de les mettre dans mon DataProvider j'ai mis cette petite ligne :
Code :
var z = convertion(this["temps"+i]);
Ce qui me donne donc ce code pour mon onLoad :
Code :
1
2
3
4
5
6
7
8
9
10
select_lv1.onLoad = function() {
			for (var i:Number=0; i < this.n; i++) {
				var z = convertion(this["temps"+i]);
				scoreInfo1.push(
					{record:this["id"+i],
					 position:i,
					 prenom:this["prenom"+i],
					 nom:this["nom"+i],
					 temps:z
					});
La fonction "convertion" est définie comme cela :
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
31
32
33
34
35
 
function convertion(temps:Number):String {
//Convertion des millisecondes
var MS = temps%1000;
//Les secondes c'est les millisecondes divisées par 60. Math.floor sert à //prendre l'entier inférieur le plus proche
var S = Math.floor(temps/1000)%60;
//Convertion des minutes
var M = Math.floor(temps/60000)%60;
    //Si le chiffre des minutes est inférieur à 10
    if (M<10){
        //On rajoute un "0" devant
        M="0"+M;
    }
    //Si le chiffre des secondesest inférieur à 10
    if (S<10){
        //On rajoute un "0" devant
        S="0"+S;
    }
    //Si le chiffre des millisecondes est inférieur à 100
    if (MS<100){
        //Si le chiffre des millisecondes est inférieur à 10
        if (MS<10){
            //On rajoute "00" devant
            MS="00"+MS;
        }
    //Sinon on rajoute un "0" devant
    else{
        MS="0"+MS;
    }
}
//On affecte à la variable "retour" le temps sous la forme : min'sec'millisec
retour = M+":"+S+":"+MS;
//On renvoi la variable "retour"
return retour;
}
Voilou ! J'espère que ça pourra en aider d'autres !
ps : il y a peut-être une solution bien meilleure que celle là...
purple21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h44.


 
 
 
 
Partenaires

Hébergement Web