dimassoli
Messages postés10Date d'inscriptionjeudi 4 décembre 2008StatutMembreDernière intervention30 juillet 2009
-
28 juil. 2009 à 11:34
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 2013
-
30 juil. 2009 à 19:38
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"?>
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
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 28 juil. 2009 à 16:40
Salut,
voici un exemple de code
//////////////// Classe CustomImage
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
}
}
}
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 30 juil. 2009 à 19:38
Salut,
1- Dans la class CustomImage
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 ...!
dimassoli
Messages postés10Date d'inscriptionjeudi 4 décembre 2008StatutMembreDernière intervention30 juillet 2009 30 juil. 2009 à 15:22
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:
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++)
{