front_js/pointers/pointers/js/pointers.js
changeset 41 d2f735d7763f
child 48 983d7be910c1
equal deleted inserted replaced
40:0f31ebcc62b7 41:d2f735d7763f
       
     1 /*
       
     2 * This file is part of the TraKERS\Front JS package.
       
     3 *
       
     4 * (c) IRI <http://www.iri.centrepompidou.fr/>
       
     5 *
       
     6 * For the full copyright and license information, please view the LICENSE
       
     7 * file that was distributed with this source code.
       
     8 */
       
     9 
       
    10 /*
       
    11  * Projet : TraKERS
       
    12  * Module : Front JS
       
    13  * Fichier : pointers.js
       
    14  * 
       
    15  * Auteur : alexandre.bastien@iri.centrepompidou.fr
       
    16  * 
       
    17  * Fonctionnalités : Définit la "classe" de gestion des pointers et définit des fonctions d'intéraction.
       
    18  */
       
    19 
       
    20 /*
       
    21  * Classe définissant les pointers.
       
    22  */
       
    23 function pointers()
       
    24 {
       
    25     this.mainPointerLastX = 0;
       
    26     this.mainPointerLastY = 0;
       
    27     this.secondPointerLastX = 0;
       
    28     this.secondPointerLastY = 0;
       
    29 }
       
    30 
       
    31 /*
       
    32  * Affiche les pointeurs.
       
    33 */
       
    34 pointers.prototype.addPointers = function()
       
    35 {
       
    36     var mainPointer = '<div id="mainPointer" class="pointers"></div>';
       
    37     var secondPointer = '<div id="secondPointer" class="pointers"></div>';
       
    38     $('body').append(mainPointer + secondPointer);
       
    39     
       
    40     $('#secondPointer').css(
       
    41     {
       
    42         top: $(window).height() / 2 - $('#secondPointer').height() / 2,
       
    43         left: $(window).width() / 4 - $('#secondPointer').width() / 2
       
    44     });
       
    45     
       
    46     this.secondPointerLastX = $(window).width() / 4 - $('#secondPointer').width() / 2;
       
    47     this.secondPointerLastY = $(window).height() / 2 - $('#secondPointer').height() / 2;
       
    48     
       
    49     $('#mainPointer').css(
       
    50     {
       
    51         top: $(window).height() / 2 - $('#mainPointer').height() / 2,
       
    52         left: $(window).width() * 3 / 4 - $('#mainPointer').width() / 2
       
    53     });
       
    54 
       
    55     this.mainPointerLastX = $(window).width() * 3 / 4 - $('#mainPointer').width() / 2;
       
    56     this.mainPointerLastY = $(window).height() / 2 - $('#mainPointer').height() / 2;
       
    57 }
       
    58 
       
    59 /*
       
    60  * Affiche/Masque le pointeur principal.
       
    61  * Main est un booléen valant vrai s'il faut afficher le pointeur.
       
    62 */
       
    63 pointers.prototype.mainPointerDisplay = function(main)
       
    64 {
       
    65     var _this = this;
       
    66     
       
    67     //Si le booléen est à vrai, on affiche le pointeur.
       
    68     if(main)
       
    69     {
       
    70         $('#mainPointer').fadeTo(this.config['timeFilling'], '1');
       
    71     }
       
    72     else
       
    73     {
       
    74         $('#mainPointer').fadeTo(this.config['timeFilling'], '0');
       
    75     }
       
    76 }
       
    77 /*
       
    78  * Affiche/Masque le pointeur secondaire.
       
    79  * Main est un booléen valant vrai s'il faut afficher le pointeur.
       
    80 */
       
    81 pointers.prototype.secondPointerDisplay = function(second)
       
    82 {
       
    83     var _this = this;
       
    84     
       
    85     //Si le booléen est à vrai, on affiche le pointeur.
       
    86     if(second)
       
    87     {
       
    88         $('#secondPointer').fadeTo(this.config['timeFilling'], '1');
       
    89     }
       
    90     else
       
    91     {
       
    92         $('#secondPointer').fadeTo(this.config['timeFilling'], '0');
       
    93     }
       
    94 }
       
    95 
       
    96 /*
       
    97  * Raffraîchit la position des pointeurs.
       
    98 */
       
    99 pointers.prototype.refreshMainPointer = function(x, y)
       
   100 {
       
   101     x *= 7;
       
   102     y *= 7;
       
   103     x -= $(window).width() * 3 / 4;
       
   104     y -= $(window).height() * 2 / 4;
       
   105     
       
   106     //Si le pointeur quitte la fenêtre en X, on ne le change pas.
       
   107     if(x < 0 || x > $(window).width())
       
   108     {
       
   109         x = this.mainPointerLastX;
       
   110     }
       
   111     //Sinon, on le met à jour.
       
   112     else
       
   113     {
       
   114         this.mainPointerLastX = x;
       
   115     }
       
   116     
       
   117     //Si le pointeur quitte la fenêtre en Y, on ne le change pas.
       
   118     if(y < 0 || y > $(window).height())
       
   119     {
       
   120         y = this.mainPointerLastY;
       
   121     }
       
   122     //Sinon, on le met à jour.
       
   123     else
       
   124     {
       
   125         this.mainPointerLastY = y;
       
   126     }
       
   127     
       
   128     var pointerX = x - $('#mainPointer').width()/2, pointerY = y - $('#mainPointer').height()/2;
       
   129     var _this = this;
       
   130     
       
   131     $('#mainPointer').css(
       
   132     {
       
   133         top: pointerY,
       
   134         left: pointerX
       
   135     });
       
   136 }
       
   137 
       
   138 pointers.prototype.refreshSecondPointer = function(x, y)
       
   139 {
       
   140     if(!this.mouseInteractions)
       
   141     {
       
   142         x *= 7;
       
   143         y *= 7;
       
   144         x -= $(window).width() * 3 / 4;
       
   145         y -= $(window).height() * 2 / 4;
       
   146     }
       
   147     
       
   148     //Si le pointeur quitte la fenêtre en X, on ne le change pas.
       
   149     if(x < 0 || x > $(window).width())
       
   150     {
       
   151         x = this.secondPointerLastX;
       
   152     }
       
   153     //Sinon, on le met à jour.
       
   154     else
       
   155     {
       
   156         this.secondPointerLastX = x;
       
   157     }
       
   158     
       
   159     //Si le pointeur quitte la fenêtre en Y, on ne le change pas.
       
   160     if(y < 0 || y > $(window).height())
       
   161     {
       
   162         y = this.secondPointerLastY;
       
   163     }
       
   164     //Sinon, on le met à jour.
       
   165     else
       
   166     {
       
   167         this.secondPointerLastY = y;
       
   168     }
       
   169     
       
   170     var pointerX = x - $('#secondPointer').width()/2, pointerY = y - $('#secondPointer').height()/2;
       
   171     var _this = this;
       
   172     
       
   173     $('#secondPointer').css(
       
   174     {
       
   175         top: pointerY,
       
   176         left: pointerX
       
   177     });
       
   178 }