El proyecto consiste de una aplicacion principal, donde a traves de un module loader y un tree voy cargando modulos segun se elijan.
Quienes prueben el proyecto me entenderan mejor. Mi prolema es que en cada mopdulo hay un combo de meses cargados dinamicamente y El error en cuestion me sucede al cambiar entre un modulo cargado y otro que vuelvo a cargar. En flash 10 dicho combobox deja de funcionar y en flash 9, me lanza el sig. error:
Cita:
Para que me entiendan mejor decidi poner los codigos:TypeError: Error #1034: Error de conversión forzada: no se puede convertir mx.managers::PopUpManagerImpl@55bcce1 en mx.managers.IPopUpManager.
at mx.managers::PopUpManager
at mx.managers::PopUpManager
Este es el codigo de la aplicacion principal:
Código xml:
Ver original
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" verticalAlign="middle" horizontalAlign="center" backgroundColor="white" creationComplete="xmlMenu.send();" top="0" left="0" width="100%" height="100%" > <mx:Script source="config.as"/> <mx:HTTPService id="xmlMenu" url="{RootWeb + 'Menu.xml'}" resultFormat="e4x" method="POST" result="CargarMenu();"/> <mx:Script> <![CDATA[ import mx.events.ItemClickEvent; //Carga el menu correspondiente public function CargarMenu():void{ myTree.dataProvider=xmlMenu.lastResult.menu; } //Se activa cuando se elige una opcion en el menu del lado derecho public function treeChanged(event:Event):void { var selectedNode:XML; var RutaModulo:String; selectedNode=Tree(event.target).selectedItem as XML; RutaModulo=RootWeb + "modulos/" + selectedNode.@id + ".swf"; Modulo.url=RutaModulo; Modulo.loadModule(); //Cargo el modulo } ]]> </mx:Script> <mx:Panel id="PanelPrincipal" x="7" y="9" paddingTop="0" paddingLeft="0" height="100%" width="100%"> <mx:HDividedBox width="100%" height="100%" paddingLeft="0" paddingTop="0"> <mx:VBox height="100%" width="15%" paddingLeft="5" paddingTop="5"> <mx:Tree id="myTree" width="100%" height="100%" labelField="@label" dataTipField="@label" showDataTips="true" showRoot="false" change="treeChanged(event)" borderThickness="2" cornerRadius="4"/> </mx:VBox> <mx:Panel id="Main" title="Venta de unidades por punto de venta" height="100%" width="85%" paddingTop="5" paddingLeft="5"> <mx:ModuleLoader id="Modulo" width="100%" height="100%"/> </mx:Panel> </mx:HDividedBox> </mx:Panel> </mx:Application>
Este el codigo del modulo Agencia1, como ejemplo es el mismo codigo para Agencia2, los cuales deben estar en una subcarpeta que se llama modulos:
Código xml:
Ver original
<?xml version="1.0" encoding="utf-8"?> <mx:Module layout="horizontal" xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" creationComplete="xmlMeses.send();"> <mx:Script source="../config.as"/> <mx:HTTPService id="xmlMeses" url="{RootWeb + 'Meses.xml'}" resultFormat="e4x" result="CargarMeses();" showBusyCursor="true" useProxy="false"/> <mx:Script> <![CDATA[ public function CargarMeses():void{ var Hoy:Date = new Date(); cmbMes.dataProvider=xmlMeses.lastResult.Mes; cmbMes.selectedIndex=Hoy.getMonth(); //Seleccione el mes actual } ]]> </mx:Script> <mx:Canvas label="Filtro" width="100%"> <mx:ComboBox id="cmbMes"/> </mx:Canvas> </mx:Module>
Este es el codigo del menu de opciones
Código xml:
Ver original
<?xml version="1.0" encoding="utf-8"?> <node label="Menu graficador"> <menu id="Agencia1" label="Agencia 1"/> <menu id="Agencia2" label="Agencia 2"/> </node>
Este es el codigo xml donde tengo los meses
Código xml:
Ver original
<?xml version="1.0" encoding="utf-8"?> <Meses> <Mes> <data>1</data> <label>Enero</label> </Mes> ..............Los demas meses.............. <Mes> <data>12</data> <label>Diciembre</label> </Mes> </Meses>
Y por ultimo el codigo de config.as
Código actionscript:
Ver original
// ActionScript file [Bindable] private var ServerWeb:String = "http://192.168.1.7/"; //Aca iria la ip propia private var RootWeb:String = ServerWeb + "test/";