Criar um "wait" no flex

Salve galera!!!

Galera, seguinte, quando mando buscar qualquer coisa no banco e mostrar nos componentes do flex esta desenhando primeiro a tela no flex, ai depois que mostra os resultados.

Por exemplo: Vou povoar o meu grid. Quando aciono o botao “buscar todos os registros” é mostrado primeiro o meu grid vazio e passado alguns segundos os dados são mostrados.

Como que eu faço um “wait” para esses casos, mostrar o meu grid somente depois que os dados estiverem preenchidos?

Se alguem tiver uma ideia, por exemplo, mudar o cursor do mouse, essas coisas, pois preciso passar para o usuario que os dados estao sendo carregados e que o sistema não travou.

Att

vcsmetallica

Você pode exibir o showBusyCursor (pode customizá-lo) ou então tem esse componente http://blog.dclick.com.br/2010/10/22/servicefeedback-e-o-fim-do-showbusycursor/pt/

Ai fudeu!!!

O endereço que foi passado é so para flex 4. Eu ainda uso o flex 3.

Snif snif!!!

:wink:se vc procurar existe para o flex 3 tb.
tem como fazer,
quanto a mostrar o datagrid depois.

o flex tem uma coisa que difere do java muito importante
ele é assincrono,

ou seja ele não espera determinada ação, para executar outra,
ela vai executando,
a não ser que vc programa, qndo determinado evento acontecer, ai sim, faça algo.

uma pergunta,
vc
está trazendo os dados de onde?
de um xml, ou de um banco?:
vc está usando alguma linguagem para back??
abçs

um exemplo tem outros cursores junto
mas o busy ta ai tb.

[code]?xml version=“1.0” encoding=“utf-8”?>
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“vertical” verticalAlign=“middle"
horizontalAlign=“center” backgroundGradientColors=”[0x000000,0x323232]" viewSourceURL=“srcview/index.html”>
mx:Script
<![CDATA[
import mx.controls.Button;
import mx.managers.CursorManager;
import flash.events.*;

        private var cursorID:Number = 0;
        // Embed the cursor symbol.
        [Embed(source="aircursor.png")]
        private var waitCursorSymbol:Class;           

        private function setCursor(cursorType:String):void 
        {
            if (cursorType == "normal") {
                CursorManager.removeAllCursors();
                CursorManager.removeBusyCursor();
            } else if (cursorType == "busy") {
                CursorManager.removeAllCursors();
                CursorManager.setBusyCursor();
            } else if (cursorType == "custom") {
                CursorManager.removeAllCursors();                    
                cursorID = CursorManager.setCursor(waitCursorSymbol);
            }
        }
    ]]>
</mx:Script>

<mx:Button label="Normal Cursor" color="white" textRollOverColor="white" click="setCursor('normal')"/>
<mx:Button label="Default Busy Cursor" color="white" textRollOverColor="white" click="setCursor('busy')"/>
<mx:Button label="Custom Busy Cursor" color="white" textRollOverColor="white" click="setCursor('custom')"/>

</mx:Application>[/code]

[quote=vitoryudi] :wink:se vc procurar existe para o flex 3 tb.
tem como fazer,
quanto a mostrar o datagrid depois.

o flex tem uma coisa que difere do java muito importante
ele é assincrono,

ou seja ele não espera determinada ação, para executar outra,
ela vai executando,
a não ser que vc programa, qndo determinado evento acontecer, ai sim, faça algo.

uma pergunta,
vc
está trazendo os dados de onde?
de um xml, ou de um banco?:
vc está usando alguma linguagem para back??
abçs[/quote]

Estou buscando os dados de um banco de dados, mysql. Estou usando Java com BlazeDS.

Att

vitoryudi;

Vou testar o codigo que vc postou.

Obrigado pela ajuda.

Att

certo,
vc está usando remoteObject?

pq ele fica com o cursor de relogio enquanto traz as informações do banco.
no result do remoteObject
se vc colocar isso aqui
showBusyCursor=“true”

ai ficaria assim

<mx:RemoteObject id="NomeRO" showBusyCursor="true" destination="Destino" endpoint="http://{Application.application.servidor}/{Application.application.nomeProjeto}/messagebroker/amf"> <mx:method name="excluir" result="onResultExcluir(event);" fault="onFault(event);"/> <mx:method name="encerrar" result="onResultEncerrar(event);" fault="onFault(event);"/> </mx:RemoteObject>

é bem mais facil utilizar assim!

espero ter ajduado!
abçs