Foros del Web » Creando para Internet » Flash y Actionscript »

combobox dependiente...aportando y preguntando

Estas en el tema de combobox dependiente...aportando y preguntando en el foro de Flash y Actionscript en Foros del Web. Hola a todos, estoy avanzando con mi problema de los combobox dependientes, pero aun tengo unas dudas. Este codigo, trabaja con combobox dependeintes, pero el ...
  #1 (permalink)  
Antiguo 13/06/2005, 12:45
Avatar de wontolla  
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 15 años, 8 meses
Puntos: 1
combobox dependiente...aportando y preguntando

Hola a todos, estoy avanzando con mi problema de los combobox dependientes, pero aun tengo unas dudas.

Este codigo, trabaja con combobox dependeintes, pero el principal hay que llenarlo directamente en sus propiedades, el secundario jala los datos de unos array ya creados:

carArray = new Array("Chrysler","Porche","Mazda","Toyota");
foodArray = new Array("Hamburger","Hotdog","Pizza");
drinkArray = new Array("Water","Beer","Wine","Martini");

function setSubCombo() {
sub_cb.removeAll();
var subArray = eval(main_cb.getSelectedItem().data);
trace(subArray);
for(var i=0; i<subArray.length; i++) {
sub_cb.addItem(subArray[i],subArray[i]);
}
}


Estoy tratado de llenar el array principal desde un archivo de texto, asi:

mm=new LoadVars();
mm.load("texto.txt");
mm.onLoad=function(){
lab=this.empre.split(",");
dat=this.valor.split(",");
for (i=0; i<lab.length; i++){
main_cb.addItem(lab[i],dat[i]);
}

function setSubCombo() {
sub_cb.removeAll();
var subArray = eval(main_cb.getSelectedItem().data);
trace(subArray);

// for(var i=0; i<subArray.length; i++) {
// sub_cb.addItem(subArray[i],subArray[i]);
}

Los arrays para llenar el combo secundario tambien los estoy llenando con archivo de txt, pero ya no llama de acuerdo con la seleccion del primario.

Al parecer el problema es que no pasan los valores de las variables entre funciones, ya trate con variables globales pero tampoco funciona....¿alguna sugerencia?.

Gracias de antemano.
__________________
El hombre no domina a la montaña, debe derrotarse a si mismo y alcanzar la cumbre.
  #2 (permalink)  
Antiguo 13/06/2005, 17:06
Avatar de wontolla  
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 15 años, 8 meses
Puntos: 1
¿Que hay? ¿no me digan que no hay nadie que le sepa a este tipo de detalles?
¿Donde anda el maestrazo MALTOS?

Por fa, ayudenme, ya estoy aportando algo. No es una pregunta estéril o de que quiera que me hagan el trabajo.
__________________
El hombre no domina a la montaña, debe derrotarse a si mismo y alcanzar la cumbre.
  #3 (permalink)  
Antiguo 13/06/2005, 18:11
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 15 años, 11 meses
Puntos: 193
prueba con algo asi:

Usando los componentes del Flash MX. (no Flash MX 2004)

Código:
//-----------------------------------
//Simulando los Datos del TXT
txtLabel = "Autos,Comida,Bebida";
txtData = "0,1,2";
//-----------------------------------
car = ["Chrysler", "Porche", "Mazda", "Toyota"];
food = ["Hamburger", "Hotdog", "Pizza"];
drink = ["Water", "Beer", "Wine", "Martini"];
infoGlobal = [car, food, drink];
function setUno() {
	uno_cb.setChangeHandler("setDos");
	dos_cb.setChangeHandler("lanza");
	//Cambia txtLabel y txtData por this.variableDelTXT
	labels = txtLabel.split(",");
	datas = txtData.split(",");
	for (a=0; a<labels.length; a++) {
		uno_cb.addItem(labels[a], datas[a]);
	}
}
function setDos(component) {
	var data = component.getSelectedItem().data;
	dos_cb.removeAll();
	dos_cb.setDataProvider(infoGlobal[data]);
}
function lanza(component) {
	var label = component.getSelectedItem().label;
	trace("Escogio "+label);
}
//-----------
//Se asigna esta funcion al onLoad del LoadVars
//obj.onLoad = setUno();
setUno();
Obviamente, necesitas dos combobox llamados uno_cb y dos_cb
  #4 (permalink)  
Antiguo 16/06/2005, 09:50
Avatar de wontolla  
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 15 años, 8 meses
Puntos: 1
ok lo voy a probar adaptando la carga desde, txt a ver que sale.

Gracias, ojala que todavia andes por ahi,
__________________
El hombre no domina a la montaña, debe derrotarse a si mismo y alcanzar la cumbre.
  #5 (permalink)  
Antiguo 16/06/2005, 10:50
Avatar de wontolla  
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 15 años, 8 meses
Puntos: 1
No funcionó.
Hice los cambios que amablemente me indicaste y los marco en azul

//-----------------------------------
//Simulando los Datos del TXT
txtLabel = "Autos,Comida,Bebida";
txtData = "0,1,2";
//-----------------------------------
car = ["Chrysler", "Porche", "Mazda", "Toyota"];
food = ["Hamburger", "Hotdog", "Pizza"];
drink = ["Water", "Beer", "Wine", "Martini"];
infoGlobal = [car, food, drink];

function setUno() {
uno_cb.setChangeHandler("setDos");
dos_cb.setChangeHandler("lanza");
//Cambia txtLabel y txtData por this.variableDelTXT
labels = this.empre.split(",");
datas = this.valor.split(",");
for (a=0; a<labels.length; a++) {
uno_cb.addItem(labels[a], datas[a]);
}
// este es un experimento
clip = this.createEmptyMovieClip("venta",1);
clip._x = 1;
clip._y = 1;
clip.loadMovie("atos.jpg");

}
function setDos(component) {
var data = component.getSelectedItem().data;
dos_cb.removeAll();
dos_cb.setDataProvider(infoGlobal[data]);
}
function lanza(component) {
var label = component.getSelectedItem().label;
trace("Escogio "+label);
}
//-----------
//Se asigna esta funcion al onLoad del LoadVars
//obj.onLoad = setUno();

mm=new LoadVars();
mm.load("texto.txt");
mm.onLoad=setUno();


Segun parece si llama y entra a la funcion, pero no carga los datos.
¿estoy haciendo algo mal?.
__________________
El hombre no domina a la montaña, debe derrotarse a si mismo y alcanzar la cumbre.
  #6 (permalink)  
Antiguo 16/06/2005, 15:07
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 15 años, 11 meses
Puntos: 193
Código:
mm.onLoad=setUno;
sin los parentesis
  #7 (permalink)  
Antiguo 17/06/2005, 08:53
Avatar de wontolla  
Fecha de Ingreso: abril-2002
Mensajes: 137
Antigüedad: 15 años, 8 meses
Puntos: 1
Si, ya intente eso...pero no obtengo nada en el combo secundario.

Otra pregunta, en las lineas que marque como "experimento", estoy jalando una imagen para mostrarla en la pelicula. Lo curioso del caso es que si funcionaba antes de colocar las lineas finales del codigo, es decir, en onLoad y las otras. Ya con esas lineas incorporadas ya no funciona, es decir, ya no jala la imagen.

¿porque pasa esto?
__________________
El hombre no domina a la montaña, debe derrotarse a si mismo y alcanzar la cumbre.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:53.