LOAD TXT PARA SCROLL (Y COMO BOTON)
3 seguidores
Hola al grupo,
Quiero hacer lo siguiente.
Necesito cargar en flash, un listado de provincias (o estados) desde un txt.
Este list del .txt va dentro de un scroll y cada linea del list, a la vez debe ser un botón. Por lo tanto ese boton debe tener un link y poder cambiar al menos el color de font cuando me posiciono sobre él.
halgo complicado no?
alguien me puede ayudar como hacerlo o decirme donde puedo obtener info de como hacerlo..
gracias!
desmond_dekker
Vale, no es complicado
El txt le cargas de modo normal, y los datos los colocas en un campo de texto de tipo HTML. Después con ASFUNCTION, llamas a la función.
Pasos:->
Si el txt, luego vas a hacer separacion por línea como me parece entender del mensaje, en cada línea, al final pon un elemento que te sirvaa de separador, yo suelo usar el símbolo | ( esto lo hago cuando cargo un php, supongo que para txt sirva igual )
Ejemplo del txt:
esta es mi primera linea | esta es mi segunda linea | esta es mi tercera linea | y esta la ultima |
De este modo cuando cargues los datos al flash, los puedes meter en un array usando split, que lo que te hace es convertir una cadena en un array en función del símbolo que le indiques, asi una vez cargado los datos tendrias un array del tipo:
miarray[0]=>esta es mi primera linea
miarray[1]=>esta es mi segunda linea
miarray[2]=>esta es mi tercera linea
miarray[3]=>y esta la última
y una vez tienes esto
for(var i=0;i<miarray.length;i++){
micampodetextoHtML+="<a href=asfunction:Link(arg)>"+miarray[i]+"<br>";
}
function Link(arg){
hacer lo que sea
}
ojo, en el campo de texto donde he hecho la llamada a la función
<a href=asfunction:Link(arg)> no recuerdo exáctamente la sintaxis, hace mucho que no lo hago, miras en el manual si los dos puntos van antes de Link ( o el nombre que le des a la función ) o antes de asfunction o..
pero de este modo te funciona correctamente
_jmrcs
** q alguien ponga ese codigo dentro de etiquetas "code"... plis **
saludos ;)
desmond_dekker
Dame un ratillo que busco los códigos de la vez en que lo usé y te los pongo.
desmond_dekker
Vale, te pongo los códigos.
en este caso se trataba de cargar un php que lo que hacía era enviar datos para un sistema de noticias.
El formato en que venía era algo así como
&id=id1|id2|id3|&titulares=titular1|titular2|titular3|&fecha=fecha1|fecha2|fecha3|&noticia=noticia1|noticia2|noticia3|
es decir la noticia1, tenía el id1, su titular era el titular1, la fecha era la fecha1 y el cuerpo de la noticia era noticia1.
Vale, entendido esto, el resto se ve por sí solo
Creo las variables
<code>
var variables=new LoadVars();
variables.id="";
variables.fecha="";
variables.titulo_es="";//_es es que era la versión en español
variables.texto_es="";
//creo los arrays donde meteré los valores recibidos
var ids=new Array();
var fechas=new Array();
var titespanol=new Array();
var txtespanol=new Array();
variables.onLoad=function(succes){
if(succes){
//Si carga bien los datos ( succes ) meto los valores en el array correspondiente
ids=this.id.split("|");
fechas=this.fecha.split("|");
titespanol=this.titulo_es.split("|");
txtespanol=this.texto_es.split("|");
//Coloco los datos en el campo de texto de tipo html
for ( var k=0;k<ids.length-1;k++){
campotitulares.htmlText+="<AHREF='asfunction:Link,"+k+"'>"+titespanol[k]+"</a>";//ves como llamo a la función Link pasándole de parámetro
el índice
campotitulares.htmlText+="~~~";
campotitulares.htmlText+="<br>";
campotitulares.setTextFormat(formatodeTexto1);
//Los campos de texto HTML en flash tienen un bug, y aunque hayas establecido el formato previamente, tienes que hacerlo otra vez al meter datos
}//for
}//if success
else{// si no lee los datos
campocont.text+="No se pudo leer de la base de datos";
}//else
}//onLoad
//Cargas los datos
variables.load("get_news.php");
//Hacer que aparezca en el campo de la derecha ( campocont ) el texto que nos interesa. En tu caso haces lo que quieras, llamar a una web
function Link(k){
campocont.text="";
textoayuda_mc._visible=false;
//_root.campocont.text+=" y a continuación:";
campocont.text+=txtespanol[k];
//trace("el argumento es: "+k + "jola");
//trace("el valor es: "+_root.txtespanol[k]);
}
espero que te sea facil adaptarlo a lo tuyo y te ayude
</code>