Accueil > Forum > > > > probleme de calcul en as 3.0
probleme de calcul en as 3.0
jeudi 10 décembre 2009 à 03:49:11 |
probleme de calcul en as 3.0

mtlbss
|
Bonsoir, je prépare une anime qui me permettrais de calculer des moyennes via une zone de saisie et un tableau mais je n'arrive pas a faire la somme des entrées du tableau, au lieu de cela les entrées sont mises cote a cote....
Il y a 2 bouton sur la scène et 2 zone texte, je les remplacerais par des scripts, mais je veux d'abord régler le soucis du calcul
si certain d'entre vous on un peu de temps a m'offrir, je vous en serrais très reconnaissant, je débute en as3.0, du coup je passe des heures a chercher sans résultat c'est pour cela que j'ose vous ennuyer avec mes problèmes, merci par avance....^^
var valeurPourMoyenne:Array = new Array();
//"entre"bouton sur l'anime pour valider la saisie
entre.addEventListener(MouseEvent.CLICK,miseAJourTableau);
//"egal"bouton sur l'anime pour obtenir le resultat
egal.addEventListener(MouseEvent.CLICK,calcul);
function miseAJourTableau(evt:Event)
{
//"saisie"Zone texte sur l'anime pour saisir les valeurs
valeurPourMoyenne.push(saisie.text);
//"affichageValeurCalcul"Zone texte sur l'anime pour afficher
affichageValeurCalcul.text = valeurPourMoyenne.toString();
}
function calcul(evt:Event)
{
trace( "valeur dans le tableau: "+valeurPourMoyenne );
var lng:int = valeurPourMoyenne.length;
trace("nombre de valeur: "+lng);
var total:Number = 0;
for (var i:Number = 0; i< lng; i++)
{
total += valeurPourMoyenne[i];
}
var moyenne = total/lng;
trace("totale: "+total);
trace("moyenne: "+moyenne);
}
|
|
jeudi 10 décembre 2009 à 07:44:10 |
Re : probleme de calcul en as 3.0

crackter
|
Réponse acceptée !
salut, tu fais des push de texte dans ton tableau et tu effectues des calculs sur ces textes. il suffit donc de les transformer avant.
|
|
jeudi 10 décembre 2009 à 13:39:38 |
Re : probleme de calcul en as 3.0

mtlbss
|
oki, je comprend mieux pourquoi, les valeur sont donc cote a cote, pour les transformer en Number, je vais chercher comment faire.
merci, beaucoup pour cette réponse.
Bonne journée......^^
|
|
jeudi 10 décembre 2009 à 13:51:43 |
Re : probleme de calcul en as 3.0

mtlbss
|
Super, merci beaucoup crackter, j'ai cru que ta reponse allai me faire chercher encore longtemps, mais en faite c'est simple comme bonjours, vraiment c'est cool, je met la correction du code, j'ai juste crée une var Number qui renvoie au valeur du tableau....
si je puis me permettre, comme je débute, vous auriez pas quelques remarque a me faire sur l'écriture du code, comme la syntaxe ou une simplification du script, en tout cas un grand merci crackter.....^^
var valeurPourMoyenne:Array = new Array();
//"entre"bouton sur l'anime pour valider la saisie
entre.addEventListener(MouseEvent.CLICK,miseAJourTableau);
//"egal"bouton sur l'anime pour obtenir le resultat
egal.addEventListener(MouseEvent.CLICK,calcul);
function miseAJourTableau(evt:Event)
{
//"saisie"Zone texte sur l'anime pour saisir les valeurs
valeurPourMoyenne.push(saisie.text);
//"affichageValeurCalcul"Zone texte sur l'anime pour afficher
affichageValeurCalcul.text = valeurPourMoyenne.toString();
}
function calcul(evt:Event)
{
trace( "valeur dans le tableau: "+valeurPourMoyenne );
var lng:int = valeurPourMoyenne.length;
trace("nombre de valeur: "+lng);
var total:Number = 0;
for (var i:Number = 0; i< lng; i++)
{
var valeurNumber:Number = valeurPourMoyenne[i]
total += valeurNumber;
}
var moyenne = total/lng;
trace("totale: "+total);
trace("moyenne: "+moyenne);
}
|
|
jeudi 10 décembre 2009 à 22:32:05 |
Re : probleme de calcul en as 3.0

