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

Presentación de Noticias en Flash (AS2)

Estas en el tema de Presentación de Noticias en Flash (AS2) en el foro de Flash y Actionscript en Foros del Web. Buenas: necesito hacer una sección de Noticias en el sitio, con carga externa. La idea es que estas se presenten de a 3, y puedan ...
  #1 (permalink)  
Antiguo 09/07/2012, 15:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 32
Antigüedad: 14 años, 2 meses
Puntos: 0
Presentación de Noticias en Flash (AS2)

Buenas:
necesito hacer una sección de Noticias en el sitio, con carga externa. La idea es que estas se presenten de a 3, y puedan ir cooriéndose con la flechita para que aparezcan las siguientes. Tengo hecho un modelo, pero está presentado de a una noticia y yo necesito que sean de a 3. Le di muchas vueltas, pero....la verdad que necesito ayuda de un experto. Podrá alguien indicarme cómo hago para que se vean de a 3? o en su defecto, algún otro ejemplo o modelo?
Les copio el código AS y el xml. Saludos y Gracias!

CODIGO ACTION SCRIPT

Código:
//Permite caracteres tradicionales como letras con tilde la ñ, etc.
System.useCodepage = true; 

//Se declara la variable indice de tipo número (utilizada para referencia la noticia a mostrar)
var indice:Number; 

//Se declara la variable noticias_xml de tipo XML (utilizada para almacenar el documento xml)
var noticias_xml:XML; 

/*
Funcion cargarDatos (utilizada para cargar y cambiar las noticias en el documento)
Esta función recibe un parámetro "_indice" que corresponde al elemento noticia  a mostrar
*/
function cargarDatos(_indice:Number){
		//Se inicializan variables utilizadas para almenar los datos de una noticia
		var fecha:String;
		var titulo:String;
		var mensaje:String;
		var imagen:String;
		
		//Recuperando datos del objeto xml
		//Se accede al primer elemento [noticia] y se recupera la fecha desde el atributo [fecha]
		fecha = noticias_xml.firstChild.childNodes[_indice].attributes.fecha;
		
		//Se accede al primer hijo de elemento [noticia] y se recupera al valor del primer elemento de [titulo]
		titulo = noticias_xml.firstChild.childNodes[_indice].firstChild.firstChild.nodeValue;
		
		//Se accede al segundo hijo de elemento [noticia] y se recupera el valor del primer elemento de [mensaje]
		mensaje = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.firstChild.nodeValue
		
		//Se accede al último hijo de elemento [noticia] y se recupera el valor del primer elemento de [imagen]
		imagen = noticias_xml.firstChild.childNodes[_indice].lastChild.firstChild.nodeValue
		
		//Mostrando los datos recuperados en el cuado de texto mensaje_txt y cargando la imagen en pantalla_mc
		_root.mensaje_txt.htmlText = "";
		_root.mensaje_txt.htmlText += "<p align='left'><font color='#FFFFFF' size='12'>" + titulo + "</font></p>";
		_root.mensaje_txt.htmlText += "<p><font size='12'color='#CCCCCC'>" + mensaje + "</font>";
		_root.mensaje_txt.htmlText += "<font color='#333333' size='10'>Publicado: " + fecha + "</font></p>";
		//Cargado la imagen JPG externa en el clip pantalla_mc con el valor recuperado del objeto xml
		_root.mapa.loadMovie(imagen);	
	}

//Función que permite avanzar a la [noticia] siguiente almacenada en el objeto xml
siguiente_btn.onPress = function(){	
	//comprobando si existe el siguiente elemento [noticia]
	if(noticias_xml.firstChild.childNodes[indice+1] != null){//retringue  a avanzar solo si hay una [noticia] siguiente
			indice++; //incrementado en uno el indice
			cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla
			}
	}

//Función que permite retroceder a la noticia anterior almacenada en el objeto xml	
anterior_btn.onPress = function(){
	//comprobando si existe una elemento [noticia] anterior
	if(noticias_xml.firstChild.childNodes[indice-1] != null){//retringue  a avanzar solo si hay una [noticia] anterior
			indice--; //reducciendo en uno el indice
			cargarDatos(indice); //recuprando y mostrando los datos y la imagen en la pantalla
			}
	}	
	
//Inicializaciones
indice=0; //inicializando indice en 0 para mostrar la primera noticia

