Hace un par de meses empece a ver Flex y dado que estoy mas que conforme con la posibilidades y caracteristicas que ofrece empecé a desarrollar nuevos proyectos.
En estos dias se me cruzó un problema muy raro manejando modulos con el ModuleLoader, que manejo pasando parametros por el url de carga del ModuleLoader, y que son recibidos en la propiedad loaderInfo.url del modulo.
Lo he resumido en un pequeñisimo ejemplo de codigo.
Lo raro es que: con solo descomentar la linea de la funcion 'cualquiera' en la applicacion principal, se altera el resultado que recibe loaderInfo.url dentro del modulo.
Como podra ver el que quiera probarlo, corriendo el ejemplo tal cual lo envio, haciendo click en el boton se muestra un valor, que termina con la cadena .."modulo.swf?parametro=prueba".
Pero con solo descomentar la linea de la funcion 'cualquiera' (una funcion que no se procesa en ningun momento, solo que en la linea hace referencia a una propiedad del modulo), el valor mostrado se altera y muestra una cadena que termina con .."prueba.swf", sin los parametros que necesito que lleguen al modulo.
Como no tengo a quien consultar entre conocidos sobre estos temas de Flex solo me queda recurrir a los distintos grupos que se dedican al tema.
Tengo alguna idea de que puede estar pasando, me hago una idea de por que Flex podria estar actuando de esta manera, pero no encuentro una forma de solucionarlo, lo que me llevaria a cambiar la forma de trabajo que venia desarrollando.
Un saludo y un agradecimiento si pueden darme una pista de cual es el problema.
Lo siguiente es el codigo de los 2 archivos del ejemplo. Uso Windows XP, con Flash 10.0.32.18.
prueba.mxml:
Código Flex :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
public function cualquiera() : void {
//var x: String =(mlModulo.child as modulo).texto;
}
]]>
</mx:Script>
<mx:ModuleLoader id="mlModulo" url="modulo.swf?parametro=prueba" x="121" y="71" width="561" height="344"/>
</mx:Application>
modulo.mxml:
Código Flex :
<?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300"> <mx:Script> <![CDATA[ import mx.controls.Alert; public var texto : String = 'Texto de prueba'; ]]> </mx:Script> <mx:Button x="149" y="119" label="Button" click="Alert.show(this.loaderInfo.url);"/> </mx:Module>
