Je travaille avec un chargeur pour demander une image à partir d'un WMS (Web Mapping Service). Tout est bien et dandy avec une demande valide.Problème avec les événements Loader ActionScript
Lorsqu'une demande incorrecte est faite à un WMS, un document d'exception standard (XML) est généralement renvoyé. Cependant, le chargeur ne déclenche aucun événement (en particulier les événements Complete ou IOError) lorsqu'une requête incorrecte est effectuée.
Quelqu'un at-il des suggestions sur la façon dont je peux piéger tout ce qui n'est pas une image qui pourrait être retournée?
override protected function loadMapImage(loader:Loader):void
{
// update parameter values
_params = new URLVariables();
_params.request = "GetMap";
_params.format = "image/png";
_params.version = "1.1.1";
_params.layers = this.layers;
_params.styles = "";
_params.transparent = "TRUE";
_params.bbox = map.extent.xmin + "," + map.extent.ymin + "," + map.extent.xmax + "," + map.extent.ymax;
_params.srs = "EPSG:" + map.spatialReference.wkid;
_params.width = map.width;
_params.height = map.height;
_urlRequest = new URLRequest(this.url);
_urlRequest.data = _params;
configureListeners(loader.contentLoaderInfo);
loader.load(_urlRequest);
}
private function configureListeners(dispatcher:IEventDispatcher):void
{
//dispatcher.addEventListener(Event.INIT, initHandler);
//dispatcher.addEventListener(Event.UNLOAD, unloadHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
//dispatcher.addEventListener(Event.OPEN, openHandler);
//dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
//dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
//dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//dispatcher.addEventListener(Event.ACTIVATE, activateHandler);
//dispatcher.addEventListener(Event.DEACTIVATE, deactivateHandler);
}
private function ioErrorHandler(event:IOErrorEvent):void
{
trace('ioErrorHandler event');
}
private function completeHandler(event:Event):void
{
trace('completeHandler event');
}
Cela a fonctionné parfaitement, merci pour le conseil. – user163757