Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2010, 15:08
diego1311
 
Fecha de Ingreso: diciembre-2008
Ubicación: Lima - Perú
Mensajes: 187
Antigüedad: 15 años, 11 meses
Puntos: 3
Problema con Accordion y HistoryManager

Hola a todos,
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> 
esto en el modulo dos


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