*

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

Responder a