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

JavaScript Discussion :

Ajouter des évènements mouseup et mousedown


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Ajouter des évènements mouseup et mousedown
    salut a tous

    j'ai besoin de votre aide , j'ai entrain de coder en javascript et c'est la première fois que je travail avec canvas mon problème c'est ajouter des événements lorsque je fait un dessin sur mes plusieurs " canvas " j'ai utiliser dans mon code la freamwork CreateJs ma question est comment je peut ajouter faire clique pour commencer le dessin et le clique pour stopper le dessin , j'ai deja ajouter 2 function mais ca marche pas puisque je fait le dessin sur plusieurs canvas voici mon code :
    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
    (function (){
     
        var TousLesCanvas = document.getElementsByTagName('canvas');
        var tab = new Array();
        var tab_shape = new Array();
        var stage, shape;
        var color = "#000";
        var size = 10;
     
        for (var i=0; i<TousLesCanvas.length; i++) {
     
          stage = new createjs.Stage(TousLesCanvas[i]);
          tab[ TousLesCanvas[i].id ] = stage;
     
          shape = new createjs.Shape();
          tab_shape[TousLesCanvas[i].id] = shape ;
          stage.addChild(shape);
     
          console.log("stage id : "+stage.id);
     
          TousLesCanvas[i].onmouseover = function (event) {
     
            var oldX, oldY;       
     
            canvas_id = event.target.id;
            console.log("hello man : "+canvas_id);
     
            current_stage = tab[ canvas_id ];
            current_shape = tab_shape[canvas_id];
     
     
     
           function handleMouseDown (evt){
     
          current_stage.addEventListener("stagemousemove", handleMouseMove);
     
          };
     
     
            function handleMouseMove (evt) {
              if (oldX) {
                current_shape.graphics.beginStroke(color)
                        .setStrokeStyle(size, "round")
                        .moveTo(oldX, oldY)
                        .lineTo(evt.stageX, evt.stageY);
                current_stage.update();
              }
              oldX = evt.stageX;
               console.log("X ========" +oldX);
              oldY = evt.stageY;
           console.log("y ========" +oldY);
            };
     
     
           function handleMouseUp(evt){
     
          current_stage.removeEventListener("stagemousemove", handleMouseMove);
     
          };
          };
     
        }
     // end for   
     
     
     
     
     })();//end function

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    Bonjour et bienvenue sur DVP.

    Sur le mousedown d'un <canvas> tu affectes une fonction sur le mousemove que tu retires sur le mouseup en ayant pris soin de garder en référence le <canvas> actif.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    voila ce que j'ai fait je peut cliquer pour dessiner mais j'ai un problème que il me donne de cliquer et dessiner sur chaque <canvas> d'une façon individuelle mon résultat c'est de cliquer et dessiner sur tous les canvas comme une seule canvas

    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
    (function (){
     
        var TousLesCanvas = document.getElementsByTagName('canvas');
        var tab = new Array();
        var tab_shape = new Array();
        var stage, shape;
        var size = document.getElementById("drawing-line-width").value;
        var color = "#000";
     
     
     
        for (var i=0; i<TousLesCanvas.length; i++) {
     
          stage = new createjs.Stage(TousLesCanvas[i]);
          tab[ TousLesCanvas[i].id ] = stage;
     
          shape = new createjs.Shape();
          tab_shape[TousLesCanvas[i].id] = shape ;
          stage.addChild(shape); 
     
          console.log("stage id : "+stage.id);
     
          TousLesCanvas[i].onmouseover = function (event) { 
     
            var oldX, oldY;        
     
            canvas_id = event.target.id;
            console.log("hello man : "+canvas_id);
     
            current_stage = tab[ canvas_id ];
            current_shape = tab_shape[canvas_id];
     
            current_stage.addEventListener("stagemousedown", handleMouseDown);
            current_stage.addEventListener("stagemouseup", handleMouseUp);
            /////////////////////////////////////////////////////////////////
     
       function handleMouseDown(event) {
     
        current_stage.addEventListener("stagemousemove", handleMouseMove);
     
      }
     
      /////////////////////////////////////////////////////////////////////    
     
        function handleMouseMove(event) {
     
     
         if (oldX) {
                current_shape.graphics.beginStroke(color)
                        .setStrokeStyle(size, "round")
                        .moveTo(oldX, oldY)
                        .lineTo(event.stageX, event.stageY);
                current_stage.update();
              }
              oldX = event.stageX;
               console.log("X ========" +oldX);
              oldY = event.stageY; 
           console.log("y ========" +oldY);
      }
      /////////////////////////////////////////////////////////////////    
     function handleMouseUp(event) {
     
        current_stage.removeEventListener("stagemousemove", handleMouseMove);
     
      }
     
          };
     
        }
     // end for    
     
     
     
     
     })();//end function

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    dans un premier temps tu devrais regarder de près cet exemple : http://createjs.com/demos/easeljs/curveto, puis « anonymiser » les fonctions handleMouseDown/Move et UP.

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci pour vos réponse ,oui j'ai déjà basé sur cet exemple pour faire ça ,le problème c'est d'appliquer cet exemple sur plusieurs canvas qui se trouve dans la meme page j'ai fait une matrice des canvas sur la page pour faire dessiner mais sans aucune résultat ,comment puis-je me faire dessiner de placer sur les canvas et dessiner sans une autre clique seulement un clique sur n'importe quel canvas pour dessiner et déplacer sur les canvas qui sont placer l'une a cote de l'autre

Discussions similaires

  1. Ajouter des évènements dans mon calendrier
    Par doncandid dans le forum Langage
    Réponses: 2
    Dernier message: 25/06/2011, 21h32
  2. Ajouter des évènement à un TR (DOM)
    Par beegees dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/03/2010, 12h40
  3. Ajouter des évènements dynamiquement dans un pop-up
    Par _jey_ dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 06/07/2009, 17h02
  4. Réponses: 1
    Dernier message: 25/02/2009, 11h34
  5. [JpGraph] Ajouter des évènements au graphique
    Par Foudébois dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 07/05/2007, 18h06

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