Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Director / XML - Partie 1

Compatible Director. Cliquer pour en savoir plus sur les compatibilités.Par Drakini, le 13 octobre 2005

L'idée est de faire en sorte d'intégrer une mise à jour d'un champ texte “news” et “url” qui doit être transparente pour l'utilisateur.
En effet, s'il est connecté à internet, il aura le nom du dernier fichier mise en ligne et l'url du download, sinon il ce contentera du contenu CD-Rom.

XML parser
Bon, je ne vais pas définir toutes les possibilitées de cette Xtra..
On va s'arréter à ce qui nous importe… Le parseUrl…

On initialise l'animation : Script d'animation

global gObjetXML
 
on startmovie
 member("news").text =""
 member("url").text = ""
 
 clearcache
end
 
on stopmovie
 member("news").text =""
 member("url").text = ""
end

Par défaut, on vide les champs textes au commencement et à la fin de l'animation…
A la première image, l'on va charger le fichier XML, et vu que nous travaillons sur un support CD-Rom, il est important de vider le cache à chaque fois pour que la mise à jour s'effectue correctement…

Sur la première frame, vous mettez un champs de texte classique, indiquant :
“Chargement en cours du fichier XML
En script d'image, vous faites appelle à la fonction initialisation que nous allons créer dans notre script d'animation…

script d'image - Frame 1

on exitframe me
 init()
end

script d'animation

-- init -----------
on init
 gObjetXML = new(xtra "xmlparser") 
 
 errorCode = gObjetXML.parseurl("http://www.orb-multimedia.com/formation/director/xml/actu.xml",#AnalyseOk)
end 

En fait, on lui dit de parser le fichier XML qui ce trouve à l'adresse indiquée…
Et l'on renvoie à la fonction AnalyseOk qui va tester si le fichier a bien été chargé ou pas….
Cette fonction, la voici… C'est elle qui va traiter notre demande et nous aiguiller en fonction du résultat…

Script d'animation :

-- AnalyseOk -----------------------------
 
on AnalyseOk 
 if voidp(gObjetXML.geterror()) then 
   go "02"
   member("resultat").text = "Connexion réussie"
   member("news").text = gObjetXML.child[1].child[1].attributeValue[1]
   member("url").text = gObjetXML.child[1].child[2].attributeValue[1]
 else
   go "01"
   member("resultat").text = "Connexion failed"
 end if
end

Créer des repères, 01 et 02… Sur chaque frame de vos repère, vous placer 3 champs de texte :
- notre champs “news”
- notre champs “url”
- 1 champ “resultat” qui donnera le résultat de l'opération.

Bon, en gros, on lui dit… Si tu peux charger ce fichier XML, alors, dans le champ texte “resultat”, tu affiches “Connexion réussie” et tu vas au repère 02…
Sinon, ben tu affiches que c'est raté, et tu vas au repère 01…
Au repère 01, vous mettez l'info classique de votre CD…

Sur le repère 02, on lui dit quoi?
De mettre dans le champs “news”, ce qui ce trouve dans le premier noeud XML, la première valeur et le contenu de son premier attribut…
Pour le champs “url”, c'est sa seconde valeur….
Télécharger donc le fichier XML et amusez vous un peu avec…., rajoutez des attributs, des infos et essayez de les récupérer..
C'est un exercice nécessaire pour être bien avec ce langage structuré….

La deuxième partie de ce tut ce portera sur l'utilisation complète de cette Xtra XML Parser…
Pour les bases du XML, c'est un autre domaine, mais ce langage peut fournir une aide importante sans trop de notion dessus…
Il est réellement très simple d'utilisation…

Bon, au niveau du repère 01 et 02 vous placer en script d'image, des stops pour éviter une jolie boucle..

script d'image :

on exitframe me
 go to the frame
end

Je vous mets ici une copie du fichier XML pour visu : Fichier actu.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<actu>
<news texte="Le texte de votre news... Tel fichier est à jour, pour le télécharger, cliquez sur l'url ci-dessous..."/>
<news url="http://www.orb-multimedia.com/formation/director/xml/actu.xml"/>
</actu>

Modifiez l'url de votre fichier xml en mettant votre emplacement serveur…