After creationComplete

5 views
Skip to first unread message

Joaquim Barros

unread,
Sep 5, 2014, 8:22:33 PM9/5/14
to flex-...@googlegroups.com
Pessoal, comecei a desenvolver uma app em flex e estou com a seguinte dúvida em relação ao controle de views.

Tenho

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009
xmlns:s="library://ns.adobe.com/flex/spark" title="Agendamentos"
creationComplete="creationCompleteHandler(event)"
>
</View>


protected function creationCompleteHandler(event:FlexEvent):void{
getItens();
}


Porem toda que saio da view atual e vou para HOME ele recarrega tudo. Como eu faço para verificar se a view já está criada  para não carregar toda vez ?



Luis Carlos Quinhone

unread,
Sep 6, 2014, 10:13:16 PM9/6/14
to flex-...@googlegroups.com
creationComplete é executado só quando ela é criada, depende muito de como vc chama essa view, se vc chama usando viewStack por exemplo, ela executará só uma vez, pq quando vc muda de aba ou de view ela não é destruída só escondida. Mas se vc mostra ela usando a criação de uma nova janela, aí sempre que vc abrir ela estará sendo criada e será executada, no exemplo abaixo eu crio como janela, então sempre será executado o método pq ela, ao fechar, é destruida e não só escondida.

var telaDepto:Departamentos=Departamentos(PopUpManager.createPopUp(this, br.com.direciona.views.Departamentos, true));
telaDepto.addEventListener(evtDepartamentosVO.ENVIA_DEPARTAMENTOS, recebeDepartamentos);
PopUpManager.centerPopUp(telaDepto);

Já nesse caso abaixo, eu abro a mesma tela, mas não como janela, mas sim como uma aba de viewStack, nesse caso, se eu fechar e abrir de novo o creationComplete não executa de novo pq ela só está sendo mostrada, ela já foi criada na primeira execução, quando eu fecho eu só escondo ela na realidade mostrando outra view.

public function abreTelaDepartamentosEVT(e:evtDepartamentos):void
{
model.viewAmbiente=2;
        viewAmbiente é uma variável Bindable que ao ser setada, muda o index da viewstack
}

Att
Luis Carlos Quinhone


--
--
-----------------------------------------------------------------------------
Você está recebendo essa mensagem por que faz parte do grupo de discussão
flex-mobile, para sair do grupo basta enviar mensagem para flex-mobile...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo quot;flexmobile" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para flex-mobile...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Mário Júnior

unread,
Sep 8, 2014, 5:41:15 PM9/8/14
to flex-...@googlegroups.com
Se vc está usando <s:View /> provavelmente vc está trabalhando em um projeto mobile.
Nesse caso, em projetos mobile, o View SEMPRE será destruído qnd se alterna entre views, para melhor gerenciamento de memória e processamento. Lembre-se, que mesmo os celulares vindo com 2gb de memória e chips snapdragons, etc, a performance de memória/cpu é limitado, por isso o próprio framework já faz essa inicialização/destruição de objetos pra gente qnd se tratam de Views.

O ideal é que vc guarde seus registros num model (singleton) e no creationComplete vc verifica se já exitem os items, então não precisa recuperar do back-end, caso os items sejam null, daí sim requesite-os do back-end.

[]'s
--
Mario Junior
@mariojunior
Reply all
Reply to author
Forward
0 new messages