Ocurrio un error en un proyecto que estoy haciendo en Flex, aca pongo un ejemplo.
En el archivo principal tengo dos botones que cambian la url de un loadermodule. El primer boton llama a un modulo llamado uno.swf y el segundo, a otro llamado dos.swf.
este es el archivo principal
Código HTML:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Button label="uno" click="cambiar(true)"/> <mx:Button label="dos" click="cambiar(false)"/> <mx:ModuleLoader url="uno.swf" width="100%" height="500" id="modulo"/> <mx:Script> <![CDATA[ private function cambiar(es:Boolean):void { if(es) modulo.url="uno.swf"; else modulo.url="dos.swf"; } ]]> </mx:Script> </mx:Application>
esto en el modulo uno
Código HTML:
<?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="500"> <mx:Accordion width="100%" height="300"> <mx:Canvas label="ja"> <mx:Label text="ja"/> </mx:Canvas> <mx:Canvas label="je"> <mx:Label text="je"/> </mx:Canvas> <mx:Canvas label="ji"> <mx:Label text="ji"/> </mx:Canvas> </mx:Accordion> </mx:Module>
Código HTML:
<?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300"> <mx:Label text="lll"/> </mx:Module>
Es un ejemplo simple que muestra el error que ocurre en mi proyectyo.
Cuando llamo por segunda vez al modulo uno el accordion se estropea y ya no funciona y el error que me muestra el Flex es el siguiente
Código HTML:
TypeError: Error #1034: Error de conversión forzada: no se puede convertir mx.managers::HistoryManagerImpl@49f1241 en mx.managers.IHistoryManager. at mx.managers::HistoryManager$/get impl()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\HistoryManager.as:96] at mx.managers::HistoryManager$/save()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\HistoryManager.as:157] at mx.containers::Accordion/commitSelectedIndex()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\containers\Accordion.as:1775] at mx.containers::Accordion/commitProperties()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\containers\Accordion.as:1058] at mx.core::UIComponent/validateProperties()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:5807] at mx.managers::LayoutManager/validateProperties()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:539] at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:689] at Function/http://adobe.com/AS3/2006/builtin::apply() at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628] at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]
Como lo resuelvo?
gracias