Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2011-10-19 14:13:31 mouseY dans un canvas -- help

zsilu
membre
Date d'inscription: 2010-04-01
Messages: 50

mouseY dans un canvas -- help



Salut

J'ai fait un petit programme sous Processing qui utilise le "mouseY" pour une variable. La fenêtre de rendu fait automatiquement la taille de l'écran et est placée en fond de page, derrière les éléments HTML, en "fixed". Le fond ne bouge donc pas quand on scrolle vers le bas.

Le problème, c'est que si la page html est très haute (bcp d'éléments), la valeur de mouseY grandit en fonction de ça. Elle ne s'arrête pas à la fenêtre de rendu mais elle est en rapport avec la hauteur de la page html. Ca me fait foirer toutes les valeurs.

Y'a t-il une solution?

Merci

Hors ligne

 

#2 2011-10-19 15:41:02 Re : mouseY dans un canvas -- help

22_
membre
Lieu: paris
Date d'inscription: 2010-04-08
Messages: 189

Re: mouseY dans un canvas -- help



Salut,
tu peux regarder avec la value event.screenY : https://developer.mozilla.org/en/DOM/event.screenY
Je crois qu'il va te falloir bidouiller directement les fonctions qui gèrent ça dans processing.js
Le mieux est de mettre un point d'arrêt (conditionnel sinon tu ne t'en sortiras pas) dans cette fonction avec firebug et de voir quel est le comportement exact avec ta page.

    function calculateOffset(curElement, event) {
      var element = curElement,
        offsetX = 0,
        offsetY = 0;
      p.pmouseX = p.mouseX;
      p.pmouseY = p.mouseY;
      if (element.offsetParent) {
        do {
          offsetX += element.offsetLeft;
          offsetY += element.offsetTop
        } while ( !! (element = element.offsetParent))
      }
      element = curElement;
      do {
        offsetX -= element.scrollLeft || 0;
        offsetY -= element.scrollTop || 0
      } while ( !! (element = element.parentNode));
      offsetX += stylePaddingLeft;
      offsetY += stylePaddingTop;
      offsetX += styleBorderLeft;
      offsetY += styleBorderTop;
      offsetX += window.pageXOffset;
      offsetY += window.pageYOffset;
      return {
        "X": offsetX,
        "Y": offsetY
      }
    }
    function updateMousePosition(curElement, event) {
      var offset = calculateOffset(curElement, event);
      p.mouseX = event.pageX - offset.X;
      p.mouseY = event.pageY - offset.Y
    }

*curElement est ton canvas et event est l'évènement mousemove...

Dernière modification par 22_ (2011-10-19 15:49:44)

Hors ligne

 

#3 2011-10-19 18:38:44 Re : mouseY dans un canvas -- help

zsilu
membre
Date d'inscription: 2010-04-01
Messages: 50

Re: mouseY dans un canvas -- help



OK...
Merci beaucoup, mais je crois que je vais faire autrement, car la c'est un peu trop avancé pour mes maigres connaissances en javascript. Je voulais juste savoir s'il y avait une fonction de base dans processing qui marcherait pour ce genre de choses. Je vais juste mettre une valeur max à mouseY et ça fera la blague.
Merci quand même pour les recherches.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024