Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2007, 10h00   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 10
Points : 10
Par défaut HTTPService and Display Synchronisation

Bonjour,

--> Niveau : 3 jours de FLEX.

Presentation : j ai une application qui lorsque je double click sur un element me creer un NodeInformation qui est une mx:TitleWindow.

main.mxml :
Code :
1
2
3
4
5
6
7
 
.....
public function itemDoubleClick(event: Event, text: String, id: String): void {
     var nodeInformation:NodeInformation=NodeInformation(   popUpManager.createPopUp( this, NodeInformation , true) );
          		nodeInformation.setNode(text,id);
            }
.....
Lors de la creation de cette fenetre je fais appelle a un HTTPService afin d'obtenir un contenu xml et ainsi pour voir renseigner les champs de ma fenetre.


NodeInformation.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
 
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
	layout="absolute" width="600" height="400"
	 borderColor="#666666" backgroundColor="#666666"
	  horizontalAlign="center" verticalAlign="middle"
	  close="onClose()" showCloseButton="true"   
          preinitialize="hostData.send()">
 
 
 <mx:HTTPService id="hostData" url="http://127.0.0.1/host.xml"
		requestTimeout="20"	showBusyCursor="true"
		resultFormat="e4x"
		result="gotHostData(event)"/>
 
 <mx:Script>
        <![CDATA[
 
        var data: XML;
   ...
 
private function gotHostData( event: ResultEvent ):void {
	data = event.result as XML;
}
 
public function setInfoText():void {
	infoText.text = data.toString();
}
 
 </mx:Script>
 
<mx:HBox width="100%" height="100%">
        <mx:Accordion id="accordion" width="100%" height="100%" initialize=";">
              <mx:Canvas label="General Information" width="100%" height="100%" >
                <mx:Text id="infoText" width="100%" height="100%" initialize="setInfoText()" />
            </mx:Canvas>
        </mx:Accordion>
 
    </mx:HBox>
 
</mx:TitleWindow>
Probleme : l appel a la fonction setInfoText() se fait avant que le handler du httpService est recu la reponse et execute gotHostData() ce qui a pour effet de creer un Null Pointer Exception.

J ai essaye de mettre un preinitialize="hostData.send()" cependant la methode send etant asynchrone setInfoText() s execute quand meme avant.
Si j enleve le initialize dans <mx:Text id="infoText" width="100%" height="100%" initialize="setInfoText()" /> pas de pb cela se passe bien cependant est ce que je risque pas d avoir une pages blanche qui s affiche si HTTPService est long a repondre ?

Question :
* est il possible d attendre le retour de l appelle a hostData.send() ( HTTPS ervice) avant de lancer la methode setInfoText() ?
* est t il possible de passer d atures parametres au constructeur var nodeInformation:NodeInformation=NodeInformation( ) afin de donner directement le resultat et dans ce cas comment le repercuter dans le code de NodeInformation.mxml ?
* y a t il un autre moyen de faire cela en ordonnancant les appels dans le code d un autre facon ?


Merci
ecatum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 10h20   #2
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Bonjour,

Quel est le problème rencontré ?
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 10h25   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 32
Points : 10
Points : 10
Par défaut Maj du poste

Petit pb avec l habitude de [tab] [enter] pour indenter le code qui ici a poste mon message avant que j ai pu finir d exposer le probleme.
ecatum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 22h24   #4
PeZ
Invité régulier
 
Inscription : mai 2004
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 14
Points : 8
Points : 8
Envoyer un message via MSN à PeZ
Citation:
Envoyé par ecatum
* est il possible d attendre le retour de l appelle a hostData.send() ( HTTPS ervice) avant de lancer la methode setInfoText() ?
Fais appel à ta méthode setInfoText dans ton gestionnaire de result , c'est-à-dire dans ta méthode gotHostData.
Code :
1
2
3
4
5
 
private function gotHostData( event: ResultEvent ):void {
	data = event.result as XML;
        infoText.text = data.toString();
}
PeZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h35.


 
 
 
 
Partenaires

Hébergement Web