seb_oulba
Messages postés8Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention 8 septembre 2006
-
31 août 2006 à 09:38
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
6 sept. 2006 à 13:19
hello,
je développe un petit outil pour ka-map (exemple ici : http://maps.dmsolutions.ca/demo/us_streets/iframe.html)afin
de faire des requetes lorsque ma souris s'arrete au dessus d'un point
un certain temps. Le problème se situe dans la fonction mouseStop : le
"alert(this.coordX)" me renvoie "undefined", tout comme "alert(x)".
Pourtant en testant dans la fonction mouseMove avec un
"alert(this.coordX)" (en bougeant un minimum la souris au dessus du
div...), j'ai quelque chose de valable.
Quelqu'un saurait ou se trouve le problème ? merci
// A tool allowing to get info of point interests under
// mouse cursor on mouse stop
var queryInfos = function(oKaMap, szID, delay) {
this.kaMap = oKaMap;
this.name = 'queryInfos';
this.chrono = null;
this.coordX = "";
this.coordY = "";
this.delay = delay;
this.mouseStopped = false;
this.bInfoTool = true;
this.mouseStopped = false;
// héritage des mouse functions de kaTool
for (var p in kaTool.prototype){
if (!queryInfos.prototype[p]){
queryInfos.prototype[p]= kaTool.prototype[p];
}
}
}
queryInfos.prototype.onmousemove = function(e){
if (navigator.appName!="Microsoft Internet Explorer"){
this.coordX = e.pageX;
this.coordY = e.pageY;
}
else if(document.documentElement.clientWidth > 0){
this.coordX = event.x+document.documentElement.scrollLeft;
this.coordY = event.y+document.documentElement.scrollTop;
}
else{
this.coordX = event.offsetX;
this.coordY = event.offsetY;
}
if(this.chrono != null){
clearTimeout(this.chrono); //reset du chrono
}
var adjCoords = this.adjustPixPosition(this.coordX, this.coordY);
var p = this.kaMap.pixToGeo(adjCoords[0], adjCoords[1]);
this.coordX = p[0];
this.coordY = p[1];
//ici "alert(this.coordX)" me renvoie une coordonnée valable
if(this.mouseStopped == false){
this.chrono = setTimeout("queryInfos.prototype.mouseStop(this.coordX, this.coordY)", this.delay);
}
}
queryInfos.prototype.mouseStop = function(x,y){
alert(x); // renvoie undefined
alert(this.coordX); // renvoie undefined
clearTimeout(this.chrono);
this.mouseStopped = true;
//this.callFct(x,y);
this.mouseStopped = false;
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 31 août 2006 à 10:23
hello,
this.chrono=setTimeout( function() { mouseStop(this.coordX,this.coordY); }, this.delay );
à la place de
this.chrono = setTimeout("queryInfos.prototype.mouseStop(this.coordX, this.coordY)"
peut-être ?
l'adresse donné ne mène à rien ( dur à voir )
si on copie le script donné vers un éditeur : 1 seule ligne ( dur à lire )
mais "alert(x)" donne toujours undefined dans mouseStop :-(
Quant au lien et à la copie du script, je sais pas ce qui se passe chez toi, mais j'ai aucun problème pour ouvrir de mon côté. A noter que le lien n'est pas le projet sur lequel je bosse, c'est juste pour montrer ce qu'est ka-map.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 31 août 2006 à 11:15
pour poster un script ici sans souci,
le mieux : passer par un éditeur de texte.
quand à notre problème, pour passer des paramètres dans une fonction
appelée par setTimeout, c'est la formule appropriée
[ on peut faire aussi setTimeout("fonction("+var1+","+var2+")",délai)
mais je me perd toujours dans les ", les +... ]
si on fait setTimeout("fonction(var1,var2);",délai)
ça baigne pas ! var1 et var2 sont du string.
pour l'appel des fonction j'use "toujours" de :
function
fonction de base(...
function fonction de base.prototype.sous fonction 1(....
et appel par this.sous fonction 1()
pas de raison que çà colle pas.
<hr />
cordialement Bul
Site M'écrire