Charger une image avec du XML
Bonjour à tous,
Je suis infographiste 3D depuis 7 ans en autodidacte ainsi qu'étudiant, à la fac, en cinéma, et je suis entrain de créer un site. J'ai acheté ce dvd : http://www.formationvideo.fr/dvd/site-flash/. C'est pas le plus judicieux de créer un site en flash mais bon, maintenant que je suis lancé autant finir !
J'ai un soucis quand il consiste à charger une groupe d'image, à partir d'un XML. Flash ne me met aucune erreur mais rien ne se charge. Donc j'ai listé mes images dans un fichier XML que voilà :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <project>
<item>
<image src="data/AMDS/Comptoir1.jpg" />
<image src="data/AMDS/Comptoir2.jpg" />
<image src="data/AMDS/Comptoir3.jpg" />
<image src="data/AMDS/Comptoir4.jpg" />
</item>
<item>
<image src="data/AMDS/Kinox.jpg" />
<image src="data/AMDS/Kinox_Double1.jpg" />
<image src="data/AMDS/Kinox_Double2.jpg" />
<image src="data/AMDS/Kinox_Petit.jpg" />
</item>
<item>
<image src="data/AMDS/MeubleStock.jpg" />
<image src="data/AMDS/MeubleStock_Ouvert.jpg" />
</item>
</project> |
Puis dans flash j'ai créé un RollOverBorder, histoire de mettre une petite animation quand on passe la souris sur l'image. Ainsi qu'un LoadTarget pour charger mes images.
Donc dans flash builder voici le code dans la classe ImagesItems :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public function ImagesItems( src : XML )
{
super();
source = src;
//charger l'image
loader = new Loader();
loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onImageLoadComplete );
loader.load( new URLRequest( source.image[0].@src) );
LoadTarget.addChild( loader ); |
Il manque une partie du code qui n'est pas nécessaire au chargement d'image, d'ou le fait que tout les } n'y soient pas ( à la fin ).
Voici pour la classe Meubles, qui est la classe " maîtresse " d'ImagesItems ( je sais pas comment dire ) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public function Meubles()
{
super();
}
override protected function init():void
{
xmlLoader = new URLLoader;
xmlLoader.addEventListener( Event.COMPLETE, onXMLLoadComplete );
xmlLoader.load ( new URLRequest ( 'data/xml/images.xml') );
super.init();
}
private function onXMLLoadComplete ( event:Event = null ):void
{
xmlData = new XML ( xmlLoader.data );
var items:XMLList = xmlData.item;
var n:int = items.length;
var ni:ImagesItems;
for (var i:int = 0; i < n; i++ )
{
ni = new ImagesItems ( items [i] );
ni.x = 10 + i * ( ImagesItems.ITEM_WIDTH + MARGIN );
ni.y = 40;
addChild( ni );
}
} |
Mon LoadTarget est bien assigné comme étant une public var LoadTarget:MovieClip;.
Etant débutant je ne comprends pas trop d'ou vient le soucis. J'aurais pensé que ça venait d'un problème de position mais apparemment non ( si je me trompe pas ).
Quelqu'un saurait d'ou ça vient ?
Merci d'avances pour votre aide !
Leuprochon