begin process at 2012 05 27 08:21:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

probleme de calcul en as 3.0


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de calcul en as 3.0

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

mtlbss

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
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....^^

1 2

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales