Lorsque je teste mon application déployée dans un navigateur, la fenêtre contextuelle continue à s'afficher même après sa fermeture. Tout fonctionne comme prévu lorsque débogué dans Flash Builder 4.L'applet Flex déployée ne traite pas les résultats du service Web
Après est actuellement ce qui se passe: la demande est envoyée à mon service Web reposant, qui traite la demande, (apparemment) le ResultEvent
est appelé qui à l'ordre du tour du profileEvt
dynamique événement qui modifie l'état d'affichage. Cependant, la fenêtre contextuelle ne se ferme pas et l'applet est bloquée.
Quelqu'un sait quel pourrait être le problème? Voici les événements du service Web applet flex auditeurs/gestionnaires:
webService.addEventListener(ResultEvent.RESULT, function(event:ResultEvent):void
{
var rawData:String = String(event.result);
var profileEvt:DynamicEvent = new DynamicEvent("profileSaved", true);
profileEvt.data = JSON.decode(rawData).profile;
dispatchEvent(profileEvt); // Dispatch profile saved event
_progressPopUp.closePopUp();
dispatchEvent(event); // Dispatch submit profile button clicked
});
webService.addEventListener(FaultEvent.FAULT, function(event:FaultEvent):void
{
Alert.show("Could not create profile; please try again later.\n" + event.message, "Status");
_progressPopUp.closePopUp();
});
var params:Object = {"profile" : profile};
try
{
_progressPopUp = PopUpManager.createPopUp(this, com.profs.ui.components.ProgressPopUp, true);
_progressPopUp.eventSource = webService; // Set source of progress events
webService.send(JSON.encode(params));
}
REMARQUE: com.profs.ui.components.ProgressPopUp
est un composant personnalisé; le code est ci-dessous:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="300" height="200" showCloseButton="false" title="Status" creationComplete="init()">
<fx:Declarations></fx:Declarations>
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
[Bindable] public var eventSource:Object;
private function init():void
{
PopUpManager.centerPopUp(this);
}
public function closePopUp():void
{
PopUpManager.removePopUp(this);
}
public function completionHandler(event:Event):void
{
closePopUp();
}
]]>
</fx:Script>
<mx:ProgressBar id="progressBar" indeterminate="true" mode="event" source="{eventSource}" complete="completionHandler(event)" verticalCenter="0" horizontalCenter="0"/>
</mx:TitleWindow>