Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2009, 19:18
anikilatorbeta
 
Fecha de Ingreso: enero-2009
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Exclamación Optimizar rendimiento de un proyecto flex

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>