eckolask
Messages postés13Date d'inscriptiondimanche 6 mars 2005StatutMembreDernière intervention18 juin 2006
-
18 juin 2006 à 01:40
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 2009
-
18 juin 2006 à 12:30
Voici mon code :
function FCalculAire(){
var monCalculaire:Calculaire = new Calculaire(long,larg,1);
resr=monCalculaire.AireRectangle();
}
GoAire.onRelease= FCalculAire;
les variables long et larg sont les variables de 2 champs texte de saisie.
La classe :
class Calculaire {
var longueur:Number;
var largeur:Number;
var hauteur:Number;
function Calculaire(longueurObj:Number, largeurObj:Number, hauteurObj:Number) {
longueur = longueurObj;
largeur = largeurObj;
hauteur = hauteurObj;
}
function AireRectangle():Number {
return longueur*largeur; // =longueur*largeur
}....
Donc je rentre par exemple 5 en longueur et 6 en largeur puis je clique sur le bouton "GoAire" et le résultat s'affiche dans un champ de texte dynamique.
Il affiche NaN;
J'ai essayer Number() mais ça ne marche pas, ca me bloque tout le déroulement de mon appli je suis dégouté j'espère que vous pourrez m'aider.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 18 juin 2006 à 12:16
Bon alors j'ai trouvé.
En fait nous nous somme mal compris ( mais ca n'est aps grave )
Le code que je t'es fournis fonctionne via les noms d'occurrences. Et sur ton amination tu ne déclare pas de noms d'occurences mais des variables d'objet.
Du coup ca ne peut pas fonctionner.
Les noms tels : "larg", "long", "res" entre les comme ton "Goaire".
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 18 juin 2006 à 09:50
Alors la je crains ne pas avoir compris entièrement le but de ton code. Ce que tu veux c'est bien calculer l'air avec deux vaiable que tu entre ?
Pourquoi n'utilise tu pas un code de bouton tous simple plutôt que faire un code sans queue ni tête.
Quelque chose dans le genre :
Bien sur ce passage est transformable facilement en fonction comme tu avais l'air de vouloir le faire.
En tous cas je te souhait bonne résolution de ton problème
eckolask
Messages postés13Date d'inscriptiondimanche 6 mars 2005StatutMembreDernière intervention18 juin 2006 18 juin 2006 à 10:33
Merci de ta réponse, je dois programmé en objet dans le cadre scolaire, et réalisé mes propres classes.
La classe n'a pas trop d'utilité pour le calcul du rectangle, mais après il y a d'autres calculs à réaliser plus complexe, et je passe par des fonctions publiques que j'ai créer dans ma classe.
Je vais essayer ce que tu as mis...
Vous n’avez pas trouvé la réponse que vous recherchez ?
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 18 juin 2006 à 11:06
Ah effectivement c'est assez bizzare. Chez moi cela fonctionne très bien. Hmmm ...
Bon alors j'ai regarder d'un peu plus près
( en gros cette fois-ci j'ai testé )
Donc si tu veux créer une fonction tu peux faire comme ca :
function calculaire(long, larg){
_arg1 = long
_arg2 = larg
resultat = Number(_arg1) * Number(_arg2)
if( String(resultat) != "NaN" ){
var sol = resultat
}else{
trace( "Not a Number" )
var sol = ""
}
return sol
}
Maintenant pour le bouton tu peux mettre quelque chose comme ca (code sur l'image) :
Bon pour un code sur le bouton tu vois comment on fait.
Donc j'ai essayé et cela fonctionne très bien ici. J'ai fais du vite fait avec les composant Flash donc du coup sa suppose l'AS2 et sinon ca fonctionne pour Flash 6 à Flash 8 ( Normal --> AS2 ).
Sinon je pense qu'il n'y a pas de problème. Au pire tu redemande et sinon on verra je regarderais ta source en entier pour voir ce qui peut coincer mais normalement il n'y a pas de soucis.
Bonne continuation
eckolask
Messages postés13Date d'inscriptiondimanche 6 mars 2005StatutMembreDernière intervention18 juin 2006 18 juin 2006 à 11:24
Merci beaucoup pour ton aide.
Ce que j'ai fais dans le fichier externe pour la classe :
class Calculaire {
var _arg1:Number;
var _arg2:Number;
var _arg3:Number;
function Calculaire(long, larg, haut){
_arg1 = long
_arg2 = larg
_arg3 = haut
}
function AireRectangle():Number {
var resultat : Number;
resultat = Number(_arg1) * Number(_arg2)
if( String(resultat) != "NaN" ){
var sol = resultat
}else{
trace( "Not a Number" )
var sol = ""
}
return sol
}
}
Et pour l'appel dans la séquence:
var monCalculaire:Calculaire = new Calculaire(_root.long.text,_root.larg.text,1);
_root.res.text=monCalculaire.AireRectangle();
Je reçois Not A Number.
J'ai essayer aussi de mettre les variable _arg1.. en string. NaN encore.
eckolask
Messages postés13Date d'inscriptiondimanche 6 mars 2005StatutMembreDernière intervention18 juin 2006 18 juin 2006 à 11:30
En détail sur le clique du bouton je lance la fonction.
function FCalculAire(){
var monCalculaire:Calculaire = new Calculaire(_root.long.text, _root.larg.text,1);
_root.res.text=monCalculaire.AireRectangle();
}
Goaire.onRelease= FCalculAire;
eckolask
Messages postés13Date d'inscriptiondimanche 6 mars 2005StatutMembreDernière intervention18 juin 2006 18 juin 2006 à 11:40
J'ai aussi essayer cela : ( je ne passe plus par la classe)
_root.Goaire.onRelease = function(){
_root.res.text = calculaire(_root.long.text, _root.larg.text)
}
function calculaire(long, larg){
_arg1 = long
_arg2 = larg
resultat = Number(_arg1) * Number(_arg2)
if( String(resultat) != "NaN" ){
var sol = resultat
}else{
trace( "Not a Number" )
var sol = ""
}
return sol
}
Et c'est toujours Not A Number. J'ai un problème dans mes champs de saisie?? Je comprends pas ce qu'il se passe.
J'utilise Flash 8.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 18 juin 2006 à 11:47
Bon alors la il va falloir que tu m'explique en détail ce que tu veux !
Combien tu a de variable entrées, a quoi elle doivent servir dans le calcul se que tu dois obtenir.
Je veux tous savoir sur ton truc ^^
Mais pas de bout de code ca je vais en rédiger un en fonction de ce que tu va demander pour voir un peu et trouver une solution.
Sinon je crois que nous allons nous perdre dans des explications inutiles
eckolask
Messages postés13Date d'inscriptiondimanche 6 mars 2005StatutMembreDernière intervention18 juin 2006 18 juin 2006 à 11:55
Bon je t'explique en détail. Dans ce cas le prog donne l'aire du rectangle, c'est le calcul le plus simple de l'application et je n'allais pas poursuivre le reste alors que j'avais ce problème ici.
J'ai 2 champs de saisie :
- le premier ou l'on entre la longueur du rectangle. var: long
- le second ou l'on entre la largeur. var : larg
Dessous j'ai un texte dynamique var : res . Il affiche le résultat de l'aire du rectangle, donc longueur x largeur.
Enfin j'ai un bouton qui permet de lancer le calcul, avec pour nom Goaire.
Et j'ai créer une classe Calculaire qui permet de calculer les aires de plusieurs formes géométriques.
Mais sans parler de la classe, j'ai essayer en dernier regarde mon post précédent, de le faire de cette façon,
Ceci est inscris dans Actions - Image du Calque1 : Image 1
_root.Goaire.onRelease = function(){
_root.res.text = calculaire(_root.long.text, _root.larg.text)
}
function calculaire(long, larg){
var resultat:Number=0;
_arg1 = long
_arg2 = larg
resultat = Number(_arg1) * Number(_arg2)
trace(resultat);
if( String(resultat) != "NaN" ){
var sol = resultat
}else{
trace( "Not a Number" )
var sol = ""
}
return sol
}
Je n'ai pas de résultat dans le champ dynamique car Not A Number.
fguitton
Messages postés396Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention13 novembre 20091 18 juin 2006 à 12:05
Alors déjà essais de déclarer ta fonction en premier :
function calculaire(long, larg){
_arg1 = long
_arg2 = larg
resultat = Number(_arg1) * Number(_arg2)
if( String(resultat) != "NaN" ){
var sol = resultat
}else{
trace( "Not a Number" )
var sol = ""
}
return sol
}
Maintenant si tu veux que ton code fonctionne il faut que mette des valeurs de les champ de longueur et de largeur.
si tu à Not a Number cela signifie que Flash ne trouve pas l'une ou les deux valeurs pour effectuer son calcul.