Accueil > Forum > > > > afficher du xml
afficher du xml
mardi 28 juillet 2009 à 11:34:14 |
afficher du xml

dimassoli
|
Voila j'ai un projet carto dans lequel je veux afficher des points par couche.
J'en suis a des test pour l'instant mon panneau de sortie m'affiche bien les infos.
La ou je calle c pour les faire s'afficher sur le swf panne sèche si quelqu'un peux m'aider merci.
voici le XML:
<?xml version="1.0" encoding="utf-8"?>
<album>
<image vig="point.jpg" alt="pas image" coordx="50" coordy="50" couche="1" ref="1"/>
<image vig="point.jpg" alt="pas image" coordx="200" coordy="200" couche="1" ref="2"/>
<image vig="point2.jpg" alt="pas image" coordx="100" coordy="75" couche="2" ref="2"/>
</album>
voici l'AS3:
var cpt:int = 0;
var chargementXML:URLLoader = new URLLoader();// objet de chargement
var urlxml:String; // déclaration de la variable qui va recevoir le chemin du fichier de type String
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; // objet de charmenent de flashvars
//urlxml = paramObj.urlmenu; // affectation de la flashvar (chemin du fichier xml) à la variable urlxml
urlxml = "test.xml";
var fichier:URLRequest = new URLRequest(urlxml);// url du fichier
var intervalDuration:Number = 7000;
/******** ecouteur pour le chargement du fichier XML ************/
chargementXML.addEventListener( Event.COMPLETE, chargementComplet );
chargementXML.load( fichier );
/************ fonction a éxécuter une fois que le chargement est complet *********/
function chargementComplet(pEvt:Event):void
{
var vig:Array = new Array();// tableau qui contient le chemin des images
var couche:Array = new Array();// tableau qui contient la description
var coordx:Array = new Array();// tableau qui contient le lien
var coordy:Array = new Array();// tableau qui contient les mots
var galery:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Leve
var image:XMLList =galery.elements();
/********** On affecte les variables XML chargées dans un tableau ************/
for each(var noeudimage:XML in image)
{
vig.push(noeudimage.@vig);
couche.push(noeudimage.@couche);
coordx.push(noeudimage.@coordx);
coordy.push(noeudimage.@coordy);
}
var long:int = vig.length -1 ;
for(var i:int = 0; i <= long; i++)
{
trace(vig[0+i]);
trace(coordx[0+i]);
trace(coordy[0+i]);
trace(couche[0+i]);
function chargeimage(evt:MouseEvent,i:int):void
{
var url:String ="vig"+i+".jpg";
var request1:URLRequest = new URLRequest(url);
var loader:Loader = new Loader()
loader.load(request1);
addChild(loader);
}
}//fin du for
}
|
|
mardi 28 juillet 2009 à 16:40:16 |
Re : afficher du xml

nickydaquick
|
Réponse acceptée !
Salut,
voici un exemple de code
//////////////// Classe CustomImage
Code ActionScript : package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.xml.XMLNode;
import flash.net.URLRequest;
import flash.events.IOErrorEvent;
public final class CustomImage extends Sprite
{
private var __img:Loader;
public function CustomImage(node:XMLNode):void
{
var o:Object = node.attributes;
x = parseInt(String(o.coordx));
y = parseInt(String(o.coordy));
__img = new Loader; addChild(__img);
__img.addEventListener(IOErrorEvent.IO_ERROR,__onPictureNotFound,false,0,true);
__img.load(new URLRequest(String(o.vig)));
}
public function __finalize():Void
{
__img.removeEventListener(IOErrorEvent.IO_ERROR,__onPictureNotFound,false);
__img.unload();
removeChild(__img); __img = null;
}
private function __onPictureNotFound(event:IOErrorEvent):void
{
//image non chargee : ressource inexistante
}
}
}
///////////////////// Code principal
Code ActionScript : import flash.xml.XMLDocument;
import flash.xml.XMLNode;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;
var urlloader:URLLoader = new URLLoader,
urlxml:String = "test.xml",
imagelist:Vector.<CustomImage> = Vector.<CustomImage>([]);
urlloader.addEventListener(Event.COMPLETE,__onXMLReady,false,0,true);
urlloader.addEventListenr(IOErrorEvent.IO_ERROR,__onXMLError,false,0,true);
urlloader.dataFormat = "text";
urlloader.load(new URLRequest(urlxml));
function __onXMLError(event:IOErrorEvent):void
{
//notification d'erreur
}
function __onXMLReady(event:Event):void
{
var xml:XMLDocument = new XMLDocument,
node:XMLNode,
cimg:CustomImage;
xml.ignoreWhite = true;
try
{
xml.parseXML(urlloader.data as String);
}
catch(e:Error)
{
return;
}
node = xml.firstChild;
if(node==null)return;
while(node.nextSibling!=null)node = node.nextSibling;
node = node.firstChild;
while(node!=null)
{
cimg = new CustomImage(node);
adChild(cimg);
imagelist.push(cimg);
node = node.nextSibling;
}
}
J'espere que cela pourra t'aider.
au revoir et Bonne continuation.
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
|
|
jeudi 30 juillet 2009 à 15:22:51 |
merci de ta reponse

