Bonjour,

Comme l'indique le titre de mon topic j'utilise l'API SIMILE qui permet de construire un timeline.

Tout marche bien, cependant je veux pouvoir lorsque je clique sur un évènement à n'importe quel endroit de celui-ci qu'il me donne la date exacte là où j'ai cliqué.
Afin de faire cela j'ai modifié un peu l'API pour rajouter une fonction de mon cru dans leur fonction qui écoute si il y a eu un clique sur un évènement (que ceux qui sont de type Duration). Le problème étant que lorsque j'affiche la date qu'il me renvoie selon le pixel cliqué il y a des erreurs dans cette date. Cela va de quelques secondes au tout début et plus je scroll pour aller voir d'autre évènement plus loin plus y a un écart important (de l'ordre de 2 à 3 heures). Je me casse la tête depuis 3 jours déjà à essayer de comprendre pourquoi cela ne marche pas.

Voici ma fonction qui ne fait que lancer une alert sur la date convertie à partir des pixels:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function getDateClicked(x)
{
	var clickedDate = tl.getBand(0).pixelOffsetToDate(x);
	alert(clickedDate);
 
	return date;
}
Voici leur fonction qui écoute l'endroit du clique:

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
Timeline.DurationEventPainter.prototype._onClickDurationEvent=function(domEvt,evt,target){
domEvt.cancelBubble=true;
if("pageX"in domEvt){
var x=domEvt.pageX;
var y=domEvt.pageY;
// TEST
//alert(domEvt.pageX + " => " + this._band.pixelOffsetToDate(domEvt.pageX) + " => FF");
//TEST
}else{
var c=Timeline.DOM.getPageCoordinates(target);
var x=domEvt.offsetX+c.left;
var y=domEvt.offsetY+c.top;
// TEST
//alert(domEvt.offsetX+c.left + " => " + this._band.pixelOffsetToDate(domEvt.offsetX+c.left) + " => IE");
//TEST
}
this._showBubble(x,y,evt);
//AJOUT DE MOI
getDateClicked(x);
// AJOUT DE MOI
};
J'aurais voulu savoir si des gens avait essayé de faire ceci déjà ou aurait une idée du pourquoi il y a ce décalage alors que l'API arrive très à replacer les divs exactement où il faut lorsqu'on lui passe des dates pour transformer en pixel etc ...

Cordialement,

Gripsou


PS: desolé si ce n'est pas le bon forum je ne savais pas trop où poster (C'est une API fait en Javascript et AJAX)