#1 Wed 06 January 2016 12:26
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
[OpenLayers 2] Animation d'images
Bonjour
j'affiche sur une carte une succession d'images météo à intervalles réguliers pour produire une animation.
le problème que je rencontre (particulièrement sur Chrome et IE et beaucoup moins sur FireFox) est un effet de transition (ou flash)
lors du passage d'une image à la suivante :
l'image ancienne disparaît mais n'est pas tout de suite remplacée par la nouvelle
voir les 2 gifs animés ci-joint pour illustrer le problème :
le fichier animation_avec_transition_PB.gif ci-joint fait bien ressortir la transition
le résultat attendu est illustré par le fichier animation_sans_transition.gif
j'utilise la méthode sertUrl sur un layer de type OpenLayers.Layer.Image (OL Release 2.14 dev)
ma question est comment faire disparaître cet effet de transition
merci d'avance
Jean-Marie
Dernière modification par Jean-Marie64 (Wed 06 January 2016 12:27)
Hors ligne
#2 Thu 14 January 2016 10:58
- Jean-Marie64
- Participant actif
- Lieu: Pau
- Date d'inscription: 6 Nov 2007
- Messages: 131
Re: [OpenLayers 2] Animation d'images
une méthode pour s'en sortir est d'utiliser le mécanisme de buffer d'image de la manière suivante
Code:
for (var i=0;i<numlayertodisplay0;i++) { urli=.....; // nouvelle url this.layer.url=urli; this.layer.tile.url=urli; this.layer.tile.events.register('loadend',layer.tile.tile,removePreviousImage); this.layer.tile.[b]createBackBuffer()[/b]; this.layer.tile.draw(); ... } // effacement de l'image précédente uniquement lorsque la nouvelle image a été récupérée ce qui évite cet effet de flash function removePreviousImage () { if (this.layer.div.children[1]!=undefined) { this.layer.div.children[1].style.visibility="inherit"; this.layer.div.removeChild(this.layer.div.firstChild); } }
JM
Hors ligne