IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] [JS] Chargement de map en streaming


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 37
    Par défaut [AJAX] [JS] Chargement de map en streaming
    Bonjour,

    Ayant un projet de programmation d'un jeu par navigateur, un coéquipier ma fais une map, le problème c'est que la map est très grande et surtout très lourde (3mo a peu près), j'ai réussi à régler le problème de la grandeur en faisant un cadre avec la map qui peut être déplacer par drag&drop mais le problème du poids est toujours présent.
    Il charge toute la map puis le déplacement est possible.

    Je voudrais savoir si c'était possible de faire une sorte de chargement en streaming de la map, un bout de map visible dans le cadre et une vingtaine de pixel autour sera chargé, le reste se chargera au déplacement de la map.

    J'espère avoir été assez explicite.

    J'attends votre réponse avec impatience.
    Cordialement.

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    oui c'est possible (un peu comme le fait googlemap), mais pour cela il te faut
    découper ta map en régions de taille similaires (soit tu découpe ça préalablement,
    soit tu découpe ça à la demande coté serveur)

    Pour l'affichage, le plus simple à mon avis c'est de faire un cadre avec un
    div de taille fixe, (par ex: <div id='cadre'>) et tu fixe le overflow sur hidden
    et en position relative.

    A l'intérieur de ce div tu en crée un autre de la taille originale de la map. tu
    le met en position: absolute (par ex: <div id='map'>)

    ensuite tu peux, par exemple, créer tous les div qui correspondent aux découpes,
    tous de taille fixe et tous en float: left; tu leur fixe un id qui correspond à la
    région qu'ils représentent (par ex: <div id='zone_12_3'>)

    Pour charger une région tu applique le background-image depuis javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function loadZone(x, y) {
      var id = 'zone_' + x + '_' + y; // détermine l'id de la région
      var url = 'zones/' + id + '.png'; // calcul l'url de l'image de cette région
      document.getElementById(id).style.backgroundImage = "url(" + url + ")";
    }
    Reste à appeler loadZone au bon moment suivant la position de la carte.
    Quand tu glisse la carte tu modifie les style left et top du div #map.

Discussions similaires

  1. [Prototype] Ajax.Updater + chargement fichier JS externe dans la réponse
    Par Delprog dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 01/05/2009, 04h50
  2. Chargement de Map optimisé
    Par Rian83 dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/03/2009, 10h51
  3. [AJAX] formulaire : chargement
    Par Emcy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/12/2008, 08h58
  4. [DOM] AJAX: le chargement de la page ne s'arrête jamais
    Par Amallric dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 20/07/2008, 11h05
  5. [Prototype] Ajax et chargement
    Par watchabongo dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 12/12/2007, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo