Les adjunto el codigo, para ver si me podrían ayudar.
Principal:
<?xml version="1.0" encoding="utf-8"?>
<!-- containers\navigators\TNEffect.mxml -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark" >
<fx:Declarations>
<mx:WipeRight id="myWR"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
//import mx.events.IndexChangedEvent;
import mx.controls.Alert;
private function cambioPestania(e:Event):void {
var almacenaIndex:String = e.currentTarget.selectedIndex;
switch (almacenaIndex) {
case "0":
segundaVinieta.unloadModule();
terceraVinieta.unloadModule();
cuartaVinieta.unloadModule();
primeraVinieta.url = "Paso1.swf";
primeraVinieta.loadModule();
break;
case "1":
primeraVinieta.unloadModule();
terceraVinieta.unloadModule();
cuartaVinieta.unloadModule();
segundaVinieta.url = "Paso2.swf";
segundaVinieta.loadModule();
break;
case "2":
primeraVinieta.unloadModule();
segundaVinieta.unloadModule();
cuartaVinieta.unloadModule();
terceraVinieta.url = "Paso3.swf";
terceraVinieta.loadModule();
break;
case "3":
primeraVinieta.unloadModule();
segundaVinieta.unloadModule();
terceraVinieta.unloadModule();
cuartaVinieta.url = "Paso4.swf";
cuartaVinieta.loadModule();
break;
}
}
]]>
</fx:Script>
<s:VGroup>
<mx:TabNavigator id="tabNav" change="cambioPestania(event)" x="800" y="450" >
<mx:ModuleLoader id="primeraVinieta" label="Descripción de proyecto" horizontalAlign="center" />
<mx:ModuleLoader id="segundaVinieta" label="Permisos ambientales sectoriales" horizontalAlign="center" />
<mx:ModuleLoader id="terceraVinieta" label="Línea base" horizontalAlign="center" />
<mx:ModuleLoader id="cuartaVinieta" label="Normativa" horizontalAlign="center" />
</mx:TabNavigator>
</s:VGroup>
</s:Application>
paso1.mxml<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="671" height="398" xmlns:local="*" >
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.modules.ModuleLoader;
protected function menuItemSelectedHandler(event:MenuItemSelectedEvent):void
{
trace("Menu item: " + event.menuItem);
menuSelection.text = "You selected: " + event.menuItem;
// Alert.show("fdsa",menuSelection.text);
var aux:String = event.menuItem;
var sm11:String = "subMenu11";
// Alert.show("",sm11);
var sm12:String = "subMenu12";
// Alert.show("",sm12);
if( aux == sm11 ){
//Alert.show("Sub Menu11","4");
f1.unloadModule();
f1.url = "Formulario1.swf";
f1.loadModule();
}else if( aux == sm12 ){
//Alert.show("Sub Menu12","56");
f1.unloadModule();
f1.url = "Formulario2.swf";
f1.loadModule();
}
}
]]>
</fx:Script>
<fx:Style source="Menu.css"/>
<s:VGroup horizontalAlign="center" >
<s:Label id="titulo" text="FORMULARIO DE INGRESO DATOS PROYECTO" />
<s:HGroup height="351" width="416" x="-5">
<s:VGroup width="242" height="342">
<local:VerticalMenu1 id="menu" menuItemSelected="menuItemSelectedHandler(event)" />
<s:Label id="menuSelection" />
</s:VGroup>
<mx:ModuleLoader id="f1" />
</s:HGroup>
</s:VGroup>
</mx:Module>
Formulario1.mxml<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="352" height="314" backgroundColor="#444444" >
<fx:Script>
<![CDATA[
import flash.events.MouseEvent;
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.events.ValidationResultEvent;
import mx.validators.Validator;
private var arrayValidators:Array;
private var result:ValidationResultEvent;
private function appCreationCompleteHandler(event:FlexEvent):void
{
arrayValidators = [string_val,age_val,score_val,phone_val,mail_val];
}
private function sendForm(event:MouseEvent):void
{
Alert.show('Estamos en el modulo evento','Entro');
var arrayResult:Array = Validator.validateAll(arrayValidators);
if(arrayResult.length == 0)
{
Alert.show("Tus datos han sido enviados con éxito","Formulario validado");
}else{
Alert.show("Revisa los campos del formulario, hay datos incorrectos");
}
}
protected function resetForm(event:MouseEvent):void
{
name_ti.text = "";
name_ti.errorString = "";
age_ti.text = "";
age_ti.errorString = "";
score_ti.text = "";
score_ti.errorString = "";
phone_ti.text = "";
phone_ti.errorString = "";
mail_ti.text = "";
mail_ti.errorString = "";
}
]]>
</fx:Script>
<fx:Declarations>
<mx:StringValidator id="string_val"
source="{name_ti}"
property="text"
required="true"
requiredFieldError="Debes introducir un apodo para enviar el formulario"
minLength="6"
tooShortError="El apodo debe tener, como mínimo, 6 caracteres"
maxLength="10"
tooLongError="El apodo debe tener, como máximo, 10 caracteres" />
<mx:NumberValidator id="age_val"
source="{age_ti}"
property="text"
required="false"
domain="int"
invalidCharError="Debes introducir tu edad en número"
allowNegative="false"
negativeError="La edad no puede ser un número negativo, lógicamente"
minValue="13"
lowerThanMinError="Debes tener como mínimo 13 años"
maxValue="130"
exceedsMaxError="No hay nadie tan mayor en el mundo"/>
<mx:NumberValidator id="score_val"
source="{score_ti}"
property="text"
required="false"
domain="real"
thousandsSeparator=","
separationError="Se aceptan puntuaciones con el siguiente formato, p.e: 10,000.50"
decimalSeparator="."
decimalPointCountError="Debes separar los decimales con punto. P.e: 10,000.50"
minValue="0"
lowerThanMinError="La puntuación mínima es de 0"
maxValue="13000"
exceedsMaxError="La puntuación máxima es de 13000"
invalidCharError="Escribe la puntuación en número"
invalidFormatCharsError="El formato válido para la puntuación, p.e: 10,000.50"/>
<mx:PhoneNumberValidator id="phone_val"
source="{phone_ti}"
property="text"
required="false"
allowedFormatChars="."
invalidCharError="Debes introducir tu número de móvil"
minDigits="9"
wrongLengthError="El número no tiene 9 dígitos"/>
<mx:EmailValidator id="mail_val"
source="{mail_ti}"
property="text"
required="true"
requiredFieldError="Debes introducir una dirección de correo para enviar el formulario"
invalidCharError="El formato no es correcto. P.e:
[email protected]. También: nombre@[IP]"
invalidDomainError="El dominio no existe"
invalidIPDomainError="La IP del dominio no es válida"
missingAtSignError="La dirección no es válida, no incluye el catacter @"
tooManyAtSignsError="Hay más de un caracter @"
missingUsernameError="No se ha proporcionado un nombre para el dominio"
invalidPeriodsInDomainError="El dominio debe estar separado por un solo punto"
missingPeriodInDomainError="No hay puntito"/>
</fx:Declarations>
<s:BorderContainer width="352" color="0x444444" backgroundColor="#444444">
<s:layout>
<s:VerticalLayout paddingTop="10" paddingRight="10"
paddingBottom="10" paddingLeft="10"/>
</s:layout>
<s:Label fontWeight="bold" width="327" textAlign="center" color="#FFFFFF" verticalAlign="middle" text="StringValidator, NumberValidator, PhoneNumberValidator, EmailValidator" height="58"/>
<mx:Form width="327">
<mx:FormItem label="Apodo *: " color="#FFFFFF" width="295">
<mx:TextInput id="name_ti" height="25"/>
</mx:FormItem>
<mx:FormItem label="Edad: " color="#FFFFFF" width="295">
<s:TextInput id="age_ti" width="160" height="25"/>
</mx:FormItem>
<mx:FormItem label="Última puntuación: " color="#FFFFFF" width="295">
<s:TextInput id="score_ti" height="25" width="160"/>
</mx:FormItem>
<mx:FormItem label="Teléfono móvil: " color="#FFFFFF" width="295">
<s:TextInput id="phone_ti" width="160" height="25"/>
</mx:FormItem>
<mx:FormItem label="E-mail *: " color="#FFFFFF" width="295">
<s:TextInput id="mail_ti" width="160" height="25"/>
</mx:FormItem>
</mx:Form>
<s:HGroup horizontalAlign="center" width="100%">
<s:Button id="reset_bt"
label="Borrar Datos"
click="resetForm(event)" chromeColor="#331E1E" color="#220404" ligatureLevel="exotic"/>
<s:Button id="submit_bt"
label="Enviar"
click="sendForm(event)" chromeColor="#331E1E" color="#220404"/>
</s:HGroup>
</s:BorderContainer>
</mx:Module>
bueno eso, la idea es que Principal hace un moduloloader hacia Paso1, y luego Paso 1 hace un moduloLeader hacia formulario, lo que pasa es que si paso1 fuera la clase principal con su respectivo codigo que se adjunto, este funciona de maravillas.
Saludos, espero que me ayuden.