mtlbss
|
Bonsoir, je suis pas sur que sa intéresse beaucoup de monde, mais bon, j'ai fait des modifs sur mon script afin de n'avoir plus que du script, j'ai encore quelques idées a développer pour rendre l'interface plus pratique.
Encore un grand merci a tous pour le partage des connaissances et des codes...^^
//different etats du bouton
var up:MovieClip = new MovieClip()
up.graphics.beginFill(0x666666,1);
up.graphics.drawRect(550,20,50,50);
up.graphics.endFill();
var over:MovieClip = new MovieClip()
over.graphics.beginFill(0x333333, 1);
over.graphics.drawRect(550,20,50,50);
over.graphics.endFill();
var down:MovieClip = new MovieClip()
down.graphics.beginFill(0xcccccc, 1);
down.graphics.drawRect(550,20,50,50);
down.graphics.endFill();
//zones de texte
var valeurTexte:TextField = createCustomTextField(10, 10, 500, 60);
valeurTexte.type = TextFieldType.DYNAMIC;
valeurTexte.text = "valeurs";
var nombreValeurTexte:TextField = createCustomTextField(10, 85, 120, 20);
nombreValeurTexte.type = TextFieldType.DYNAMIC;
nombreValeurTexte.text = "nombre de valeurs";
var sommeValeurTexte:TextField = createCustomTextField(10, 120, 200, 20);
sommeValeurTexte.type = TextFieldType.DYNAMIC;
sommeValeurTexte.text = "somme des valeurs";
var resultatTexte:TextField = createCustomTextField(10, 155, 200, 20);
resultatTexte.type = TextFieldType.DYNAMIC;
resultatTexte.text = "resultats";
var saisie:TextField = createCustomTextField(10, 190, 50, 20);
saisie.type = TextFieldType.INPUT;
saisie.text = "";
//tableau
var valeurPourMoyenne:Array = new Array();
//bouton
var entre:SimpleButton = new SimpleButton(up, over, down, up)
addChild(entre)
//definition des parametres des zone de texte
function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField
{
var result:TextField = new TextField();
result.x = x;
result.y = y;
result.width = width;
result.height = height;
result.background = true;
result.border = true;
addChild(result);
return result;
}
//ecouteur boutton
entre.addEventListener(MouseEvent.CLICK,miseAJourTableau);
entre.addEventListener(MouseEvent.CLICK,calcul);
//entre des donnees dans le tableau
function miseAJourTableau(evt:Event)
{
valeurPourMoyenne.push(saisie.text);
}
//calcul
function calcul(evt:Event)
{
addChild ( valeurTexte );
valeurTexte.text = "valeur dans le tableau: "+valeurPourMoyenne.toString();
var lng:int = valeurPourMoyenne.length;
addChild ( nombreValeurTexte );
nombreValeurTexte.text = "nombre de valeur: "+lng.toString();
var total:Number = 0;
for (var i:Number = 0; i< lng; i++)
{
var valeurNumber:Number = valeurPourMoyenne[i]
total += valeurNumber;
}
var moyenne = total/lng;
addChild ( sommeValeurTexte );
sommeValeurTexte.text = "somme des valeurs: "+total.toString();
addChild ( resultatTexte );
resultatTexte.text = "moyenne: "+moyenne.toString();
}
|
|
vendredi 11 décembre 2009 à 22:27:10 |
Re : probleme de calcul en as 3.0

