Ke tal amigos:
encontré en la web este lector de noticias con flash y action script, funciona correctamente pero necesito que en lugar que las noticias se muevan de arriba hacia abajo lo hagan de abajo hacia arriba, ya intenté modificarlo para que esto suceda pero no he tenido suerte. Aqui les muestro el código para ver si me pueden dar una ayuda.
Se los voy a agradecer mucho.
stop();
//Cargar XML de las noticias
noticias = new XML();
noticias.ignoreWhite = true;
noticias.onLoad = function (){
//Porcentajes y esas cosas
totalxml = noticias.getBytesTotal();
cargadoxml = noticias.getBytesLoaded();
porcentajexml = Math.round((cargadoxml/totalxml)*100);
//Si esta cargado del todo
if (porcentajexml >= 100) {
//Borramos el cargando
removeMovieClip(cargando);
//Shortcuts del XML
notis_puerto = new Array();
titulo = new Array();
urls = new Array();
//Cogemos el numero de noticias
long = noticias.firstChild.childNodes.length;
cargarCSS();
}
}
//Atacheamos y posicionamos el "cargando xml"
attachMovie("carga_xml","cargando",2);
cargando._x = 45;
cargando._y = 94;
//Atacheamos la linea de abajo del todo
attachMovie("linea","linea_abajo",5000);
linea_abajo._x = 0;
linea_abajo._y = 329;
//Atacheamos la caja de fondo
//Cargamos XML
noticias.load("noticias.xml");
/*-------------------------------------------------------------------------------*/
/*--------------------- FUNCION PARA CARGAR LA HOJA CSS --------------------*/
/*-------------------------------------------------------------------------------*/
function cargarCSS(){
//Creamos la hoja de estilo
estailo = new TextField.StyleSheet();
//Cuando este cargando...
estailo.onLoad = function(){
//Porcentajes y esas cosas
totalcss = estailo.getBytesTotal();
cargadocss = estailo.getBytesLoaded();
porcentajecss = Math.round((cargadocss/totalcss)*100);
//Si esta cargado del todo
if (porcentajecss >= 100) {
//Borramos el cargando
removeMovieClip(cargando2);
//Una vez esta cargada la CSS ya podemos saber cuantas lineas hay
//por cada caja de texto
//Creamos un clip y un campo de texto temporales
_root.createEmptyMovieClip("temp_mc", 7);
//Al campo de texto le ponemos el mismo tamaño de ancho que va a haber en
//el de verdad. Le ponemos alto 16, que es lo que mide una linea. Así
//podemos saber el número de líneas que tenemos.
temp_mc.createTextField ("notis_txt",8,-150,-20,168,16);
//Ponemos las propiedades a nuestro campo de texto nuevo
temp_mc.notis_txt.multiline = true;
temp_mc.notis_txt.wordWrap = true;
temp_mc.notis_txt.html = true;
for (i=0; i<long; i++){
//Cogemos los titulos de las noticias
titulo[i] = noticias.firstChild.childNodes[i].attributes.titulo;
//Cogemos las urls de las noticias
urls[i] = noticias.firstChild.childNodes[i].attributes.urls;
//Cogemos el texto y lo ponemos en la caja de texto temporal
temp_mc.notis_txt.htmlText = "<p class='tit'>"+titulo[i]+"</p><br><p class='txt'>"+noticias.firstChild.childNodes[i].firstChild+"</p>";
//Cogemos el numero de lineas por texto
notis_puerto[i] = temp_mc.notis_txt.maxscroll-1;
}
//Eliminamos el clip temporal
removeMovieClip(_root["temp_mc"]);
//Montamos las noticias
montarNoticias();
}
}
attachMovie("carga_css","cargando2",3);
cargando2._x = 45;
cargando2._y = 94;
estailo.load("noticias.css");
}
/*-------------------------------------------------------------------------------*/
/*--------------------- FUNCION PARA MONTAR LAS NOTICIAS -------------------*/
/*-------------------------------------------------------------------------------*/
function montarNoticias(){
par = true;
for (i=0; i<long; i++){
//Ponemos la caja
_root.attachMovie ("caja_info","caja"+i,i*10);
//Creamos el color
_root["caja"+i].colorcaja = new Color(_root["caja"+i].fondo.fondocolor);
//Le damos una altura igual a 16 por el numero de lineas que tenga
_root["caja"+i].fondo._height = 16 * notis_puerto[i];
//Pintamos la caja
if (par == true){
_root["caja"+i].colorcaja.setRGB(0xEEEEEE);
_root["caja"+i].micolor = "0xEEEEEE";
par = false;
}
else{
_root["caja"+i].colorcaja.setRGB(0xFFFFFF);
_root["caja"+i].micolor = "0xFFFFFF";
par = true;
}
//Si no existe altura, le damos 0 y asi se posiciona la primera caja
//en y=0
if (altura == undefined){
altura = 0;
}
//Si existe, le damos una altura igual, a:
//"altura acumulada" = "altura acumulada" + "altura anterior clip"
else{
altura = altura + _root["caja"+(i-1)].fondo._height;
}
//Posicionamos la caja
_root["caja"+i]._x = 0;
_root["caja"+i]._y = altura;
//Creamos la caja de texto y ponemos sus propiedades
_root["caja"+i].createTextField("texto_txt",i*37,2,1,168,16 * notis_puerto[i]);
_root["caja"+i].texto_txt.html = true;
_root["caja"+i].texto_txt.multiline = true;
_root["caja"+i].texto_txt.wordWrap = true;
_root["caja"+i].texto_txt.border = false;
_root["caja"+i].texto_txt.selectable = false;
_root["caja"+i].direc_url = urls[i];
//Atacheamos al texto la hoja CSS
_root["caja"+i].texto_txt.styleSheet = estailo;
//Ponemos el titulo
_root["caja"+i].texto_txt.htmlText = "<p class='tit'>"+titulo[i]+"</p><br>";
//Ponemos los textos de las noticias
_root["caja"+i].texto_txt.htmlText += "<p class='txt'>"+noticias.firstChild.childNodes[i].firstChild+"</p>";
}
//Mostramos la pestañita
attachMovie("pestana","pestanita",2000);
pestanita._x = 0;
pestanita._y = 0;
siguiente_y = 0;
y_arriba = 0;
//Posicionamos todos los clips por debajo de 330 sobre 0
//Empezamos por el ultimo y vamos subiendo
for (i=long; i>0; i--){
if (_root["caja"+i]._y > 330){
siguiente_y = siguiente_y - _root["caja"+i]._height + 1;
_root["caja"+i]._y = siguiente_y;
}
}
//Una vez esta todo montado movemos las noticias
moverNoticias();
}
/*-------------------------------------------------------------------------------*/
/*--------------------- FUNCION PARA MOVER LAS NOTICIAS --------------------*/
/*-------------------------------------------------------------------------------*/
function moverNoticias(){
//Si es la primera vez forzamos el movimiento, si no empiezan paradas las cajas
if (primera_vez == undefined){
//Creamos el evento y se empiezan a mover las cajas
_root.onEnterFrame = function(){
for (i=0; i<long; i++){
//Si la caja llega a abajo del todo
if (_root["caja"+i]._y > 330){
y_arriba = 0;
//Calculamos donde hay que posicionar el clip que llega abajo
for (j=0; j<long; j++){
//Todos los clips que esten por encima de 0
if (_root["caja"+j]._y < 0){
//Cogemos la posicion y que haya mas arriba
y_actual = _root["caja"+j]._y;
if (y_actual < y_arriba){
y_arriba = y_actual;
}
}
}
//Lo posicionamos arriba, siendo esta posicion:
//"y del clip actual" = "posicion del clip de mas arriba" - "altura del clip actual" + 1;
_root["caja"+i]._y = y_arriba - _root["caja"+i]._height + 1;
}
//Hacemos que vayan bajando las cajas
_root["caja"+i]._y += 1;
}
}
primera_vez = false;
}
/************************************************** *************************/
//"el_fondo" controla a cada fotograma si estamos o no encima de las noticias
el_fondo.onEnterFrame = function(){
for (i=0; i<long; i++){
//Si clicamos en la caja, vamos a la direccion "x"
_root["caja"+i].onPress = function(){
getURL (this.direc_url, "_blank");
}
//Si nos ponemos encima de la caja, eliminamos el evento y se para
_root["caja"+i].onRollOver = function(){
//Iluminar
this.colorcaja.setRGB(0xCDFBFE);
delete _root.onEnterFrame;
}
//Si nos salimos de las cajas, se empieza a mover otra vez
_root["caja"+i].onRollOut = function(){
//Pintamos la caja con el color anterior
this.colorcaja.setRGB(this.micolor);
//Creamos el evento y se empiezan a mover las cajas
_root.onEnterFrame = function(){
for (i=0; i<long; i++){
//Si la caja llega a abajo del todo
if (_root["caja"+i]._y > 330){
y_arriba = 0;
//Calculamos donde hay que posicionar el clip que llega abajo
for (j=0; j<long; j++){
//Todos los clips que esten por encima de 0
if (_root["caja"+j]._y < 0){
//Cogemos la posicion y que haya mas arriba
y_actual = _root["caja"+j]._y;
if (y_actual < y_arriba){
y_arriba = y_actual;
}
}
}
//Lo posicionamos arriba, siendo esta posicion:
//"y del clip actual" = "posicion del clip de mas arriba" - "altura del clip actual" + 1;
_root["caja"+i]._y = y_arriba - _root["caja"+i]._height + 1;
}
//Hacemos que vayan bajando las cajas
_root["caja"+i]._y += 1;
}
}
}
}
}
}