Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

XML et Flash ?????

Par SenkiT le 23/7/2002 à 2:29:37 (#1845607)

bon voila ....
j'ai un gros bleme ...
et j'ai besoin d'aide :p
:aide: :aide: :aide:

arf ça rime :mdr:

bon bref ...

le fichier *.xml ici
http://www.camelot-europe.com/herald/servers.xml

donnant l'etat des serveurs etc ....

comment kom fait pour k'en flash on puisse l'exploiter

donc si kel kun pouvais me cree un exemple se serrai sympa

un petit *.fla ça m'aidrai bien à avancer sur ma map RVR
car la je suis bloquer :(

ça fait 2 H ke je cherche et j'en ai marre, de vien fou :rasta:

please un *.fla .....

Par Karig le 23/7/2002 à 3:20:35 (#1845680)

Quelle version de flash utilises tu? (je recherche flash 4 desespérément, tu l as peut etre...)

Par Waffenkrieg le 23/7/2002 à 8:18:03 (#1845946)

Il suffit que tu récupère le nom des variables en faisant un setvar.

Par SenkiT le 23/7/2002 à 11:02:08 (#1846473)

reponse :
NON j'ai po flash 4 :p
desoler :(




voila la suite
pour comprende un peu plus mon bleme :

// po les blanc
XML.prototype.ignoreWhite = true;

// declare la varible de chargement du fichier
daocXml = new XML();

// renvoie a la fonction ....
daocXml.onLoad = lectureXML;

//1er bloquage
//en local j'arrive a loader le fichier mais
// sur le net po moyen
// cible le fichier

// la ça marche
daocXml.load("servers.xml");

// la ça marche plus
//daocXml.load("http://www.camelot-europe.com/herald/servers.xml");


// debut de la fonction de lecture
function lectureXML () {

// C ici ke je bloque 2eme fois
// par exemle je veux recuperer la population du serveur YS
VarServer_Name = ?????;

// puis qui tient le fort "Dun Scathaig" <= hibernia de base
VarKeep_Name = ??????;}


voila si tu peu remplir les ?????
et me dire ou j'ai faux pour le chargement du fichier
ce serrai sympa

merchi d'avance

Par Raven / Orcanie le 23/7/2002 à 14:04:18 (#1847500)

Je crois savoir pourquoi, ton fichier xml doit etre sur le meme serveur que ton anim flash.
Donc tu crées un fichier PLOP.xml avec :



et puis apres ds ton flash

daocXml.load("PLOP.xml");


Karig > http://telecharger.01net.com/ ya plein de versions de flash en version démo ( utilisable 1 mois, ca permet de te former et de te decider à l'achat )

Par SenkiT le 23/7/2002 à 18:00:43 (#1849080)

mrchi de bien repondre
mais
a marche

pourtant j'ai bien la version 6 r40 du flash player
mais a marche po

enfin j'arrive p etre a la charger
(il broute sans s'arreter)
je suis obliger de le closer de la maniere forte :(

bref ça vien p etre a mon avis de la façon d'on je prend mes variable

enfin je suis toujour o meme point

enfin cpo grave j'ai plein d'autre truc a faire mais bon c po juste de bloquer sur une Me*#* pareil

ggggrrrrrr

Par SenkiT le 25/7/2002 à 16:32:52 (#1857672)

j'ai toujour po trouver :(

kel kun a une solution ???

Par SenkiT le 29/7/2002 à 3:43:40 (#1870740)

mais heu tout le monde s'en fou ou koi ????
ou il y a personnes ki sais ???

bon bref
j'arrive enfin a lire la 1er balise :
voila le code ke j'ai fait



// test de la 1er balise "server_status"
function test() {
balise1 = daocXml.firstChild;
// test du nom de la premiere balise
if (balise1.nodeName != "server_status") {
toto = "oui";
} else {
toto = "non";
}
}

toto est bien egal a "oui"

mais comment avoir les autres ..???
ben je trouve po
je cherche toujour :(

mais je vais trouver !!! seul a mon avis car personne veux m'aider :sanglote:

mais je suis lke seul flasheur sur DAoC ????

ben flute alors :monstre:

Par slamp le 30/7/2002 à 10:40:26 (#1874662)

mais je suis lke seul flasheur sur DAoC ????

Snif, car tu fais un superbe boulot.

Par Polmera Mygas le 30/7/2002 à 17:25:52 (#1877070)

Lut,
j'y connais rien au flash. Par contre j'ai fait des chroniques en php. Le lien ci dessous :

http://membres.lycos.fr/tinaoviel/Chroniques.html

Ca marche tres bien et ca me plait :)

Par SenkiT le 30/7/2002 à 23:58:21 (#1878962)

vi c po mal ;)
mai sça change rien a mon bleme
mais sinon c klair c po mal

Par SenkiT le 21/8/2002 à 22:23:35 (#2000480)

bon c pour remonter mon post
voila c tout je suis toujour en galere :(

Par apophyss le 21/8/2002 à 23:11:28 (#2000725)

vais essayer de voir ca demain ;) (flash 5)

Par SenkiT le 22/8/2002 à 2:34:16 (#2001822)

vi vi c bien en flash 5 .. :D

ah enfin kel kun ki m'aide :amour:

deja merchi a toi :merci:
meme si tu a encore rien fait :)
c deja po mal de cherche avec moi
A++

Par Amorgrid le 22/8/2002 à 8:50:53 (#2002599)

Hum j'ai trouvé ça
http://www.flash-box.net/aide/Flash/html/30_asd_11_u_to_x26.html
ton problème vient peut être du fait qu'en local le chargement est instantané alors que quand tu fais appel à un serveur distant le temps de chargement est mesurable
d'où peut être un boucle comprennant un test sur la valeur loaded...

Par SenkiT le 22/8/2002 à 12:15:53 (#2003724)

merchi de ton aide !!
mais ( ben vi il y en a toujour :( )

ke se soit en local ou a distance ça changer rien j'arrive a extraire la 1er variable
mais pour extraire les autres variable j'y arrive po ..

le bleme du Local ou distant je l'ai resolu ...
la il n'y a pu de bleme

mais j'ai toujour le bleme de l'extraction de varible.

Merchi encore a toi

Par Amorgrid le 22/8/2002 à 13:50:44 (#2004481)

Pour récup les autres variables essaye avec la propriété que je viens de trouver :
http://www.flash-box.net/aide/Flash/html/30_asd_11_u_to_x28.html

Par apophyss le 23/8/2002 à 2:29:56 (#2009134)

t'a une erreur :(

// test de la 1er balise "server_status"
function test() {
balise1 = daocXml.firstChild;
// test du nom de la premiere balise
if (balise1.nodeName != "server_status") {
toto = "oui";
} else {
toto = "non";
}
}

toto est bien egal a "oui"

ton != signale que si balise1.nodeName est different de server_status toto="oui" alors tu est pas sur la premiere balise :(
j'ai essayé de la passer a server qui est la 2eme balise tu xml mais toujours pas ca :(

Par Amorgrid le 23/8/2002 à 11:08:43 (#2010800)

Bon après avoir passé la matinée dessus :maboule: , j'ai enfin trouvé la solution à ton problème :mdr:

Afin de contourner le problème de l'accès au fichier distant, j'ai créé le fichier xml.php dont le code est :



Puis, dans le flash :
XML.prototype.ignoreWhite = true;
daocXml = new XML()
daocXml.onLoad = chargement;
daocXml.load ("xml.php");


Et enfin, dans la fonction chargement
function chargement () {
toto = daocXml.childNodes[0].nodeName;
}

toto a la valeur "server_status" à la fin de la fonction chargement...

EDIT : ET m... c'est toujours pas ça... Il ne veut pas ouvrir le fichier php dans le load... Je vais devoir employer la manière forte... copier le xml par le script php à chaque appel du flash

Par apophyss le 23/8/2002 à 15:06:36 (#2012568)

oui c'est se que je fais je copi le fichier .xml au load du .swf et ensuise je le load dans le .swf

Par contre a tu trouvé le moyen de lire les autres valeurs dans le xml moi je bloc la .... car le server_status on s'en fout elle est vide ;)

sinon merci de ce code je vais m'appuyer dessu et continuer ;)

ta essayé dans ton xml.php un



Par Amorgrid le 23/8/2002 à 17:48:53 (#2013577)

Bah dans le xml.php j'ai trouvé plusieurs combinaisons qui fonctionnent (quand je l'ouvre dans IE ca m'affiche bien le XML) mais Flash veut rien savoir il ne récupère pas le contenu

sinon la commande daocXml.childNodes[0] permet de récupérer n'importe quelle donnée... childNodes[0] désigne en fait le premier noeud enfant du noeud dans lequel on se trouve. donc on peut accéder à n'importe quelle valeur
exemple essaye daocXml.childNodes[0].childNodes[0].nodeName je crois que ca donne la première balise server
J'obtiens successivement les valeurs pour excalibur
toto1 = daocXml.childNodes[0].childNodes[0].attributes.name;
toto2 = daocXml.childNodes[0].childNodes[0].attributes.type;
toto3 = daocXml.childNodes[0].childNodes[0].attributes.updated;

J'obtiens :
Variable _level0.toto1 = "Excalibur"
Variable _lelve0.toto2 = "English"
Variable _level0.toto3 = "23-08-2002 10:40:01"

Par Amorgrid le 23/8/2002 à 21:42:15 (#2015315)

// Chargement du fichier XML
XML.prototype.ignoreWhite = true;
daocXml = new XML()
daocXml.onLoad = chargement;
daocXml.load ("donnees.xml");

// Fonction qui va créer une boite de texte
function creer_texte(texte,x,y,i){
_root.createTextField(texte,i,x,y,150,100);
texte.multiline = true;
texte.wordWrap = true;
texte.border = false;
monFormat = new TextFormat();
monFormat.color = 0xff0000;
monFormat.bullet = false;
monFormat.underline = true;
texte.text = ";
texte.setTextFormat(monFormat);
}

x=0;
y=0;
function chargement () {
// La boucle for parcourt toutes les balises server successivement et inscrit
// les 3 valeurs dans 1 boite de texte à chaque fois.
for (i=0;i<daocXml.ChildNodes[0].ChildNodes.length;i++){
nom = "toto"
nom += i;
creer_texte(nom,x,y,i);
with(eval(nom)){
text += daocXml.childNodes[0].childNodes.attributes.name;
text += "\n";
text += daocXml.childNodes[0].childNodes.attributes.type;
text += "\n";
text += daocXml.childNodes[0].childNodes.attributes.updated;
}
// Pour changer de ligne (mon plan de travail fait 600x400 pixels)
if (x==450){
x=0;
y=y+100;}
else{x=x+150;}
}
}

Par apophyss le 24/8/2002 à 3:33:33 (#2016924)

tu pourrais mettre faire un zip (avec .fla et .xml) et soit me le mailer soit mettre un lien ou le download car moi je bloque il est impossible de charger le fichier .xml de goa et ton code ne marche pas, pourtant j'y arrive très bien avec un fichier .xml que je créé avec la meme arborecence que le servers.xml

Par Amorgrid le 24/8/2002 à 7:39:48 (#2017359)

Voilà j'ai fait un php qui copie le contenu du xml de goa dans un fichier local et qui lance le document flash

<?
$url="http://www.camelot-europe.com/herald/servers.xml";
$xml=implode(",file($url));
$fp = fopen("donnees.xml","w");
fputs($fp, $xml);
echo '';
?>

Par SenkiT le 24/8/2002 à 15:07:33 (#2018804)

arf je viens po 2 jours et voila k'on boss dans mon dos
MDR


merchi a vous 2 pour vous defoncer la tete

je vais voir ça ce jour si j'ai le temps

encore merci j ecrois ke ça va me depanner

moi j t bloqué a fond :(

je vous tient o courant tout les 2

A++

et encore MERCHI :merci: :merci: :merci:

Par apophyss le 24/8/2002 à 17:30:21 (#2019319)

Accrochez vous on avance a pas de geants ;)
(Pour mon histoire j'ai du passer sur flash MX)
Le code suivant renvoie les valeurs (nom serveur, type, update, + tous les noms de relic/fort)

XML.prototype.ignoreWhite = true;
daocXml = new XML()
daocXml.onLoad = chargement;
daocXml.load ("donnees.xml");
// Fonction qui va créer une boite de texte
function creer_texte(texte,x,y,i,u){
_root.createTextField(texte,i,x,y,600,600);
texte.multiline = true;
texte.wordWrap = true;
texte.border = false;
monFormat = new TextFormat();
monFormat.color = 0xff0000;
monFormat.bullet = false;
monFormat.underline = true;
texte.text = ";
texte.setTextFormat(monFormat);
}

x=0;
y=0;
function chargement () {
serverTag = new XML();
// creation des sous enfants
serverTag = this.firstChild;
// creation 2eme sous enfant
relicTag = serverTag.firstChild;
// La boucle for parcourt toutes les balises server successivement et inscrit
// les 3 valeurs dans 1 boite de texte à chaque fois.
for (i=0;i<daocXml.ChildNodes[0].ChildNodes.length;i++){
nom = "toto"
nom += i;
creer_texte(nom,x,y,i,u);
with(eval(nom)){
text += serverTag.childNodes.attributes.name;
text += "\n";
text += serverTag.childNodes.attributes.type;
text += "\n";
text += serverTag.childNodes.attributes.updated;
for (u=0;u<daocXml.ChildNodes[0].ChildNodes.childNodes.length;u++){
text += "\n";
text += relicTag.childNodes.attributes.name;
}
}
// Pour changer de ligne (mon plan de travail fait 600x400 pixels)
// je ne change plus la ligne pour le moment car sinon ca superpose ;)
//if (x==450){
//x=0;
//y=y+100;}
//else{x=x+150;}
x=x+150;
}

}

Par Amorgrid le 24/8/2002 à 19:08:03 (#2019845)

avec une boite de 1100x500 et un pas de décalage de 120 on voit tous les serveurs chez moi


EDIT :
Tiens sinon j'ai rajouté ça à la fin ;) :
text += "....";
text += relicTag.childNodes.childNodes[0].childNodes[0].nodeValue;
Pour avoir les noms des possesseurs de relique et forts
Du coup j'ai mis un pas de 300 pour qu'on y voit un peu plus clair (tant pis pour les autres forts :monstre: )

Par apophyss le 24/8/2002 à 19:14:09 (#2019877)

et on continu ;)

cette fois ci, selection du serveur à utiliser, nom des forts et relics avec le propriétaire et le possésseur actuel ;)
Va falloir entrer tous ca dans des variables pour pourvoir les utiliser en graphique maintenant ;)


XML.prototype.ignoreWhite = true;
daocXml = new XML()
daocXml.onLoad = chargement;
daocXml.load ("donnees.xml");
// Fonction qui va créer une boite de texte
function creer_texte(texte,x,y,i,u){
x=x-150; // pour coller la boite texte a gauche
_root.createTextField(texte,i,x,y,1500,600);
texte.multiline = true;
texte.wordWrap = true;
texte.border = false;
monFormat = new TextFormat();
monFormat.color = 0xff0000;
monFormat.bullet = false;
monFormat.underline = true;
texte.text = ";
texte.setTextFormat(monFormat);
}

x=0;
y=0;
function chargement () {

serverTag = new XML();
// creation des sous enfants
serverTag = this.firstChild;

serv=1; //server a utiliser (0=excalibur,1=broceliande,2=avalon...)
i=0; //on debut a 0
i++; // on implémente i

nom = "toto"
nom += i;
creer_texte(nom,x,y,i,u);
with(eval(nom)){
text += serverTag.childNodes[serv].attributes.name;
text += "\n";
text += serverTag.childNodes[serv].attributes.type;
text += "\n";
text += serverTag.childNodes[serv].attributes.updated;
for (u=2;u<serverTag.ChildNodes[serv].childNodes.length;u++){
text += "\nNom: ";
text += serverTag.childNodes[serv].childNodes.attributes.name;
text += " Propriétaire: ";
text += serverTag.childNodes[serv].childNodes.attributes.realm;
for (v=0;v<1 && v<serverTag.ChildNodes[serv].childNodes.childNodes.length;v++){
text += " Possésseur: ";
// text += serverTag.childNodes[serv].childNodes.firstChild.nodeName;
text += serverTag.childNodes[serv].childNodes.childNodes[0].firstChild.nodeValue;
}
}


}

x=x+150;

Par Amorgrid le 24/8/2002 à 19:18:52 (#2019900)

Erf tu es trop rapide tu as devancé mon EDIT lol

Pour ma part, mini optimisation de tes variables ;)

XML.prototype.ignoreWhite = true;
daocXml = new XML()
daocXml.onLoad = chargement;
daocXml.load ("donnees.xml");
// Fonction qui va créer une boite de texte
function creer_texte(texte,x,y,i,u){
_root.createTextField(texte,i,x,y,1500,600);
texte.multiline = true;
texte.wordWrap = true;
texte.border = false;
monFormat = new TextFormat();
monFormat.color = 0xff0000;
monFormat.bullet = false;
monFormat.underline = true;
texte.text = ";
texte.setTextFormat(monFormat);
}

x=0;
y=0;
function chargement () {
serv=1; //server a utiliser (0=excalibur,1=broceliande,2=avalon...)
i=0; //on debut a 0
i++; // on implémente i

serverTag = new XML();
// creation des sous enfants
serverTag = this.firstChild.childNodes[serv];


nom = "toto"
nom += i;
creer_texte(nom,x,y,i,u);
with(eval(nom)){
text += serverTag.attributes.name;
text += "\n";
text += serverTag.attributes.type;
text += "\n";
text += serverTag.attributes.updated;
for (u=2;u<serverTag.childNodes.length;u++){
keepTag = new XML();
keepTag = serverTag.childNodes;
text += "\nNom: ";
text += keepTag.attributes.name;
text += " Propriétaire: ";
text += keepTag.attributes.realm;
for (v=0;v<1 && v<keepTag.childNodes.length;v++){
text += " Possesseur: ";
// text += keepTag.firstChild.nodeName;
text += keepTag.firstChild.firstChild.nodeValue;
}
}
}
x=x+150;}

Par apophyss le 25/8/2002 à 3:34:09 (#2021740)

bon allez on rattrape goa ;) (enfin presque ;) )

voici donc la premiere esquise (je dis bien esquise) des chroniques flash tirées du XML en temps réel.

Elles peuvent être un peu longues à afficher car je n'ai pas obtimiser biensur, alors il peut falloir attendre + de 30 sec en 56 ;)

http://www.cybernet-com.fr/hebergement/daoc/test/serverxml.php

Biensur je donnerais les source demain la je suis fatigué, ensuite aux graphistes de travailler ;)

Pour le moment meme si ca apparait pas je suis capable d'appeler toutes les infos du .xml (owner, proprio, claimant, heraldurl .. )

Par Mures le 25/8/2002 à 4:58:07 (#2021871)

:confus:

oula... faut que je reprenne des cours en programation...

Par Amorgrid le 25/8/2002 à 6:31:49 (#2021998)

Sacré bourrin Apophyss, t'as passé toute la soirée dessus ?
:mdr:

Par Amorgrid le 25/8/2002 à 11:55:32 (#2022544)

J'ai également développé ma petite version perso, mais moi l'affichage est instantané ! Je ne sais pas comment tu fais pour que ca mette 30sec lol
http://membres.lycos.fr/valhallaspirits/xml.php

Par SenkiT le 25/8/2002 à 20:30:10 (#2025231)

mouarf il me reste koi a faire ???
MDR

je vais encore le redire mais bon

merchi a VouS tous

donc la Map RVR devrais etre mis a jour bientot

on ne sais jamais mais vous le savez p erte deja
voila le lien vers les maps

http://perso.wanadoo.fr/senkit/DAOC/rvr.html

je vs mettraient ds les remerciements

A+++
et encore merchi

Par apophyss le 25/8/2002 à 21:56:03 (#2025773)

personnellement je vais créer mes propres cartes... le but étant de créer un tout en un (mais y'a du travail ;) )

evolution du travail a l'adresse
http://www.cybernet-com.fr/hebergement/daoc/test/serverxml.php

JOL Archives 1.0.1
@ JOL / JeuxOnLine