mtlbss
|
Bonsoir, je termine mon anime pour calculer des moyennes, tout en script et au clavier. Je pense que se script pourrait être largement optimisé, mais je n'est pas la connaissance suffisante pour mieux.
//formatage texte
var format:TextFormat = new TextFormat();
format.font = "Trebuchet MS";
format.color = 0xffffff;
format.size = 20;
//zones de textes
var valeurTexte:TextField = createCustomTextField(20, 20, 760, 300);
valeurTexte.defaultTextFormat = format;
valeurTexte.type = TextFieldType.DYNAMIC;
valeurTexte.text = "valeurs: ";
valeurTexte.multiline = true;
valeurTexte.wordWrap = true;
var nombreValeurTexte:TextField = createCustomTextField(20, 325, 760, 30);
nombreValeurTexte.defaultTextFormat = format;
nombreValeurTexte.type = TextFieldType.DYNAMIC;
nombreValeurTexte.text = "nombre de valeurs: ";
var sommeValeurTexte:TextField = createCustomTextField(20, 360, 760, 30);
sommeValeurTexte.defaultTextFormat = format;
sommeValeurTexte.type = TextFieldType.DYNAMIC;
sommeValeurTexte.text = "somme des valeurs: ";
var resultatTexte:TextField = createCustomTextField(20, 395, 760, 30);
resultatTexte.defaultTextFormat = format;
resultatTexte.type = TextFieldType.DYNAMIC;
resultatTexte.text = "resultats: ";
var texteInstruction:TextField = createCustomTextField(20, 430, 250, 60);
texteInstruction.defaultTextFormat = format;
texteInstruction.type = TextFieldType.DYNAMIC;
texteInstruction.text = "entrez vos valeurs ici ----> touche-Enter-pour valider";
texteInstruction.multiline = true;
texteInstruction.wordWrap = true;
var saisie:TextField = createCustomTextField(275, 430, 505, 30);
saisie.defaultTextFormat = format;
saisie.type = TextFieldType.INPUT;
saisie.text = "";
//tableau
var valeurPourMoyenne:Array = new Array();
//definition des parametres des zone de texte
function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField
{
var result:TextField = new TextField();
result.x = x;
result.y = y;
result.width = width;
result.height = height;
result.background = false;
result.border = true;
result.borderColor = 0xffffff;
addChild(result);
return result;
}
//ecouteur touche enter
this.addEventListener(KeyboardEvent.KEY_DOWN, toucheDown);
//fonction clavier
function toucheDown(evt:KeyboardEvent)
{
//touche enter keycode 13
if (evt.keyCode == 13)
{
//inserer les valeur dans le tableau
valeurPourMoyenne.push(saisie.text);
//affichage zone texte et contenu
addChild ( valeurTexte );
valeurTexte.text = "valeur dans le tableau: "+valeurPourMoyenne.toString();
//recuperation du nombre de valeur
var lng:int = valeurPourMoyenne.length;
//affichage zone texte et contenu
addChild ( nombreValeurTexte );
nombreValeurTexte.text = "nombre de valeur: "+lng.toString();
//calcul de la somme des valeurs
var total:Number = 0;
for (var i:Number = 0; i< lng; i++)
{
var valeurNumber:Number = valeurPourMoyenne[i]
total += valeurNumber;
}
//moyenne
var moyenne = total/lng;
//affichage zone texte et contenu
addChild ( sommeValeurTexte );
sommeValeurTexte.text = "somme des valeurs: "+total.toString();
addChild ( resultatTexte );
resultatTexte.text = "moyenne: "+moyenne.toString();
saisie.text = "";
}
}
|
|
samedi 12 décembre 2009 à 02:16:14 |
Re : probleme de calcul en as 3.0