dimassoli
|
entre temps je me suis debrouiller avec un scrollpane mais je vais essayer ta méthode car là nouvelle galère comme je suis debutant je vais essayer de t'expliquer le plus clairement possible.
sur ma scene je veux a partir d'un boutons appeller une couche ou un id du xml:
<image vig="point.jpg" alt="pas image" coordx="200" coordy="200" couche="1" ref="2"/>
<image vig="point2.jpg" alt="pas image" coordx="100" coordy="75" couche="2" ref="2"/>
ce boutons va donc m'afficher plusieurs points c la que je galere j'aimerai que ces point une fois charger devienne des boutons.
Le but :
ces point vont apparaitre sur une carto il feront appel a des notice sur une base, l'interet est donc qu'une fois mon travail fini il n'y aura plus besoin de toucher au flash, pour alimenter ma carto seul le xml suffira
Projet un peu ambitieux au vu de mes connaissances AS3 mais bon c en forgeant qu'on devient forgeron et en ce moment la forge tourne a plein regime bref si tu as des idées pour que les points une fois charger soit cliquable je suis preneur
Merci du temps que tu m'a deja consacré
Ps: comment as tu fait pour envoyer un code aussi clair(couleur,retour ligne....)
import idem aux mail précédent
var myxml:XML = new XML();
var cpt:int = 0;
var chargementXML:URLLoader = new URLLoader();// objet de chargement
var urlxml:String; // déclaration de la variable qui va recevoir le chemin du fichier de type String
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; // objet de charmenent de flashvars
//urlxml = paramObj.urlmenu; // affectation de la flashvar (chemin du fichier xml) à la variable urlxml
urlxml = "test.xml";
var fichier:URLRequest = new URLRequest(urlxml);// url du fichier
//var intervalDuration:Number = 7000;
/******** ecouteur pour le chargement du fichier XML ************/
chargementXML.addEventListener( Event.COMPLETE, chargementComplet );
chargementXML.load( fichier );
/************ fonction a éxécuter une fois que le chargement est complet *********/
function chargementComplet(pEvt:Event):void
{
var vig:Array = new Array();// tableau qui contient le chemin des images
var couche:Array = new Array();// tableau qui contient la description
var coordx:Array = new Array();// tableau qui contient le lien
var coordy:Array = new Array();// tableau qui contient les mots
var galery:XML = new XML( pEvt.target.data );//la classe XML est une classe native de Flash, on la trouve dans le package Top Leve
var image:XMLList =galery.elements();
/********** On affecte les variables XML chargées dans un tableau ************/
for each(var noeudimage:XML in image)
{
vig.push(noeudimage.@vig);
couche.push(noeudimage.@couche);
coordx.push(noeudimage.@coordx);
coordy.push(noeudimage.@coordy);
}
var long:int = vig.length -1 ;
for(var i:int = 0; i <= long; i++)
{
trace(vig[0+i]);
trace(coordx[0+i]);
trace(coordy[0+i]);
trace(couche[0+i]);
// création du chargeur
var chargeur:Loader = new Loader();
// url à atteindre
var maRequete:URLRequest = new URLRequest (vig[0+i]);
// chargement du contenu
chargeur.load( maRequete );
// ajout à la liste d'affichage
//addChild ( chargeur );
//Champ texte pour le texte alternatif
var texteAlt:TextField = new TextField();
texteAlt.text = (couche[1]);
texteAlt.x = 200;
texteAlt.y = 500;
texteAlt.width = 400;
texteAlt.height = 200;
this.addChild(texteAlt);
//scrollpane pour afficher xml a l'interieur
var fabe:ScrollPane = new ScrollPane();
var loader:Loader = new Loader()
loader.load(maRequete);
fabe.addChild(chargeur);
fabe.visible = false;
chargeur.x = coordx[0+i];
chargeur.y = coordy[0+i];
chargeur.scaleX=0.4;
chargeur.scaleY=0.4;
fabe.x = 0;
fabe.y = 0;
fabe.width = 1000;
fabe.height = 800;
this.addChild(fabe);
}
}//fin du for
|
|
jeudi 30 juillet 2009 à 19:38:04 |
Re : afficher du xml

