ich mit einem Lader arbeite ein Bild von einem WMS (Web Mapping Service) zu beantragen. Alles ist gut und schön mit einer gültigen Anfrage.Trouble With Action Loader Event
Wenn eine schlechte Anforderung an einen WMS gemacht wird, ein Standard-Exception-Dokument (XML) ist in der Regel zurückgegeben. Der Ladevorgang löst jedoch kein Ereignis (insbesondere die Complete- oder IOError-Ereignisse) aus, wenn eine ungültige Anforderung erfolgt.
Hat jemand irgendwelche Vorschläge, wie kann ich Falle etwas, das kein Bild ist, die zurückgegeben werden könnte?
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');
}
Dies funktionierte perfekt, danke für den Rat. – user163757