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

Componente list en flash8

Estas en el tema de Componente list en flash8 en el foro de Flash y Actionscript en Foros del Web. Saludos listeros: Hace unos meses (7) vengo trabajando con el Flash8 Professional, realizando una multimedia, en la que quiero hacer una lista desplegable con el ...
  #1 (permalink)  
Antiguo 24/05/2011, 07:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Componente list en flash8

Saludos listeros:
Hace unos meses (7) vengo trabajando con el Flash8 Professional, realizando una multimedia, en la que quiero hacer una lista desplegable con el compnente List que trae el flash. Hasta aqui todo ok, buscando en google encontre como llenar la lista desde un archivo XML, e incluso logré hacer que cuando seleccione un elemento de la lista me llame a un archivo swf, hasta aqui todo bien amigos.

Donde tengo dudas es para lo siguiente:

- Quiero que cuando llame al archivo SWF mediante la selección en la lista, pasar tres variables (titulo, contenido y src) al mismo desde la película principal, estas variables almacenarán datos alojados en el mismo archivo XML que utilizo para llenar el componente List y serán utilizadas en el archivo SWF cargado.

Nota: el archivo SWF contiene tres elementos, dos campos de textos y un botón.
campo de texto 1 = variable 1 (titulo)
campo de texto 2 = variable 2 (contenido)
botón = variable 3 (src)

Espero se me entienda hasta aqui.

este es el archivo XML
Código:
<?xml version="1.0" enAoding="iso-8859-1"?>
<letra id="A">
	<palabra titulo="Aspectos económicos del desastre (Programa de Entrenamiento para el manejo de Desastres)" src="001.swf" contenido="La idea de la Ecología Pública ha emergido recientemente en respuesta al gran incremento en las disparidades sobre la percepción de las preocupaciones políticas, sociales y medioambientales." />
	<palabra titulo="Desastres y desarrollo (Programa de Entrenamiento para el manejo de Desastres)" src="002.swf" contenido="De particular interés son los procesos que generan, evalúan y aplican conocimientos en áreas políticas, sociales y medioambientales."/>
	<palabra titulo="Desastres y medio ambiente (Programa de Entrenamiento para el manejo de Desastres)" src="003.swf" contenido="La ecología pública ofrece la forma de enmarcar problemas de sostenibilidad, dinámicas en comunidades y preocupaciones sociales, fauna, flora y todo aquello que sea parte de la calidad ambiental y sean bienes públicos. Los procesos tratan de descubrir y acordar el significado de estos bienes para poder realizar a partir de ellos decisiones y acciones de dominio público."/>
	<palabra titulo="Evaluación de desastres (Programa de Entrenamiento para el manejo de Desastres)" src="004.swf" contenido="Adelantar programas intensos y continuos de concienciación y educación ambientales: programar actividades permanentes de concienciación ambiental."/>
	<palabra titulo="Introducción a las amenazas (Programa de Entrenamiento para el manejo de Desastres)" src="005.swf" contenido="Construir ambientes urbanos amables y estéticos: la ecología urbana, la ciudad para vivir con respeto y normas de control del medio ambiente urbano."/>
</letra>
este es el codigo de la pelicula principal

Cita:
fscommand("showmenu", false);
fscommand("allowscale", false);
fscommand("fullscreen", true);
stop();
cerrar.onRelease = function() {
_root.btn_servicios.regresar._visible = true;
_root.contenedor.unloadMovie();
};
//Cargamos el XML
listado = new XML();
listado.ignoreWhite = true;
//Permite caracteres tradicionales como letras con tilde la ñ, etc.
System.useCodepage = true;
listado.onLoad = function(success) {
if (success) {
//Shortcuts
letra = listado.firstChild;
num_total = listado.firstChild.childNodes.length;
//titulo = "Esta es la variable TITULO de INF_BASICAS";
//Creamos y llenamos la lista
crearLista();
} else {
trace("No se pudo cargar la lista de listado");
}
};
listado.load("inf_basicas.xml");

///////////////////////////////////////////////////////////////////
/////////////////////////// FUNCIONES ///////////////////////////
///////////////////////////////////////////////////////////////////
function crearLista() {
//Posicionamos la lista de las listado
lista.setSize(787, 314);
//Llenamos la lista con las listado
misDatos = new Array();
lista.dataProvider = misDatos;
for (var i = 0; i<num_total; i++) {
//(para las primeras lineas del xml label:letra.childNodes[i].firstChild.firstChild.nodeValue)
//si se quiere acceder a la segunda lista solo debes agregar (nextSibling) firstChild.nextSibling.firstChild
misDatos.addItem({label:letra.childNodes[i].attributes.titulo, data:letra.childNodes[i].attributes.src});
}
//Ordenamos los datos
misDatos.sortItemsBy("label", "ASC");
}

function envia(){
//declaro las variables
titulo = new Array();
contenido = new Array();
archivo = new Array();
//cargamos los datos
for (var k = 0; k<num_total; k++) {
titulo = letra.childNodes[k].attributes.titulo;
contenido = letra.childNodes[k].attributes.contenido;
archivo = letra.childNodes[k].attributes.src;
}
}

var alCambiar:Object = new Object();
alCambiar.change = function(evt_obj:Object) {
// Your code here.
trace("Value changed to: "+evt_obj.target.value);
if (evt_obj.target.value != null) {
changeFunct(lista.selectedItem);
envia();
}
};

//Listener
lista.addEventListener("change", alCambiar);

function changeFunct(item) {
clip_mc = this.createEmptyMovieClip("contenedor", 3);
clip_mc.loadMovie("carga.swf");
this.onEnterFrame = function() {
if (clip_mc.getBytesLoaded() != 0 && clip_mc.getBytesLoaded() == clip_mc.getBytesTotal()) {
trace("cargo");
//aquí va el número del frame dode se quiere ir
clip_mc.gotoAndPlay("carga");
delete this.onEnterFrame;

}
};
}
Este es el codigo del archivo SWF cargado

Cita:
stop();
cerrar2.onRelease = function (){
_root.contenedor.unloadMovie("carga.swf");
}
mensaje2_txt.htmlText = "<p align='justify'><font color='#000000' size='12'>" + _root.contenido + "</font></p>";
titulo_txt.htmlText = "<p align='justify'><font color='#000000' size='12'>" + _root.titulo + "</font></p>";
Espero que se entienda lo que he escrito, muchas gracias de ante mano por la ayuda que me puedan brindar.
  #2 (permalink)  
Antiguo 24/05/2011, 12:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Componente list en flash8

Saludos nuevamente, ya encontre la solución
hice lo siguiente:

1ro: Quite la función "envia" ya que me percate que no cumple ninguna función.

2do: agrege una propiedad mas al Item cuando se crea lista.
Codigo anterior
Cita:
misDatos.addItem({label:letra.childNodes[i].attributes.titulo, data:letra.childNodes[i].attributes.src});
Codigo arreglado
Cita:
misDatos.addItem({label:letra.childNodes[i].attributes.titulo, data:letra.childNodes[i].attributes.contenido, src:letra.childNodes[i].attributes.src});
3ro: Agregue tres variables a la hora de hacer click en una item de la lista.
Codigo anterior
Cita:
var alCambiar:Object = new Object();
alCambiar.change = function(evt_obj:Object) {
// Your code here.
trace("Value changed to: "+evt_obj.target.value);
if (evt_obj.target.value != null) {
changeFunct(lista.selectedItem);
envia();
}
};
Codigo arreglado
Cita:
var alCambiar:Object = new Object();
alCambiar.change = function(evt_obj:Object) {
// Your code here.
trace("Value changed to: "+evt_obj.target.value);
if (evt_obj.target.value != null) {
changeFunct(lista.selectedItem);
//envia();
titulo = lista.selectedItem.label;
contenido = lista.selectedItem.data;
archivo = lista.selectedItem.src;
}
};
y listo con esto ya logré lo que queria, que al seleccionar un item de la lista me envie al SWF cargado las tres variables con sus respectivos datos para poder utilizarlas en él.

Muchas gracias por los que visitaron aunque no dejaron sugerencias.

Etiquetas: componente, list, flash
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 17:18.