Select to view content in your preferred language

Event to know when a layer loading is complete

2777
2
Jump to solution
10-08-2012 04:30 PM
XintaoLiu
Deactivated User
I am using Flex 4. I have loaded a dynamic layer to map, but the visibility is set to false at the beginning. When I set the layer's visibility to true, it take several seconds before we see the layer. While waiting, I want set the Cursor as busy style. After it is completely done, I want to set Cursor back to normal style. How can I capture the Event, such map.addEventListener and map.removeEventlistener? The codes are not in a widget. Thanks a lot!
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
IvanBespalov
Frequent Contributor
Similar task

Layer is loaded and shown to client:
LayerEvent.LOAD = added to map
LayerEvent.UPDATE_START = recieved new data, starting update layer
LayerEvent.UPDATE_END = layer updated
protected function onLayerUpdateStart(event:LayerEvent):void {         // remove this listener if you need it only 1 time - first layer update         // yourLayer.removeEventListener(LayerEvent.UPDATE_START, onLayerUpdateStart);  trace(">>> Layer id='" + event.layer.id + "' update started");         cursorManager.setBusyCursor(); // or show any own busy dialog }  protected function onLayerUpdateEnd(event:LayerEvent):void {         // remove this listener if you need it only 1 time - first layer update         // yourLayer.removeEventListener(LayerEvent.UPDATE_END, onLayerUpdateEnd);  trace(">>> Layer id='" + event.layer.id + "' update ended");  cursorManager.removeBusyCursor(); }


right?

View solution in original post

0 Kudos
2 Replies
IvanBespalov
Frequent Contributor
Similar task

Layer is loaded and shown to client:
LayerEvent.LOAD = added to map
LayerEvent.UPDATE_START = recieved new data, starting update layer
LayerEvent.UPDATE_END = layer updated
protected function onLayerUpdateStart(event:LayerEvent):void {         // remove this listener if you need it only 1 time - first layer update         // yourLayer.removeEventListener(LayerEvent.UPDATE_START, onLayerUpdateStart);  trace(">>> Layer id='" + event.layer.id + "' update started");         cursorManager.setBusyCursor(); // or show any own busy dialog }  protected function onLayerUpdateEnd(event:LayerEvent):void {         // remove this listener if you need it only 1 time - first layer update         // yourLayer.removeEventListener(LayerEvent.UPDATE_END, onLayerUpdateEnd);  trace(">>> Layer id='" + event.layer.id + "' update ended");  cursorManager.removeBusyCursor(); }


right?
0 Kudos
XintaoLiu
Deactivated User
Similar task

Layer is loaded and shown to client:
LayerEvent.LOAD = added to map
LayerEvent.UPDATE_START = recieved new data, starting update layer
LayerEvent.UPDATE_END = layer updated
protected function onLayerUpdateStart(event:LayerEvent):void
{
        // remove this listener if you need it only 1 time - first layer update
        // yourLayer.removeEventListener(LayerEvent.UPDATE_START, onLayerUpdateStart);
 trace(">>> Layer id='" + event.layer.id + "' update started");
        cursorManager.setBusyCursor(); // or show any own busy dialog
}

protected function onLayerUpdateEnd(event:LayerEvent):void
{
        // remove this listener if you need it only 1 time - first layer update
        // yourLayer.removeEventListener(LayerEvent.UPDATE_END, onLayerUpdateEnd);
 trace(">>> Layer id='" + event.layer.id + "' update ended");
 cursorManager.removeBusyCursor();
}


right?


Yes, it works perfectly, thanks!
0 Kudos