Kifriz
Messages postés2Date d'inscriptionmercredi 31 mars 2010StatutMembreDernière intervention 7 avril 2010
-
6 avril 2010 à 19:28
Kifriz
Messages postés2Date d'inscriptionmercredi 31 mars 2010StatutMembreDernière intervention 7 avril 2010
-
7 avril 2010 à 12:42
Bonjour !
J'ai fait un paquet de recherches sur ce sujet abordé et ré-abordé, sans toutefois trouver la solution à mon problème.
Je charge des images par un xml en flash AS3. Pas de souci, je peux les afficher, les placer, et leur appliquer un scale "générique" (le même pour toutes). Je souhaite récupérer les dimensions de chacune d'entre elles (entre autres pour adapter le scale suivant la taille de l'image et les placer correctement dans ma scène).
Je me heurte au problème suivant : dans ma boucle "for each" qui parse mon xml, j'ajoute un écouteur pour m'assurer que l'image est chargée. Dans la fonction onComplete alors lancée, je trace le nom du fichier chargé : seul le nom du dernier fichier chargé est affiché, et ce autant de fois qu'il y a d'images. J'ajoute également dans la boucle un écouteur pour faire du drag, le drag ne marche que sur le dernier fichier chargé.
J'ai dû louper quelque chose : pour moi, à chaque passage de la boucle, on charge une image, lance la fonction : onComplete et rend l'image déplaçable (ne marche pas non plus en mettant l'écouteur du drag dans onComplete).
Qu'est-ce que j'ai loupé ? Peut-on récupérer les dimensions de chaque image chargée sans le renseigner dans le xml ?
D'avance merci pour votre aide !
(je suis preneur de référence de topic si cette question a déjà été résolue et que je suis malheureusement passé à côté :)
var xmlURL:URLRequest = new URLRequest("fichierImages.xml");
var xmlLoader:URLLoader = new URLLoader(xmlURL);
xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
var vignette_mc:smallContainer; //MovieClip créé dans la bibliothèque, petit rectangle plein illustrant une vignette standard, classe exportée pour l'Actionscipt
var i:Number = 0;
function xmlLoaded(event:Event):void
{
//Chargement du fichier XML
var dataXML = XML(event.target.data);
var imagesVehicules:XMLList = dataXML.elements();
//Chargement image par image et affichage
for each(var image:XML in imagesTests)
{
vignette_mc = new smallContainer; //création d'une vignette standard
vignette_mc.x = 50 + i*150;
vignette_mc.y = 50 + i*50;
addChild(vignette_mc);
var imageRequest:URLRequest = new URLRequest(image);
var imageLoader:Loader = new Loader();
imageLoader.load(imageRequest);
vignette_mc.addChild(imageLoader); //import dans le MovieClip, pour voir si plus flexible que le DisplayObject -- sans succès
vignette_mc.scaleX vignette_mc.scaleY 0.5; //scale générique qui s'applique bien à chaque vignette
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
vignette_mc.addEventListener(MouseEvent.MOUSE_DOWN, dragStart);
vignette_mc.addEventListener(MouseEvent.MOUSE_UP, dragStop);
i++;
function onComplete(event:Event):void
{
trace("Fichier " + image + " chargé");
}
}
}
function dragStart(MouseEvent):void
{
vignette_mc.startDrag();
}
function dragStop(MouseEvent):void
{
vignette_mc.stopDrag();
}