crackter
|
Des petits conseils en vrac (j'ai pas planché dessus), certains points me semblent importants :
for (var i:Number = 0; i< lng; i++)
for (var i:int = 0; i < lng; i++)
Le type int est plus optimisé pour des boucles.
var moyenne = total/lng;
var moyenne:Number = total/lng;
ne pas oublier de typer les variables.
addChild(resultatTexte);
this.addChild(resultatTexte);
Ici, cela n'a rien à voir avec une optimisation et ton code marche très bien car tu es sur un code "in flash", mais pense, vue que tu as l'air motivé pour coder, qu'il se peut qu'un jour tu fasses des classes, et là c'est mieux, tout simplement ;). En tout cas c'est bien, rare sont ceux qui pensent à faire une initialisation de la variable de condition pour une boucle, beaucoup ont tendance à faire un :
for (var i:int=0;i<monTableau.length;i++)
sans se douter que l'accès à la fonction length (sisi c'est une fonction ^^) est un bouffe ressource lorsque l'on fait des boucles énormes.
|
|
samedi 12 décembre 2009 à 14:46:56 |
Re : probleme de calcul en as 3.0

mtlbss
|
Merci crackter, c'est super sympa, et oui je suis assez motivé...^^, je vais mettre en application les règles que tu as rappeler pour le typage, et int en place de Number, j'ai penser un moment retravailler ce script pour le mettre en class, mais j'éprouve de grande difficulté avec les attribut private et public, cependant c'est vers les class que je veux aller, je m'accroche et tes solutions me donne encore plus de motivation....^^
|
|
dimanche 13 décembre 2009 à 00:54:50 |
Re : probleme de calcul en as 3.0

crackter
|
et bien si tu as des questions sur les classes, n'hésites pas à m'envoyer un message privé, ça sera avec un grand plaisir que je t'aiderai.
|
|
dimanche 13 décembre 2009 à 14:41:25 |
Re : probleme de calcul en as 3.0

mtlbss
|
Merci, crackter, je vais essayer de mettre ce code sous forme de classes, comme sa j'aurais une base pour pouvoir te poser des question, c'est super sympas....^^
|
|
Cette discussion est classée dans : var, zone, calcul, anime, valeurpourmoyenne
Répondre à ce message
Sujets en rapport avec ce message
Plusieurs lettre pour une meme var [ par jultoys ]
Bijour, comment fair pour que quand ou clic sur un bouton, une zone de texte dynamique affiche la lettre et que quand on clic un autre bout, la meme z
Deplacement [ par sayen seifer ]
Salut tout le monde,Voila g fait une anime flash et le soucis c 'est que pendant cette anime g pas fait gaffe que certain objet depasser de la zone de
nom de variable & variables [ par desstrain ]
salut, 4h-10,je sui bloké sur un truc stupide mais je trouve pas nam = "_root.var_zone.nom"+i;=>_root.var_zone.nom1 a pour valeur "toto"mais le pb c
If "valeur" est dans array() .... [ par mattdelavega ]
BonjourJ'ai des tableaux avec tous les départements françaisCeux ci sont répartis en 4 Zones : var Zone_1 = new Array
nuée de lettres avec une interactivité sourie [ par Froddu24 ]
Bonjour a tous, c'est mon premier poste. Je suis étudiant dans le cadre d'un projet d'un site immersif, je cherche dans un premier dans a créer une nu
Comment gerer sa zone d'impression [ par gully07 ]
Bonjour... Je travail sur une petite application. Dans celle ci grace a un bouton d'impression, placé sur la scene on peut imprimer une zone de celle
problème d'envoi de données d'un formulaire flash vers MySQL via php [ par zakslayer ]
Bonsoir tout le monde, tout d'abord je tiens à préciser que je suis un débutant, cela dit, j'ai un grand problème avec un site que je développe actuel
problème avec le chargement de variables PHP dans mon script [ par jesusIT ]
Bonjour à tous, Tout d'abord un grand merci aux posts qui mon déjà aidé à aller jusque là! Je fais un compte à rebour (et oui encore).Je sais que de
Arrêter un son au lancement d'un autre [ par nina75014 ]
Bonjour, Je suis plutôt débutante en programmation ActionScript et ma question vous semblera peut-être idiote... Je réalise actuellement un accordeur
Un erreur qui me péte le crane depuis 2 jour. [ par Genoso ]
Bien le bonjour à tous, il est vrai que c'est mon premier message, mais je ne fait qu'observer depuis un bon bout de temps ce forum pour me donner des
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|