Já passei por isso e usei um POG depois de meses de pesquisa.
Crie no Main um variável dummy, isto é, uma variável que não tem
função, p.ex. var dummy:IHistoryManager;
Isso resolveu para mim o problema, apesar de parecer que não irá dar
em nada no início. Eu acho que isso é algum problema de referência de
tipo de variável de objetos do Flex.

Tenta lá e me avisa.

Abraços.


2009/11/26 samuelesoares <samuelesoa...@gmail.com>:
>
> Bom dia, na aplicação que estou desenvolvendo, tenho um ModuleLoader,
> que ao usuário escolher uma opção no menubar ele carrega o módulo
> específico.
>
> No momento, a aplicação tem quatro módulos, a medida que escolho as
> opções ele descarrega o módulo atual e carrega o módulo de acordo com
> a opção.
>
> O problema é que você pode escolher qualquer opção, mas a partir da
> terceira opcao escolhida seja em qual for a ordem, ocorre o erro. Por
> exemplo, executo a aplicação, escolho uma opção e carrega o módulo
> correspondente normalmente, escolha outra opção e carrega o módulo
> correspondente normalmente, mas quando escolho uma terceira opção ele
> já dá o erro, se eu clicar em 'Continuar' ele abre o módulo, mas a
> partir daí qualquer opcao que clico aparece o erro. Não existe ordem
> nestas opções, em qualquer ordem, a partir da terceira vez, dá o
> problema.
>
> Código:
>
> // Função para carregar módulos
> public function CarregarModulo(modulo:String):void
> {
>        // Antes de carregar o módulo, verifica se já existe algum módulo
>        // carregado, caso haja, este módulo é descarregado primeiro, antes
> de
>        // carregar o módulo atual. Também verifica se o módulo que vai ser
> carregado
>        // é o mesmo que já está carregado.
>        if (CarregadorModulos.url != modulo) // O módulo para carregar não é
> o mesmo que está carregado
>        {
>                if (CarregadorModulos.url != "") // Existe algum módulo 
> carregado
>                {
>                        CarregadorModulos.unloadModule();
>                        CarregadorModulos.url = "";
>                }
>
>                // Mostra a barra de progresso
>                barraProgresso.visible = true;
>                // Carrega o módulo
>                CarregadorModulos.url = modulo;
>                CarregadorModulos.loadModule();
>        }
> }
>
> O erro:
>
> TypeError: Error #1034: Falha de coerção de tipo: não é possível
> converter mx.managers::historymanageri...@235e7e99 em
> mx.managers.IHistoryManager.
>        at mx.managers::HistoryManager$/get impl()[E:\dev\3.0.x\frameworks
> \projects\framework\src\mx\managers\HistoryManager.as:96]
>        at mx.managers::HistoryManager$/unregister()[E:\dev\3.0.x\frameworks
> \projects\framework\src\mx\managers\HistoryManager.as:144]
>        at mx.containers::ViewStack/systemManager_removedHandler()[E:\dev
> \3.0.x\frameworks\projects\framework\src\mx\containers\ViewStack.as:
> 1196]
>        at flash.display::DisplayObjectContainer/removeChild()
>        at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::
> $removeChild()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core
> \UIComponent.as:4995]
>        at mx.core::Container/removeChild()[E:\dev\3.0.x\frameworks\projects
> \framework\src\mx\core\Container.as:2272]
>        at mx.modules::ModuleLoader/unloadModule()[E:\dev\3.0.x\frameworks
> \projects\framework\src\mx\modules\ModuleLoader.as:287]
>        at bandamichama/CarregarModulo()[D:\wamp\www\bandamichama\projeto_flex
> \src\gc.as:42]
>        at bandamichama/MenuClick()[D:\wamp\www\bandamichama\projeto_flex\src
> \gc.as:91]
>        at bandamichama/__menuPrincipal_itemClick()[D:\wamp\www\bandamichama
> \projeto_flex\src\bandamichama.mxml:14]
>        at flash.events::EventDispatcher/dispatchEventFunction()
>        at flash.events::EventDispatcher/dispatchEvent()
>        at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks
> \projects\framework\src\mx\core\UIComponent.as:9051]
>        at mx.controls::MenuBar/eventHandler()[E:\dev\3.0.x\frameworks
> \projects\framework\src\mx\controls\MenuBar.as:1379]
>        at flash.events::EventDispatcher/dispatchEventFunction()
>        at flash.events::EventDispatcher/dispatchEvent()
>        at mx.core::UIComponent/dispatchEvent()[E:\dev\3.0.x\frameworks
> \projects\framework\src\mx\core\UIComponent.as:9051]
>        at mx.controls::Menu/dispatchEvent()[E:\dev\3.0.x\frameworks\projects
> \framework\src\mx\controls\Menu.as:1302]
>        at mx.controls::Menu/mouseUpHandler()[E:\dev\3.0.x\frameworks\projects
> \framework\src\mx\controls\Menu.as:1644]
>
> Obrigado!
> >
>

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a