*
public* *var* listModulesPes:ArrayCollection = *new* ArrayCollection();
*
public* *function* createModule(s:String, c:String):*void* {
*//Variavel para saber se o modulo existe
*
*var* existeModulo:Boolean = *false*;
*//Primeiro verifico se o modulo existe
*
*for*(*var* x:Number=0;x<listModulesPes.length;x++){
*if*(listModulesPes[x].url == s){
*//Modulo já existe
*
existeModulo = *true*;
listModulesPes[x].modulo.loadModule();*//Caminho da aplicação
*
loader.enabled = *false*;
*break*;
}
}
*//Se for falso então precisa criar o modulo.
*
*if*(!existeModulo){
listModulesPes.addItem({ modulo: *new* ModuleLoader(),url: s, campoRetorno:
c });
Application.application.addChild(listModulesPes[(listModulesPes.length-1)].modulo);
listModulesPes[(listModulesPes.length-1)].modulo.autoLayout = *true*;
listModulesPes[(listModulesPes.length-1)].modulo.includeInLayout = *true*;
listModulesPes[(listModulesPes.length-1)].modulo.url = s;*//Caminho da
aplicação
*
listModulesPes[(listModulesPes.length-1)].modulo.percentHeight=100;
listModulesPes[(listModulesPes.length-1)].modulo.percentWidth=100;
listModulesPes[(listModulesPes.length-1)].modulo.loadModule();
listModulesPes[(listModulesPes.length-1)].modulo.addEventListener(ModuleEvent.READY,
pesClienteReady);
listModulesPes[(listModulesPes.length-1)].modulo.addEventListener(ModuleEvent.ERROR,
pesClienteError);
loader.enabled = *false*;
}
}
*
//Descarregamento dynamico dos modulos. Nome da URL UNICA para descarregar o
modulo que precisa.
**
public* *function* removeModule(s:String):*void* {
*for*(*var* x:Number=0;x<listModulesPes.length;x++){
*if*(listModulesPes[x].url == s){
*//Modulo já existe
*
listModulesPes[x].modulo.unloadModule();
Application.application.removeChild(listModulesPes[x].modulo);
listModulesPes.removeItemAt(x);
loader.enabled = *true*;
*break*;
}
}
}
*
public* *function* getNomeCampo(url:String):String{
*var* retornaCampo:String = *new* String();
*for*(*var* x:Number=0;x<listModulesPes.length;x++){
*if*(listModulesPes[x].url == url){
*//Se achar a url passar o nome do campo especifico.
*
retornaCampo = listModulesPes[x].campoRetorno;
*return* retornaCampo
}
}
*return* *""*;
}
Isso ae eu fiz com modulos, a unica coisa que voce tem de fazer e adptar
para panels, aqui ta funcionando certinho, eu abro varios modulos de 1 so
vez e guardo todas as referencias dele dentro desse array, se eu precisar
procurar um modulo ( no seu caso um panel ) a unica coisa que tenho de fazer
a passar o nome do painel, no meu caso eu passo o caminho do meu modulo que
e unico por assim dizer, "modulos/pedidoVenda/Pedido_manager.swf" no seu
caso, voce passaria o ID, ai ele varre o array e verifica se o seu panel
existe primeiro, se existir, voce so atualiza o que voce quer, ai voce muda
o meu IF la, se nao existir ele cria um panel COM O NOME DO SEU ID e
armazena ele dentro do array, e se nao quiser mais, voce descarrega ele no
flex, deleta ele do array para liberar da memoria das 2 formas, e pra
consultar e so fazer uma adaptação da createmodulo para atualizapanel, e
fazer o que voce precisa, qualquer duvida tamos ae.
Não deve servir 100% pra voce por que to usando modulos, mas e so voce dar
uma espiada no codigo e adaptar para o que voce precisa, duvidas, da um
toque.
2010/4/29 Leandro Faria <[email protected]>
> Helio, tem como vc me mandar um exemplo ?
>
> Obrigado
>
> Em 29 de abril de 2010 09:39, Helio Antonio Francisco Silva <
> [email protected]> escreveu:
>
>> Cara eu fiz uma coisa parecida com modulos, mas da pra se aplicar a paneis
>> tambem.
>>
>> Você pode montar um array com as informações dos seus paneis, sempre que
>> um panel for criado voce o armazena la, assim voce consegue acessar todas as
>> propriedades dele.
>>
>> 2010/4/29 Leandro Faria <[email protected]>
>>
>>> Pessoal
>>>
>>> Minha duvida é o seguinte, tenho na minha aplicação a opção de abrir
>>> varios panel, em um determinado momento preciso passar um dado para um panel
>>> especifico. Eles são identificados atráves do código que vem do meu banco de
>>> dados(Ex: panel.id = 10). No caso desse exemplo, eu preciso varrer os
>>> panels e verificar se existe algum aberto com o id = 10. Existe essa
>>> possíbilidade ?
>>>
>>> Obrigado
>>>
>>> --
>>> Leandro de Faria - Faculdade Cenecista de Sete Lagoas
>>> Graduando em Sistemas de Informação
>>> (31) 8825 2046
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>>
>>
>> --
>> Desenvolvedor Web
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> Leandro de Faria - Faculdade Cenecista de Sete Lagoas
> Graduando em Sistemas de Informação
> (31) 8825 2046
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
--
Desenvolvedor Web
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev