La idea basica es que tengo una serie de paises, cada pais tiene una serie de provincias y cada privincia tiene ciudades, para cada ciudad he asignado un precio.
Gracias a unos ejemplos he logrado me funcione el llamado de lo primero (los 3 combobox) pero no del precio que esta amarrado a la seleccion de la ciudad.
la estructutra de mi XML es la siguiente:
-----------------------------------------------------------------------------------------------
<paises>
<pais label="pais"></pais>
<pais label="PAIS-UNO">
<provincia label="PROVINCIA-A">
<ciudad label="CIUDAD-1A" precio="123"/>
<ciudad label="CIUDAD-2A" precio="456"/>
</provincia>
<provincia label=" PROVINCIA-B ">
<ciudad label=" CIUDAD-1B" precio ="789"/>
</provincia>
<provincia label=" PROVINCIA-C ">
<ciudad label=" CIUDAD-1C" precio="567"/>
</provincia>
</pais>
<pais label=" PAIS-DOS">
<provincia label=" PROVINCIA-1">
<ciudad label=" CIUDAD-A1 " precio="654"/>
<ciudad label=" CIUDAD-A2 " precio="321"/>
</provincia>
<provincia label=" PROVINCIA-2">
<ciudad label=" CIUDAD-B1" precio="765"/>
<ciudad label=" CIUDAD-B2 " precio="432"/>
</provincia>
</pais>
</paises>
---------------------------------------------------------------------------------------------------------
*********************************************************************************************************
Y el codigo en AS2 que estoy usando es el siguiente:
**********************************************************************************************************
------------------------------------------------------------------------------------------------------------
var la_lista:XML = new XML();
la_lista.ignoreWhite = true;
la_lista.onLoad = function(ok){
if(ok) mostrar_paises(this.firstChild.childNodes);
}
la_lista.load('lista/mibd/la_lista0.xml');
//------------------------------------------------------------------------------->
var mostrar_paises:Function = function(lista_paises:Array):Void{
var proveedor:Array = new Array();
combo1.dataProvider = proveedor;
proveedor.addItem({label:'- país -',data:'cuno'});
for(n=0;n<lista_paises.length;n++){
proveedor.addItem({label:lista_paises[n].attributes['nombre'],data:n});
}
}
//------------------------------------------------------------------------------------------------------->
var mostrar_provincias:Function = function(posicion_pais:Number):Void{
var lista_provincias:Array = la_lista.firstChild.childNodes[posicion_pais].childNodes;
var proveedor:Array = new Array();
combo2.dataProvider = proveedor;
proveedor.addItem({label:'- provincia -',data:'cdos'});
for(n=0;n<lista_provincias.length;n++){
proveedor.addItem({label:lista_provincias[n].attributes['nombre'],data:n});
}
valores = combo1.getSelectedItem().data;
}
//------------------------------------------------------------------------------------------->
var mostrar_ciudades:Function = function(posicion_pais:Number,posicion_provincia:Number):Void{
var lista_ciudades:Array = la_lista.firstChild.childNodes[posicion_pais].childNodes[posicion_provincia].childNodes;
var proveedor:Array = new Array();
combo3.dataProvider = proveedor;
proveedor.addItem({label:'- ciudad -',data:'ctres'});
for(n=0;n<lista_ciudades.length;n++){
proveedor.addItem({label:lista_ciudades[n].attributes['nombre'],data:n});
}
}
//------------------------------------------------------------------------------------------------->
var alSeleccionarPais:Object = new Object();
alSeleccionarPais.change = function(referencia){
precio.removeAll();
combo2.removeAll();
combo3.removeAll();
if(referencia.target.value != '') mostrar_provincias(referencia.target.value);
}
var alSeleccionarProvincia:Object = new Object();
alSeleccionarProvincia.change = function(referencia){
precio.removeAll();
combo3.removeAll();
if(referencia.target.value != '') mostrar_ciudades(combo1.value,referencia.target.value);
}
var alSeleccionarCiudad:Object = new Object();
alSeleccionarCiudad.change = function(referencia){
if(referencia.target.value != '') mostrar_precio(combo2.value,referencia.target.value);
}
combo1.addEventListener('change',alSeleccionarPais);
combo2.addEventListener('change',alSeleccionarProvincia);
combo3.addEventListener('change',alSeleccionarCiudad);
combo3.dataProvider = miDataProvider;
stop();
-----------------------------------------------------------------------------------------------------------------------------------------
Intente seguir la estructura para cargar el precio en la caja de texto pero no funciona, luego note que no era void lo que debia ocupar sino un string.
Entonces quedaria similar a la siguiente linea:
var mostrar_precio:Function = function(nombre_pais:String,nombre_provincia:String,nombre_ciudad:String):String{
Pero al hacer esto me da error y no me carga lo que hasta el momento me funciona.. Sera que lo estoy haciendo mal?
Como puedo hacer para cargar el valor precio que corresponde a cada ciudad?
Watson.