Despues de reducir a lo minimo el proyecto y subirlo
por aca. Aun no encuentro el porque del error.
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: TypeError: Error #1034: Error de conversión forzada: no se puede convertir mx.managers::PopUpManagerImpl@55bcce1 en mx.managers.IPopUpManager.
at mx.managers::PopUpManager
Para que me entiendan mejor decidi poner los codigos:
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/";