Salut
Je suis en train d'intégrer une rubrique news dans un site partiellement développé en Flash, partiellement en PHP avec MySQL. Je ne suis habituellement pas chargé de ce qui touche à Flash mais, en l'occurence, nous avons besoin d'ActionScript (donc de code), ce qui n'est pas le domaine de prédilection de ma collègue graphiste (qui est par ailleurs très douée dans ce qu'elle fait).
Je ne suis pas familier de Flash, alors ce que j'ai fait vaut ce que ça vaut...
Je suis parvenu à charger un fichier XML dans un MovieClip, à le faire scroller et tout mais j'ai un dernier souci : le fichier XML contient des URLs d'images, or il semble qu'elles n'aparaissent pas toutes. Pas systématiquement, du moins. J'imagine qu'il y a une histoire d'asynchrone, seulement je ne sais pas y remédier...
Ouaip, en fait ça fonctionnait à peu près l'autre jour mais plus du tout, maintenant :/
Du moins, le texte s'affiche et se décale correctement, alors que les images n'aparaissent plus du tout.
Bref, j'imagine que je suis à peu près dans la bonne direction mais j'aurais besoin d'un coup de pouce final svp.
Voici mon ActionScript :
J'utilise une instance de MovieClip nommée "holder_mc" pour contenir mes news, chacune d'elles étant une instance copiée de celle que j'ai placée sur la scène et nommée "mcNews".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
34
35 var external_xml:XML = new XML(); external_xml.load("announcement.xml"); external_xml.ignoreWhite = true; external_xml.onLoad = function(success:Boolean){ if(success){ var firstXMLNode = external_xml.firstChild.childNodes[0]; var firstNews = eval("holder_mc.mcNews"); var firstImageInstanceName = eval("image"); firstNews.txtTitle.text = firstXMLNode.attributes.title; firstNews.txtDate.text = firstXMLNode.attributes.date; firstNews.txtContents.text = firstXMLNode.attributes.contents; firstImage = firstNews.createEmptyMovieClip(firstImageInstanceName, firstNews.getNextHighestDepth()); firstImage.loadMovie(firstXMLNode.attributes.image_url); firstImage._alpha = 30; firstImage._y = firstNews._y; for(i=1; i<external_xml.firstChild.childNodes.length; ++i){ var currentXMLNode = external_xml.firstChild.childNodes[i]; var currentNews = firstNews.duplicateMovieClip(firstNews+i, i); var currentImageInstanceName = eval(firstImage+i); currentNews._x = firstNews._x; currentNews._y = firstNews._y + (i * firstNews._height); currentNews.txtTitle.text = currentXMLNode.attributes.title; currentNews.txtDate.text = currentXMLNode.attributes.date; currentNews.txtContents.text = currentXMLNode.attributes.contents; currentImage = currentNews.createEmptyMovieClip(currentImageInstanceName, currentNews.getNextHighestDepth()); currentImage.loadMovie(currentXMLNode.attributes.image_url); currentImage._alpha = 30; currentImage._y = currentNews._y; } } };
Je me retrouve donc avec "holder_mc" qui contient "mcNews", "mcNews1", "mcNews2", etc.
Pour la démonstration, j'utilise un XML (announcement.xml) de ce format (il y a davantage d'éléments dans le mien mais je ne veux pas surcharger ici) :
Je vous remercie de votre attention
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <announcements_list> <announcement file="announcement.php?announcement=11" id="11" title="Title 7" contact_name="Kirkis" contact_email="kirkis@truc.com" date="19-01-2006" image_url="http://<a href="http://www.developpez.net/forums/templates/subSilver/images/lang_french/post.gif"" target="_blank">http://www.developpez.net/forums/tem...ench/post.gif"</a> contents="Noticia 7"></announcement> <announcement file="announcement.php?announcement=10" id="10" title="Title 6" contact_name="Kirkis" contact_email="kirkis@truc.com" date="19-01-2006" image_url="http://<a href="http://www.developpez.net/forums/templates/subSilver/images/lang_french/quote.gif"" target="_blank">http://www.developpez.net/forums/tem...nch/quote.gif"</a> contents="Noticia 6"></announcement> </announcements_list>
Partager