Gestion des fichiers XML et ASC3 sous Flex:
Bon, toujours aussi debutant, je cherche à creer une application sous Flex, qui affiche les infos sur des utilisateurs, et où je puisse faire un tri des utilisateurs à afficher selon qu'ils soient "M / Mme /Mlle"
Les utilisateurs sont declarés dans un fichier xml du nom "Contact.xml"
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 34 35 36 37 38 39
|
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Utilisateurs</title>
<contacts>
<item>
<name>Grey</name>
<firstName>Meredith</firstName>
<status>Mlle</status>
<age>30</age>
</item>
<item>
<name>Pitt</name>
<firstName>Brad</firstName>
<status>M</status>
<age>42</age>
</item>
<item>
<name>Bourdais</name>
<firstName>Sebastien</firstName>
<status>M</status>
<age>28</age>
</item>
<item>
<name>Grey</name>
<firstName>Liz</firstName>
<status>Mme</status>
<age>58</age>
</item>
<item>
<name>Clegg</name>
<firstName>Antoine</firstName>
<status>M</status>
<age>21</age>
</item>
</contacts>
</channel>
</rss> |
Mon fichier ".mxml" se nomme "Flex1.mxml"
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="findContact.send()" layout="absolute"
xmlns:fme="contact.*">
<mx:HTTPService
id="findContact"
url="C:\Etu\Flex1\Contact.xml"
useProxy="false" />
<fme:Contact id="ctact"/>
<mx:Panel x="10" y="10" width="475" height="400" layout="absolute"
title="{findContact.lastResult.rss.channel.title}">
<mx:ComboBox x="30" y="25" id="cbxNumPosts" change="ctact.sort()">
<mx:Object label="Monsieur" data="M" />
<mx:Object label="Madame" data="Mme" />
<mx:Object label="Mademoiselle" data="Mlle" />
</mx:ComboBox>
<mx:DataGrid id="dgPosts" x="20" y="60" width="400" dataProvider="{findContact.lastResult.rss.channel.contacts.item}">
<mx:columns>
<mx:DataGridColumn headerText="Status" dataField="status"/>
<mx:DataGridColumn headerText="Nom" dataField="name" />
<mx:DataGridColumn headerText="Prenom" dataField="firstName" width="150" />
</mx:columns>
</mx:DataGrid>
</mx:Panel>
<mx:Panel x="480" y="10" width="300" height="400" layout="absolute"
title="Information Utilisateur">
<mx:TextArea x="49" y="10" width="100"
htmlText="{dgPosts.selectedItem.name}" height="26" borderStyle="none"/>
<mx:TextArea x="67" y="44" width="100"
htmlText="{dgPosts.selectedItem.firstName}" height="26" borderStyle="none"/>
<mx:TextArea x="208" y="45" width="62"
htmlText="{dgPosts.selectedItem.age}" height="24" borderStyle="none"/>
<mx:Label x="10" y="10" text="Nom :" height="26" fontFamily="Arial" color="#004080"/>
<mx:Label x="10" y="44" text="Prénom :" height="26" width="49" fontFamily="Arial" color="#004080"/>
<mx:Label x="175" y="46" text="Age :" height="26" color="#004080" fontFamily="Arial"/>
<mx:Image source="file:///C|/Etu/Flex1/assets/avatar1.jpg" x="10" y="78"/>
</mx:Panel>
</mx:Application> |
Enfin mon fichier ActionScript (Contact.as) avec l'import du fichier xml ?
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
package contact
{
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import mx.controls.Alert;
public class Contact {
var chargeur:URLLoader = new URLLoader();
var adresse:URLRequest = new URLRequest("Contact.xml");
var format = URLLoaderDataFormat.TEXT;
chargeur.dataFormat = format;
chargeur.load(adresse);
chargeur.addEventListener(Event.COMPLETE,finDuChargement);
chargeur.addEventListener(ProgressEvent.PROGRESS,avancement);
chargeur.addEventListener(IOErrorEvent.IO_ERROR,indiqueErreur);
function finDuChargement (event:Event) {
var contenu = event.target.item.status;
trace ("chargement finit !" + contenu);
}
function avancement (event:Event) {
trace(event.bytesLoaded+"chargés sur"+event.bytesTotal);
}
function indiqueErreur (event:Event) {
trace(event);
}
public function sort() {
}
}
} |
Comme je le dis, je suis debutant en ASC, je voudrais savoir si c'est le bon principe pour importer mes données <status> de mon fichier XML.
Merci pour votre aide.