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 -~----------~----~----~----~------~----~------~--~---