Criar um "wait" no flex

7 respostas
vcsmetallica

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

7 Respostas

R

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/

vcsmetallica

Ai fudeu!!!

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

Snif snif!!!

V

: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

V

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

?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>
vcsmetallica

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

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

Att

vcsmetallica

vitoryudi;

Vou testar o codigo que vc postou.

Obrigado pela ajuda.

Att

V

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

Criado 1 de fevereiro de 2011
Ultima resposta 2 de fev. de 2011
Respostas 7
Participantes 3