IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Une addition qui se passe mal


Sujet :

ActionScript 3

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Points : 36
    Points
    36
    Par défaut Une addition qui se passe mal
    Bonjour j'ai un problème avec l'AS3...
    En effet, je souhaite créer deux champs dynamiques de saisi et faire l'addition des deux dans un nouveau champ. Voici mon code, qui ne marche pas bien entendu, j'ai souhaité tout faire en script sauf le bouton "+" qui ne fait aucun effet, et le bouton "egal" qui lui donne le résultat après le clic de la souris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    // Importation de la classe permettant la gestion d'évènements
    import flash.events.*;
     
    //Création du premier champ de saisi
    var premier:Shape = new Shape();
    //Debut du remplissage
    premier.graphics.beginFill(0x555555);
    //Definition du champ
    premier.graphics.lineStyle(5,0xAAAAAA);
    premier.graphics.moveTo(50,50);
    premier.graphics.lineTo(150,50);
    premier.graphics.lineTo(150,100);
    premier.graphics.lineTo(50,100);
    premier.graphics.lineTo(50,50);
    //Fin du remplissage
    premier.graphics.endFill();
    addChild(premier);
     
    //Formatage du premier champ par défaut
    var formatSimple1:TextFormat = new TextFormat();
    formatSimple1.font = "Comic sans MS";
    formatSimple1.size = 25;
    formatSimple1.color = 0xFFFFFF;
    //Définition du texte
    var nombre1:TextField = new TextField();
        nombre1.defaultTextFormat = formatSimple1;
        nombre1.type = TextFieldType.INPUT;
        nombre1.restrict = "0-9";
        nombre1.width = 100;
        nombre1.x=55;
        nombre1.y=55;
    addChild(nombre1);
     
    //Importation de l'élément "plus" de la bibliothèque
    var plus:addition = new addition();
    //var Dynamique:ClipBase = new ClipBase();
    addChild(plus);
    plus.x=200;
    plus.y=75;
     
     
    //Création du deuxième champ de saisi
    var deuxieme:Shape = new Shape();
    //Debut du remplissage
    deuxieme.graphics.beginFill(0x555555);
    //Definition du champ
    deuxieme.graphics.lineStyle(5,0xAAAAAA);
    deuxieme.graphics.moveTo(250,50);
    deuxieme.graphics.lineTo(350,50);
    deuxieme.graphics.lineTo(350,100);
    deuxieme.graphics.lineTo(250,100);
    deuxieme.graphics.lineTo(250,50);
    //Fin du remplissage
    deuxieme.graphics.endFill();
    addChild(deuxieme);
     
    //Formatage du deuxième champ par défaut
    var formatSimple2:TextFormat = new TextFormat();
    formatSimple2.font = "Comic sans MS";
    formatSimple2.size = 25;
    formatSimple2.color = 0xFFFFFF;
    //Définition du texte
    var nombre2:TextField = new TextField();
        nombre2.defaultTextFormat = formatSimple2;
        nombre2.type = TextFieldType.INPUT;
        nombre2.restrict = "0-9";
        nombre2.width = 100;
        nombre2.x=255;
        nombre2.y=55;
    addChild(nombre2);
     
    //Importation de l'élément "egal" de la bibliothèque
    var egal:donneresultat = new donneresultat();
    //var Dynamique:ClipBase = new ClipBase();
    addChild(egal);
    egal.x=400;
    egal.y=75;
     
    //Création du troisième champ de saisi
    var resultat:Shape = new Shape();
    //Debut du remplissage
    resultat.graphics.beginFill(0x555555);
    //Definition
    resultat.graphics.lineStyle(5,0xAAAAAA);
    resultat.graphics.moveTo(450,50);
    resultat.graphics.lineTo(550,50);
    resultat.graphics.lineTo(550,100);
    resultat.graphics.lineTo(450,100);
    resultat.graphics.lineTo(450,50);
    //Fin du remplissage
    resultat.graphics.endFill();
    addChild(resultat);
     
     
    //Formatage du résultat
    var formatSimple3:TextFormat = new TextFormat();
    formatSimple3.font = "Comic sans MS";
    formatSimple3.size = 25;
    formatSimple3.color = 0xFFFFFF;
    //Définition du texte
    var nombreresult:TextField = new TextField();
        nombreresult.defaultTextFormat = formatSimple3;
        nombreresult.width = 100;
        nombreresult.type = TextFieldType.DYNAMIC;
        nombreresult.x=255;
        nombreresult.y=55;
     
     
    //Donne l'addition des deux nombres au moment du clic sur le bouton "egal"
    function auClick(e:Event) {
        egal.addEventListener(Event.ENTER_FRAME, donneResultat);
    }
    function donneResultat(e:Event):void { 
     
        nombreresult.text = nombre1.text+nombre2.text;
        addChild(nombreresult);
     
        }
    Je vous remercie d'avance !

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Bonjour,

    premièrement il faut ajouter le champ texte de résultat une seule fois (comme les autres champs) et non dans la fonction donneResultat.

    ensuite lorsqu'on utilise l'opérateur + avec des chaines de caractères le résultat est la concaténation des deux et non l'addition, il faut donc convertir les valeurs en Nombre pour faire l'addition.

  3. #3
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut
    Ce qui nous donne :

    nombreresult.text = nombre1.text+nombre2.text;

    à remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombreresult.text = int(nombre1.text)+int(nombre2.text);
    Tu peux aussi remplacer int par Number si tu souhaite des nombres a virgule ou par uint si tu veux pas de nombre negatif.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Points : 36
    Points
    36
    Par défaut
    Merci mais j'ai un nouveau problème, qui n'est pas nouveau car ça me le fait depuis le début, c'est qu'il ne m'affiche absolument rien, pas de résultat... Et je ne vois pas où est le problème...

  5. #5
    Membre confirmé Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Points : 494
    Points
    494
    Par défaut
    nombreresult est ajouter sur le stage ?

    rajoute cette ligne et dit nous ce qu'elle te donne :
    trace( int(nombre1.text)+' '+int(nombre2.text) );

    l'event qui calcule le nombre est bien ajouté sur le stage ??

    Etc ... Rajoute des traces en as3 quand un truc marche pas

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 90
    Points : 36
    Points
    36
    Par défaut
    Désolé de cette longue absence !
    Quand j'appuie sur le "=" rien ne s'affiche, ça pourrait être une erreur de fonction... ???

  7. #7
    Membre actif Avatar de romain_ci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 287
    Points
    287
    Par défaut
    ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function auClick(e:Event) {
        egal.addEventListener(Event.ENTER_FRAME, donneResultat);
    }
    n'est appelée nulle part...

    rajoute ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    egal.addEventListener(MouseEvent.CLICK, auClick);
    Evite les EnterFrame pas top pour l'obtimisation et ici tu n'en a pas besoin !

Discussions similaires

  1. Entretien chez Page Personnel qui se passe mal.
    Par stpaul04 dans le forum Entretien
    Réponses: 10
    Dernier message: 16/10/2017, 10h04
  2. une requète qui ne passe pas
    Par JeanNoel53 dans le forum SQL
    Réponses: 0
    Dernier message: 14/12/2010, 10h47
  3. Déploiement qui se passe mal
    Par -=Spoon=- dans le forum JOnAS
    Réponses: 4
    Dernier message: 14/10/2009, 10h56
  4. Réponses: 1
    Dernier message: 15/01/2008, 12h39
  5. Comment avoir une appli qui se passe d'install d'un client oracle?
    Par korntex5 dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/06/2007, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo