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 :

syntaxe de classe javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par d�faut syntaxe de classe javascript
    Bonjour,

    Je cherche � 'dessiner' un cadre dans une image.

    Le code que j'utilise actuellement pose deux probl�mes :

    - si je d�place la souris avec le bouton en position basse, l'icone "interdit" apparait : pourquoi ???????

    - aucun cadre noir ne se forme lorsque je soul�ve le bouton de la souris.

    Voici le 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
    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
    119
    120
    121
    122
    123
    124
    125
    <html> 
    		<head> 
    		<!--*********************************************-->
    <!--    Permettre le dessin d'un rectangle       -->
    <!--*********************************************-->
    <script language="JavaScript" type="text/JavaScript"> 
    function Draw(c){
     
    	var startPos=new Array();
    	var endPos=new Array();
    	var container=null;
    	construct(c);
     
    	function construct(c)
    	{
    		container=(typeof c=="undefined")?getDefaultContainer():c;
     
    	}
     
    	function getDefaultContainer()
    	{
    		var temp=document.createElement("div");
    		document.body.appendChild(temp);
    		return temp;
    	}
     
    	function SourisDown(evt)
    	{
     
    		var e = null;
    		var newX=0;
    		var newY=0;
     
    		// IE
    		if(document.all)
    		{
    			e = window.event;
    			newX = e.x;
    			newY = e.y;
    		}
    		// Mozilla
    		else
    		{
    			e = evt;
    			newX = e.clientX;
    			newY = e.clientY;
    		}
    		startPos[0]=newX;
    		startPos[1]= newY;
     
    	}
     
    	function SourisUp(evt)
    	{
    		fix_start=false;
    		var e = null;
    		var newX=0;
    		var newY=0;
     
    		// IE
    		if(document.all)
    		{
    			e = window.event;
    			newX = e.x;
    			newY = e.y;
    		}
    		// Mozilla
    		else
    		{
    			e = evt;
    			newX = e.clientX;
    			newY = e.clientY;
    		}
    		endPos[0]=newX;
    		endPos[1]= newY;
    		alert(startPos+" - "+endPos);
    	}
     
     
    	Draw.prototype.clear = function (){
    		container.innerHTML='';
    	}
     
     
    Draw.prototype.line=function (x1,y1,x2,y2,t,c) {
          if (typeof t=="undefined") {t=1;}
          if (x1==x2) {x2+=t;} // add thickness
          if (y1==y2) {y2+=t;} // add thickness
          var div=document.createElement("div");
          div.style.position="absolute";
          div.style.width= Math.abs(x1-x2)+"px";
          div.style.height=Math.abs(y1-y2)+"px";
          div.style.left=x1+"px";
          div.style.top =y1+"px";
          div.style.backgroundColor=(typeof c=="undefined"?"#000000":c);
          div.style.cursor="pointer";
          container.appendChild(div);
       }
     
     
      Draw.prototype.rectangle=function (x,y,w,h,c) {
    	line(x,y,x+w,y+h,1,c);
       }
       		container.onmouseup=SourisUp;
    		container.onmousedown=SourisDown;
     
    }
     
     
    </script> 
    <!--*********************************************-->
    <!--        Fin du dessin d'un rectangle         -->
    <!--*********************************************-->
     
    </head> 
     
    <body>
    <div id="e">
    <img src='rectangle/test.jpg' name='obj' id='obj' width='700' height='560' border='1'/>	
    </div>
    <script language="JavaScript" type="text/JavaScript"> 
    var dessin = new Draw(document.getElementById("e"));
    </script>
    </body> 
    </html>
    Toutes aides accept�es

    Merci

  2. #2
    Membre �clair�
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par d�faut
    Bon,
    j'ai d�j� une premi�re r�ponse qui n'explique rien mais bon ...

    L'icone interdit apparait sur l'image lorsque la souris se d�place avec le bouton gauche enfonc�. Pour palier � ce probl�me, on fait apparaitre l'image dans un div avec background-image:url(fichier de l'image) et cela n'apparait plus.

    Pourquoi? toujours pas de r�ponses, mais je ne desesp�re pas

    Quant au second probl�me relatif � la gestion des �v�nements dans ce type de classe, je ne sais toujours pas !

    Tr�s certainement un souci de syntaxe mais o�?????

    Les remarques sont toujours tr�s appr�ci�es !
    merci

  3. #3
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    pourquoi d�clarer tes fonctions ... � l'int�rieur d'une fonction ?

    Tu as essayer de mani�re un peu moins originale ?

    Et en d�clarant en globale les variables devant �tre utilis�es dans plusieurs fonctions ?

    A+

  4. #4
    Membre �clair�
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par d�faut
    Bonjour,

    pourquoi d�clarer tes fonctions ... � l'int�rieur d'une fonction ?
    Tu fais r�f�rence aux fonctions prototype ? C'est vrai j'aurai du les sortir.

    Et en d�clarant en globale les variables devant �tre utilis�es dans plusieurs fonctions ?
    startPos et endPos sont utilis� dans divers fonctions (SourisUp, SourisMove, SourisDown), donc il me les faut en globale, non?

  5. #5
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par bastien Voir le message
    Tu fais r�f�rence aux fonctions prototype ?
    Non, car il s'agit de fonctions anonymes, ce qui ne pose pas de probl�me.

    Mais l�, par contre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function Draw(c){
     
    	var startPos=new Array();
    	var endPos=new Array();
    	var container=null;
    	construct(c);
     
    	function construct(c)
    	{
    ...


    A+

  6. #6
    Membre �clair�
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Par d�faut
    function Draw(c){

    var startPos=new Array();
    var endPos=new Array();
    var container=null;
    construct(c);

    function construct(c)
    {
    ...
    doit �tre chang� par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Draw(c){
     
    	this.startPos=new Array();
    	this.endPos=new Array();
    	this.container=null;
     
    	this.construct=function(c)
    	{
    ...
    Mais comment forcer l'�x�cution de la m�thode construct() 'automatiquement' � l'appel de new Draw ?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 15
    Dernier message: 01/04/2011, 20h58
  2. classe javascript et ie sur onclick
    Par The_Pretender dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 11/10/2007, 23h04
  3. [AJAX] Soap Ajax classe javascript
    Par sekaijin dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 13/06/2006, 08h50

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