//creando el objeto noticias_xml de typo XML
noticias_xml = new XML();

//Permite que el objeto XML ignore los espacios en blanco entre marca y marca del documento XML
noticias_xml.ignoreWhite = true;

//El método load() permite cargar el documento xml "noticias.xml"
noticias_xml.load("noticias.xml");

//El evento onLoad de activa cuado se haya cargado el documento noticias.xml
noticias_xml.onLoad = function(){
			//Se llama a la funcion cragarDatos para mostar la primera noticia (esto por la variable indice en 0)
			cargarDatos(indice);			
	}
	
	
incremento = 4;
zoomActivado = false;
ini_x=mapa._x;
ini_y=mapa._y;


function zoom(x,y,ancho,alto, aceleracion) 
{
mapa.onEnterFrame = function() 
{
this._x += (x-this._x)/aceleracion;
this._y += (y-this._y)/aceleracion;
this._width += (ancho-this._width)/aceleracion;
this._height+= (alto-this._height)/aceleracion;
if (Math.abs(x-this._x)<0.5 && Math.abs(y-this._y)<0.5 && Math.abs(ancho-this._width)<0.5 && Math.abs(alto-this._height)<0.5) 
{
this._x = x;
this._y = y;
this._width = ancho;
this._height = alto;
delete this.onEnterFrame;
}
};
};

onMouseDown =function()
{

//Esto hará la comprobación por medio de la cual verificará si las coordenadas del mouse en el momento que se presionó están sobre el clip, lo cual indicará que se ha echo click sobre él.
if (mapa.hitTest(_xmouse,_ymouse))
{
if(zoomActivado == false)
{
//Después de eso se calculará el tamaño de la película con el zoom	
Alto = incremento*mapa._height;
Ancho = incremento*mapa._width;

//Luego haremos el cálculo de la nueva posición del clip, ya que si lo dejamos en esa posición, se nos moverá hacia la derecha y hacia abajo, lo cual nos desubica, para lo cual se emplea la siguiente ecuación
xs = _xmouse-((_xmouse-mapa._x) * incremento);
ys = _ymouse-((_ymouse-mapa._y) * incremento);

//Desactivamos el Flag para el zoomOut
zoomActivado=true;
}
else
{
Alto = mapa._height/incremento;
Ancho = mapa._width/incremento;

//Luego haremos el cálculo de la nueva posición del clip, ya que si lo dejamos en esa posición, se nos moverá hacia la derecha y hacia abajo, lo cual nos desubica, para lo cual se emplea la siguiente ecuación
xs = ini_x//_xmouse-((_xmouse-mapa._x) / incremento);
ys = ini_y//_ymouse-((_ymouse-mapa._y) / incremento);

//Desactivamos el Flag para el zoomOut
zoomActivado=false;
}


//Mandamos los parametros y el onentreframe reubicara y reescalara con easing..
zoom(xs,ys,Ancho,Alto,3);
}

}
y este es el XML

Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<noticias>
	<noticia fecha="06/07/2012"> 
		<titulo>LAMPARAS DE TECHO O DE PARED</titulo>
		<mensaje>Disponibles en 3 medidas, con terminaciones cromo y tela cortada a Laser en 4 colores</mensaje>		
		<image>nave.jpg</image>
	</noticia>
	
	<noticia fecha="00/00/2012"> 
		<titulo>Finaliza estado de excepción pero crece descontento</titulo>
		<mensaje>Luego de que el presidente de Ecuador, Lucio Gutiérrez, levantara el estado de emergencia decretado en Quito el viernes, las multitudinarias protestas en dicha ciudad exigiendo la dimisión del mandatario empezaron a extenderse a otras regiones y amenazan con abarcar todo el país.</mensaje>		
		<image>vaticano.jpg</image>
	</noticia>
	
	<noticia fecha="00/00/2012"> 
		<titulo>Intel pronostica que banda ancha en celulares empezará en 2006</titulo>
		<mensaje>La nueva tecnología inalámbrica de banda ancha WiMax está empezando a recibir la atención de los operadores de telefonía fija y móvil, pero aún tardará varios años hasta que sea utilizada por un mercado masivo de consumidores, anunció Intel.</mensaje>		
		<image>intel.jpg</image>
	</noticia>

</noticias>

Etiquetas: flash, html, clips
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 09:03.