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

Problemas con Noticias Flash con xml

Estas en el tema de Problemas con Noticias Flash con xml en el foro de Flash y Actionscript en Foros del Web. Hola.. quería hacer una consulta a ver si alguien puede ayudarme... tengo un scroll de noticias en flash que se cargan con xml y tiene ...
  #1 (permalink)  
Antiguo 04/02/2009, 05:36
 
Fecha de Ingreso: febrero-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Problemas con Noticias Flash con xml

Hola.. quería hacer una consulta a ver si alguien puede ayudarme... tengo un scroll de noticias en flash que se cargan con xml y tiene un css para darle estilos.

La cuestion es q el flash sale de arriba hacia abajo y queria invertirlo, es decir que salga desde abajo y suba... muchas gracias.. espero q alguien me ayude...

Este es el Action:

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(0xF8F8FA);
_root["caja"+i].micolor = "0xF8F8FA";
par = false;
}
else{
_root["caja"+i].colorcaja.setRGB(0xF8F8FA);
_root["caja"+i].micolor = "0xF8F8FA";
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;


//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>";
}


//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 nos ponemos encima de la caja, eliminamos el evento y se para
_root["caja"+i].onRollOver = function(){
//Iluminar
this.colorcaja.setRGB(0xEAEAEA);
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;
}
}
}
}
}
}
  #2 (permalink)  
Antiguo 08/07/2010, 11:16
 
Fecha de Ingreso: agosto-2007
Mensajes: 3
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Problemas con Noticias Flash con xml

Hola, tengo el mismo problema. Encontraste la solucion????
Gracias



Cita:
Iniciado por ivonne_carolina Ver Mensaje
Hola.. quería hacer una consulta a ver si alguien puede ayudarme... tengo un scroll de noticias en flash que se cargan con xml y tiene un css para darle estilos.

La cuestion es q el flash sale de arriba hacia abajo y queria invertirlo, es decir que salga desde abajo y suba... muchas gracias.. espero q alguien me ayude...

Este es el Action:

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(0xF8F8FA);
_root["caja"+i].micolor = "0xF8F8FA";
par = false;
}
else{
_root["caja"+i].colorcaja.setRGB(0xF8F8FA);
_root["caja"+i].micolor = "0xF8F8FA";
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;


//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>";
}


//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 nos ponemos encima de la caja, eliminamos el evento y se para
_root["caja"+i].onRollOver = function(){
//Iluminar
this.colorcaja.setRGB(0xEAEAEA);
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;
}
}
}
}
}
}
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 11:47.