Les limites de la programmation d’une visite virtuelle avec un fichier XML

Une visite virtuelle, du moins lorsqu’elle est en flash, se programme au départ avec un fichier XML.

Avant d’aller plus loin, précisons la définition d’un fichier XML. Wikipédia nous dit :

XML (Extensible Markup Language (en) « langage extensible de balisage ») est un langage informatique de balisage générique. Il sert essentiellement à stocker/transférer des données de type texte Unicode structurées en champs arborescents. Ce langage est qualifié d’extensible car il permet à l’utilisateur de définir les balises des éléments.

On retiendra que le fichier XML sert « essentiellement à stocker/transférer des données ». Comprenons par là « enregistrer les éléments de la visite virtuelle que l’on souhaite afficher ».

Effectivement, pour élaborer sa visite virtuelle flash, on doit fournir au lecteur un certain nombre de paramètres :

  • les icones à utiliser
  • les plugins swf à rajouter
  • pourquoi pas un plan… etc

Jusque là, tout va bien. Il y a même une bonne raison d’utiliser un fichier XML pour du flash : c’est un élément natif d’Action Script 3.

Le problème c’est que lorsqu’on fait une visite virtuelle, on a rarement besoin de ne faire que « afficher des données ». On a aussi besoin de définir des actions, des fonctions, et parfois même des algorithmes, et c’est là que les choses se gâtent.

Prenons l’exemple de krPano. Définir une action est assez simple :

1
2
3
<action name="monaction">
loadpano(newxml.xml);
<action />[/xml]</action>

Il est même possible de faire passer des variables dans l’action :

1
2
3
4
5
6
<plugin name="monplugin" url="icone.png"
onclick="action(monaction, newxml)" />
 
<action name="monaction">
loadpano(%1.xml);
<action /></action>

Une action peut donc servir de fonction. Maintenant, si nous voulons intégrer un diaporama pour afficher une série d’images « à plat » ? et bien c’est impossible. Et quand bien même ça le serait, ce serait certainement mieux et plus rapide de le faire en Action Script 3.

Pourquoi ?

Parce que le fichier XML est un langage de stockage des données, pas un langage de script. Dès lors, faire des opérations « complexes » (faire une boucle, gérer des variables et des événements …) avec un langage n’étant pas fait pour se relève plus compliqué que d’utiliser un langage adapté. Alors la limite est encore assez floue pour moi entre ce qu’il vaut mieux faire en XML et en AS3, mais je suis convaincu d’une chose : tout vouloir faire en XML lorsqu’on a affaire à une visite virtuelle complexe est loin d’être la meilleure des idées.

Voilà, c’était la réflexion du jour :-)

Un commentaire

  1. Vincent Ogloblinsky : site

    Je confirme ta chute Nicolas, il vaut mieux prendre la main en AS3 lors d’un projet complexe plutôt que de codé 10000 lignes de codes XML, on est maître de son plugin et on arrive beaucoup plus rapidement au résultat voulu.

    10 août 2009 à 11:45