hola amigos necesito optimizar el siguiente codigo
lo q pasa q cumple su funcion pero come demaciado procesador cuando es una cantidad muy grande de usuarios y el problema q lo necesito para una cantidad grande me pueden decir como corregir eso aqui les dejo el link para q lo vean funcionando y el codigo xau
http://www.reflexpro.cl/freddy/exp_fase_01.html
Código:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#632626, #632626]" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.ComboBox;
import mx.controls.Label;
import mx.containers.FormItem;
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
import mx.controls.Button;
import mx.controls.TextInput;
private var ar_grupos:Array;
private var ar_sub_grupos:Array;
private var ar_lista:ArrayCollection=new ArrayCollection;
private function init_layer_grup():void{
//carga de text input grupos
for(var a:int=0;a<parseInt(num_grupos.text);a++)
{
var tem_num:int=a+1;
var tem_formitem:FormItem=new FormItem();
var tem_texinput:TextInput=new TextInput();
tem_formitem.name="form_grupos_"+a;
tem_formitem.label="Grupos "+tem_num;
tem_texinput.name="txt_grupos_"+a;
tem_formitem.addChild(tem_texinput);
layer_grupos.addChild(tem_formitem);
}
//carga de text inut sub grupos
for(var a:int=0;a<parseInt(num_sub_grupos.text);a++)
{
var tem_num:int=a+1;
var tem_formitem:FormItem=new FormItem();
var tem_texinput:TextInput=new TextInput();
tem_formitem.name="form_sub_grupos_"+a;
tem_formitem.label="Sub Grupos "+tem_num;
tem_texinput.name="txt_sub_grupos_"+a;
tem_formitem.addChild(tem_texinput);
layer_sub_grupos.addChild(tem_formitem);
}
}
private function init_layer_usuarios():void{
//llenado combobox grupos
ar_grupos=[];
for(var a:int=0;a<parseInt(num_grupos.text);a++){
var tem_formitem:FormItem=new FormItem();
var tem_texinput:TextInput=new TextInput();
tem_formitem= layer_grupos.getChildByName("form_grupos_"+a)as FormItem;
tem_texinput= tem_formitem.getChildByName("txt_grupos_"+a)as TextInput;
ar_grupos.push({label:tem_texinput.text});
}
//llenado combobox sub grupos
ar_sub_grupos=[];
for(var a:int=0;a<parseInt(num_sub_grupos.text);a++){
var tem_formitem:FormItem=new FormItem();
var tem_texinput:TextInput=new TextInput();
tem_formitem= layer_sub_grupos.getChildByName("form_sub_grupos_"+a)as FormItem;
tem_texinput= tem_formitem.getChildByName("txt_sub_grupos_"+a)as TextInput;
ar_sub_grupos.push({label:tem_texinput.text});
}
//llenado de usuarios
var y:int=0;
for(var a:int=0;a<parseInt(num_usuarios.text);a++){
var tem_num:int=a+1;
//ini label
var tem_label:Label=new Label();
tem_label.text="Usuario "+tem_num+":";
tem_label.move(10,y);
layer_usuarios.addChild(tem_label);
//fin label
//ini textinput
var tem_texinput:TextInput=new TextInput();
tem_texinput.name="usuario_"+a
tem_texinput.move(80,y);
layer_usuarios.addChild(tem_texinput);
//fin textinput
//ini combobox grupos
var tem_combobox_grupos:ComboBox=new ComboBox();
tem_combobox_grupos.name="grupos_"+a;
tem_combobox_grupos.dataProvider=ar_grupos;
tem_combobox_grupos.move(250,y);
layer_usuarios.addChild(tem_combobox_grupos);
//fin combobox grupos
//ini combobox sub grupos
var tem_combobox_sub_grupos:ComboBox=new ComboBox();
tem_combobox_sub_grupos.name="sub_grupos_"+a;
tem_combobox_sub_grupos.dataProvider=ar_sub_grupos;
tem_combobox_sub_grupos.move(420,y);
layer_usuarios.addChild(tem_combobox_sub_grupos);
//fin combobox sub grupos
y=y+30;
}
}
private function init_layer_listado():void{
for(var a:int=0;a<parseInt(num_usuarios.text);a++){
//sacar datos nombre usuario
var tem_texinput:TextInput=new TextInput();
tem_texinput=layer_usuarios.getChildByName("usuario_"+a)as TextInput;
//sacar datos grupo
var tem_combo_grupo:ComboBox=new ComboBox();
tem_combo_grupo=layer_usuarios.getChildByName("grupos_"+a)as ComboBox;
//sacar datos sub grupos
var tem_combo_sub_grupo:ComboBox=new ComboBox();
tem_combo_sub_grupo=layer_usuarios.getChildByName("sub_grupos_"+a)as ComboBox;
//traspaso a array collection
ar_lista.addItem({usuario:tem_texinput.text, grupo:tem_combo_grupo.selectedLabel, sub_grupo:tem_combo_sub_grupo.selectedLabel});
}
data_lista.dataProvider=ar_lista;
}
private function validar_user():void{
layer_con.selectedIndex=3;
}
private function validar_grup():void{
layer_con.selectedIndex=2;
}
private function validarcantidades():void{
var validar_usuarios:ValidationResultEvent=validar_usuarios.validate();
var validar_grupos:ValidationResultEvent=validar_grupos.validate();
var validar_sub_grupos:ValidationResultEvent=validar_sub_grupos.validate();
if(validar_usuarios.type == ValidationResultEvent.VALID && validar_grupos.type == ValidationResultEvent.VALID && validar_sub_grupos.type == ValidationResultEvent.VALID)
{
layer_con.selectedIndex=1;
}else{
Alert.show("Faltan Datos Por Ingresar");
}
}
]]>
</mx:Script>
<mx:StringValidator source="{num_usuarios}" property="text" requiredFieldError="Complete Cantidad de Usuarios"
trigger="{btn_can}" triggerEvent="click" id="validar_usuarios"/>
<mx:StringValidator source="{num_grupos}" property="text" requiredFieldError="Complete Cantidad de Grupos"
trigger="{btn_can}" triggerEvent="click" id="validar_grupos" />
<mx:StringValidator source="{num_sub_grupos}" property="text" requiredFieldError="Complete Cantidad de Sub Grupos"
trigger="{btn_can}" triggerEvent="click" id="validar_sub_grupos"/>
<mx:TabNavigator width="685" height="544" horizontalCenter="0" verticalCenter="0" selectedIndex="0" id="layer_con">
<mx:Form label="Inicio" width="100%" height="100%">
<mx:FormHeading label="Cantidades"/>
<mx:FormItem label="Usuarios">
<mx:TextInput restrict="0-9" id="num_usuarios"/>
</mx:FormItem>
<mx:FormItem label="Grupos">
<mx:TextInput restrict="0-9" id="num_grupos"/>
</mx:FormItem>
<mx:FormItem label="Sub Grupos">
<mx:TextInput restrict="0-9" id="num_sub_grupos"/>
</mx:FormItem>
<mx:FormItem>
<mx:Button label="Aceptar" id="btn_can" click="validarcantidades();"/>
</mx:FormItem>
</mx:Form>
<mx:Canvas label="Grupos - Sub Grupos" width="100%" height="100%" initialize="init_layer_grup()">
<mx:Form x="0" y="0" width="341" height="462" id="layer_grupos">
<mx:FormHeading label="Grupos" textAlign="center"/>
</mx:Form>
<mx:Form x="342" y="0" width="50%" height="462" id="layer_sub_grupos">
<mx:FormHeading label="Sub Grupos" textAlign="center"/>
</mx:Form>
<mx:Button x="608" y="479" label="Aceptar" click="validar_grup();"/>
</mx:Canvas>
<mx:Canvas label="Usuarios" width="100%" height="100%" initialize="init_layer_usuarios()">
<mx:Button x="601" y="479" label="Aceptar" click="validar_user();"/>
<mx:Canvas x="0" y="27" height="444" width="683" id="layer_usuarios">
</mx:Canvas>
<mx:Label x="80" y="1" text="Nombre" fontWeight="bold" fontSize="12"/>
<mx:Label x="250" y="1" text="Grupo" fontWeight="bold" fontSize="12"/>
<mx:Label x="420" y="1" text="Sub Grupo" fontWeight="bold" fontSize="12"/>
</mx:Canvas>
<mx:Canvas label="Listado" width="100%" height="100%" initialize="init_layer_listado()">
<mx:DataGrid x="10" y="10" width="663" height="491" id="data_lista">
<mx:columns>
<mx:DataGridColumn headerText="Usuario" dataField="usuario"/>
<mx:DataGridColumn headerText="Grupo" dataField="grupo"/>
<mx:DataGridColumn headerText="Sub Grupo" dataField="sub_grupo"/>
</mx:columns>
</mx:DataGrid>
</mx:Canvas>
</mx:TabNavigator>
</mx:Application>