Documentation Flash CS3 |
|||
| Programmation avec ActionScript 3.0 > Utilisation de XML > Exemple : Chargement de données RSS depuis Internet | |||
L'exemple d'application RSSViewer présente plusieurs fonctions d'utilisation d'XML dans ActionScript, notamment :
Le format RSS est largement utilisé pour diffuser des nouvelles via XML. Un fichier de données RSS simple peut avoir l'aspect suivant :
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Alaska - Weather</title>
<link>http://www.nws.noaa.gov/alerts/ak.html</link>
<description>Alaska - Watches, Warnings and Advisories</description>
<item>
<title>
Short Term Forecast - Taiya Inlet, Klondike Highway (Alaska)
</title>
<link>
http://www.nws.noaa.gov/alerts/ak.html#A18.AJKNK.1900
</link>
<description>
Short Term Forecast Issued At: 2005-04-11T19:00:00
Expired At: 2005-04-12T01:00:00 Issuing Weather Forecast Office
Homepage: http://pajk.arh.noaa.gov
</description>
</item>
<item>
<title>
Short Term Forecast - Haines Borough (Alaska)
</title>
<link>
http://www.nws.noaa.gov/alerts/ak.html#AKZ019.AJKNOWAJK.190000
</link>
<description>
Short Term Forecast Issued At: 2005-04-11T19:00:00
Expired At: 2005-04-12T01:00:00 Issuing Weather Forecast Office
Homepage: http://pajk.arh.noaa.gov
</description>
</item>
</channel>
</rss>
L'application SimpleRSS lit les données RSS depuis Internet, analyse les données à la recherche de titres, de liens et de descriptions et renvoie ces données. La classe SimpleRSSUI fournit l'IU et appelle la classe SimpleRSS qui effectue le traitement XML.
Pour obtenir les fichiers d'application pour cet exemple, voir www.adobe.com/go/learn_programmingAS3samples_flash_fr. Les fichiers d'application RSSViewer se trouvent dans le dossier Samples/RSSViewer. Cette application se compose des fichiers suivants :
|
Fichier |
Description |
|---|---|
|
RSSViewer.mxml ou RSSViewer.fla |
Le fichier d'application principal dans Flash (FLA) ou Flex (MXML). |
|
com/example/programmingas3/rssViewer/RSSParser.as |
Une classe qui contient des méthodes utilisant E4X pour parcourir des données (XML) RSS et générer une représentation HTML correspondante. |
|
RSSData/ak.rss |
Un exemple de fichier RSS. Cette application est définie pour lire des données RSS à partir du Web, sur un flux RSS Flex hébergé par Adobe. Néanmoins, vous pouvez facilement modifier l'application pour lire des données RSS depuis ce document qui utilise un schéma légèrement différent de celui du flux RSS Flex. |
La classe RSSParser comprend une méthode xmlLoaded() qui convertit les données RSS d'entrée, stockées dans la variable rssXML, en une chaîne contenant une sortie formatée HTML, rssOutput.
Vers le début de la méthode, le code définit l'espace de nom XML par défaut si les données RSS source comprennent un espace de nom par défaut :
if (rssXML.namespace("") != undefined)
{
default xml namespace = rssXML.namespace("");
}
Les lignes suivantes parcourent ensuite en boucle le contenu des données XML source, en examinant chaque propriété descendante nommée item :
for each (var item:XML in rssXML..item)
{
var itemTitle:String = item.title.toString();
var itemDescription:String = item.description.toString();
var itemLink:String = item.link.toString();
outXML += buildItemHTML(itemTitle,
itemDescription,
itemLink);
}
Les trois premières lignes définissent simplement des variables de chaîne pour représenter les propriétés de titre, de description et de lien de la propriété item des données XML. La ligne suivante appelle la méthode buildItemHTML() pour obtenir des données HTML sous la forme d'un objet XMLList, à l'aide des trois nouvelles variables de chaîne comme paramètres.
Les données HTML (un objet XMLList) ont la forme suivante :
<b>itemTitle</b>
<p>
itemDescription
<br />
<a href="link">
<font color="#008000">More...</font>
</a>
</p>
Les premières lignes de la méthode effacent l'espace de nom xml par défaut :
default xml namespace = new Namespace();
La directive default xml namespace a un domaine de niveau bloc de fonction. Cela signifie que le domaine de cette déclaration est la méthode buildItemHTML().
Les lignes qui suivent assemblent l'XMLList en fonction des arguments de chaîne transmis à la fonction :
var body:XMLList = new XMLList();
body += new XML("<b>" + itemTitle + "</b>");
var p:XML = new XML("<p>" + itemDescription + "</p>");
var link:XML = <a></a>;
link.@href = itemLink; // <link href="itemLinkString"></link>
link.font.@color = "#008000";
// <font color="#008000"></font></a>
// 0x008000 = green
link.font = "More...";
p.appendChild(<br/>);
p.appendChild(link);
body += p;
Cet objet XMLList représente des données de chaîne adaptées à un champ de texte HTML d'ActionScript.
La méthode xmlLoaded() utilise la valeur de renvoi de la méthode buildItemHTML() et la convertit en une chaîne :
XML.prettyPrinting = false; rssOutput = outXML.toXMLString();
La méthode xmlLoaded() définit une variable de chaîne rssTitle, en fonction des informations contenues dans les données XML RSS source :
rssTitle = rssXML.channel.title.toString();
Pour finir, la méthode xmlLoaded() génère un événement qui notifie l'application que les données sont analysées et disponibles :
dataWritten = new Event("dataWritten", true);
Flash CS3
M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000133.html