nickydaquick
|
Réponse acceptée !
Salut,
1- Dans la class CustomImage
Code ActionScript : package
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.display.Loader;
import flash.xml.XMLNode;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.IOErrorEvent;
public final class CustomImage extends Sprite
{
private var __img:Loader;
private var __click_zone:Sprite;
public function CustomImage(node:XMLNode):void
{
var o:Object = node.attributes;
x = parseInt(String(o.coordx));
y = parseInt(String(o.coordy));
__img = new Loader; addChild(__img);
__img.addEventListener(Event.INIT,__onPictureLoaded,false,0,true);
__img.addEventListener(IOErrorEvent.IO_ERROR,__onPictureNotFound,false,0,true);
__img.load(new URLRequest(String(o.vig)));
}
public function __finalize():Void
{
if(__click_zone!=null)
{
__click_zone.removeEventListener(MouseEvent.CLICK,__onClick,false);
}
__img.removeEventListener(Event.INIT,__onPictureLoaded,false);
__img.removeEventListener(IOErrorEvent.IO_ERROR,__onPictureNotFound,false);
__img.unload();
removeChild(__img); __img = null;
}
private function __onPictureNotFound(event:IOErrorEvent):void
{
//image non chargee : ressource inexistante
}
private function __onPictureLoaded(event:Event):void
{
//image chargee : rendre le clip cliquable
if(__click_zone!=null)return;
__click_zone = new Sprite;
addChild(__click_zone);
var gp:Graphics = __click_zone.graphics;
gp.beginFill(0,0.0);
gp.drawRect(0.0,0.0,__img.width,__img.height);
gp.endFill();
__click_zone.addEventListener(MouseEvent.CLICK,__onClick,false,0,true);
}
private function __onClick(event:MouseEvent):void
{
event.stopImmediatePropagation();
//bouton clique : appliquer une action
}
}
}
2- Je l'ai indente moi-meme, mais pour les couleurs, l'editeur de Codes-Cources fait amplement le boulot ; il y a un bouton pour choisir le type de code que tu veux deposer (3eme a partir de la droite dans la petite barre a options au-dessus de la zone de texte). Tu selectionnes le texte et tu choisis, la couleur , la font , le type de code que c'est (Actionscript, c++, java,...).
Bonne continuation.
http://liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!
|
|
Cette discussion est classée dans : fichier, var, xml, array, vig
Répondre à ce message
Sujets en rapport avec ce message
Problème de chargement array [ par adramele ]
Bonjour à tous !Je suis face à un soucis... je débute. Ce code va chercher une variable faite d'une séquence avec virgule dans un fichier php pour ens
Decplacement de clips en saccade [ par grenouilleAB ]
Bonjour J'ai un problème de déplacament de clips en saccades. Les clip sont integrés dans la scène à partir de la bibliothède via attachMovie. Le prob
Récupérer des données d'un fichier XML dans un tableau [ par buzhug35 ]
Bonsoir, Je voulais externaliser les textes dans un fichier XML de façon à pouvoir au besoin gérer plusieurs langues. Après bien des déboires, je me s
Récupérer des données d'un fichier XML dans un tableau [ par buzhug35 ]
Bonsoir, Je voulais externaliser les textes dans un fichier XML de façon à pouvoir au besoin gérer plusieurs langues. Après bien des déboires, je me s
Problème Boutons, Array, et functions en AS3 [ par chillie ]
Bonjour à tous.Je suis un train de réaliser un site internet sous flash. Pour des questions pratique de gestion du son je vais tout refaire en AS3 ().
width sur une variable xml récupérée ne fonctionne pas [ par cd59 ]
Bonjour, j'ai un SWF avec des champs de texte. Ces champs sont renseigné dans un xml.Ce qui marche : l'import dans flash des noms des champs de texte
Préchargement d'image [ par Kangouroops ]
Bonjour tout le monde, Je viens à vous pour une petite question, Je suis entrain de faire un générateur d'avatar: http://hanser.perso.neuf.fr/Amaury
[Flash AS]Lecteur mp3 + liste xml [ par tfk16 ]
Bonjour a tous et a toutes je poste aujourd'hui ce sujet qui me derange depuis longtemps bon sans plus tarder je vous donne le probleme . J'ai conçu u
Affichage XML avec AS3 [ par Guerrilla ]
Bonjour à tous, Je souhaite faire un simple affichage de contenu XML dans mon animation, le problème c'est que il n'y a que la première entrée qui s'a
[AS3] Problème avec les classes [ par jytest ]
Je débute en actionscript (pour flash CS4). J'ai un problème de compilation avec les classes... "Impossible de charger la classe ou l'interface" pour
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|