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

Como Agregar Imagen y Texto para noticias

Estas en el tema de Como Agregar Imagen y Texto para noticias en el foro de Flash y Actionscript en Foros del Web. Hola a todos, he aquí de nuevo espero que me puedan ayudar ha hacer lo siguiente. Hasta el momento menejo bien la carga de textos ...
  #1 (permalink)  
Antiguo 19/09/2006, 09:42
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Pregunta Como Agregar Imagen y Texto para noticias

Hola a todos, he aquí de nuevo espero que me puedan ayudar ha hacer lo siguiente. Hasta el momento menejo bien la carga de textos desde un archivo xml, en este archivo tambien tengo la url donde se encuentran los archivos de imagen. Bueno lo que necesito hacer ahora es incorporar las imagenes de las noticias, la cual debería quedar así:


IMAGEN CONTENIDO NOTICIA

El script siguiente lo uso para generar el contenido de la noticia solo me falta como incluir la imagen de tal manera que quede con el formato indicado y además se pueda deslizar dentro de un contenedor.
De ante mano agradezco vuestra colaboración.

System.useCodepage=false;
//creamos nuestro objeto noticias_xml para poder cargar las noticias
var noticias_xml:XML = new XML();
noticias_xml.ignoreWhite = true;
noticias_xml.onLoad = function(ok){
if(ok) listar_noticias(this.firstChild.childNodes);

else trace('no se cargó correctamente');
}

noticias_xml.load('contenidos/noticias/noticias.xml');

var estilo_link = new TextField.StyleSheet();
estilo_link .load('estilolink.css');

listar_noticias = function(noticias:Array):Void{
with(noticias_mc.noticias_txt){
multiline = true; wordWrap = true; html = true; autoSize = true; selectable = true; styleSheet = estilo_link;
}

for(n=0;n<noticias.length;n++) {
noticias_mc.noticias_txt.htmlText += '<p class="link">'+noticias[n].attributes.fecha+'</p><br/>';
noticias_mc.noticias_txt.htmlText += '<p class="link">'+noticias[n].attributes.titulo+'</a></p>';
noticias_mc.noticias_txt.htmlText += '<p class="link">'+noticias[n].attributes.contenido+'</p><br/>';
//trace(noticias[n].attributes.titulo);
}

//enmascaramos la noticias
noticias_mc.setMask(mascara2);

Última edición por ciberpato; 19/09/2006 a las 10:00
  #2 (permalink)  
Antiguo 19/09/2006, 10:03
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Disculpen anteriormente puse un script que no correspondía a las edición de noticias que actualmente uso,
  #3 (permalink)  
Antiguo 19/09/2006, 18:06
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 21 años, 4 meses
Puntos: 406
Hola ciberpato:
Visita mi página allí tienes un tutor que se llama: agenda_xml, está en el botón XML.

Espero que te sea de utilidad.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #4 (permalink)  
Antiguo 20/09/2006, 13:17
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Hola Bandit, gracias por responder. Te cuento tu sitio es muy bueno y de ahí hay ejmplos que me van a servir en otro trabajo que debo hacer. Pero antes de entrar de lleno en tus tutoriales, agradecería tu como experto en Actionscript mires el siquiente sitio, el cual no es dinámico www.valdiviesovineyard.com, este lo tuve que transformar completamente a administrable tanto las fotos como los textos y está casi listo. Se manejar gracias a ti y los que colaboraron cargar textos y fotos en forma dinámica desde archivos xml. Pero quien me encargó el trabajo quiere que las noticias sea los mas parecido al actual, si haces click en el texto noticia podrás ver lo que necesito, mi pregunta es posible lograr eso, eso si sin fijarse en la cosmética, en eso no tengo poblemas. Ahí podrás ver el resumen de noticias y tambien el detalle de cada una de ellas. Toda esa información a mostrar ya la tengo en un xml. Gracias al dominio que tienes en este lenjuage me vas a poder aconsejar mejor. De antemanos gracias por vuestra ayuda
  #5 (permalink)  
Antiguo 20/09/2006, 18:40
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 21 años, 4 meses
Puntos: 406
Vamos a ver si te entedí.
Si quieres que aparezca el scroll al clicar sobre noticia, éste scroll lo puedes hacer dentro de un MC y colocarlo en un frame determinado y con un botón invisible encima del panel de noticas con un gotoAndStop(número del frame dond pusiste el MC);

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #6 (permalink)  
Antiguo 20/09/2006, 21:44
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Estuve analizando tu ejemplo y tengo el siguiente script, el cual lo estoy adaptando a mi caso:

var cadena:String = "";
var news:Number=0;
var separacion:Number=10;
var ancho_Escenario:Number=550;
_root.createEmptyMovieClip("foto",10);
foto._x=226;
foto._y=114;
var agenda_noticias:XML=new XML();
agenda_noticias.ignoreWhite=true;
function parsea(exito:Boolean) {
if(exito) {
_root.createEmptyMovieClip("menu",11);
menu._visible=false;
nombre.htmlText="<p align=\"center\"><b>"+this.firstChild.nodeName.toU pperCase()+"</b>: Elija las Noticias en el menú inferior de la pantalla</p>";
for(var i=0;i<this.firstChild.childNodes.length;i++) {
//trace(this.firstChild.childNodes[i]);
for(var j=0;j<this.firstChild.childNodes[i].childNodes.length;j++) {
menu.attachMovie("nueva_noticia","boton"+news,news );
menu["boton"+news].numero.text=news;
menu["boton"+news]._x=news*(menu["boton"+news].width+separacion);
menu["boton"+news].id=this.firstChild.childNodes[i].childNodes[j].attributes.id;
menu["boton"+news].cabecera=this.firstChild.childNodes[i].childNodes[j].attributes.cabecera;
menu["boton"+news].url=this.firstChild.childNodes[i].childNodes[j].attributes.url;
menu["boton"+news].fecha=this.firstChild.childNodes[i].attributes.dia;
menu["boton"+news].cadena=this.firstChild.childNodes[i].childNodes[j].attributes.cuerpo;
//trace(menu["boton"+news].cadena);
menu["boton"+news].onRelease=function() {
cabecera.htmlText="<p align=\"left\"></b>"+this.fecha+".-</b> "+this.cabecera+"</p>";
if(this.url !="no") {
foto.loadMovie(this.url);
}else{
foto.loadMovie("no.jpg");
}

var my_fmt:TextFormat = new TextFormat();
//my_fmt.blockIndent = 20;
my_fmt.color = 0xFFFFFF;
my_fmt.font="Verdana";
my_fmt.italic=false;
my_fmt.align = "justify";
//my_fmt.bold=true;
my_fmt.size=9;

_root.createTextField("miTexto",12,103,218,350,130 );
miTexto.multiline=true;
miTexto.wordWrap = true;
miTexto.condenseWhite = true;
miTexto.text= this.cadena;
miTexto.html=true;
miTexto.selectable=true;
miTexto.borderColor=0x666666;
miTexto.border= true;
miTexto.setTextFormat(my_fmt);

if(miTexto.length>300){
_root.createClassObject(mx.controls.UIScrollBar,"m iScroll",this.getNextHighestDepth());
miScroll.setScrollTarget(miTexto);
miScroll.setSize(10, miTexto._height);
miScroll.move(miTexto._x + miTexto._width, miTexto._y);
}

};
news++;
}
}
menu._x=(ancho_Escenario/2)-(menu._width/2);
menu._y=350;
menu._visible=true;
}else{
nombre.htmlText="<p align=\"center\"><b>Error al cargar los datos</b></p>";
}
}
agenda_noticias.onLoad = parsea;
agenda_noticias.load("datos.xml");

Todo funciona bien hasta el scroll, pero solo me muestra el último botón y no el primero. Si elimino la segunda noticia del XML aparece el boton 1, aquí estoy medio perdido.

Última edición por ciberpato; 21/09/2006 a las 08:45
  #7 (permalink)  
Antiguo 21/09/2006, 08:32
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Bandit, estuve analizando los loop for el primero tiene longitud 2, osea:

this.firstChild.childNodes.length=2, lo que es correcto ya que existen 2 noticias.

el segundo for no me parece bien ya que me da 0 y debería generar 2 botones, osea:

this.firstChild.childNodes[i].childNodes.length=1

El XML que estoy usando es igual al de tu ejemplo, solo le agregé el campo cuerpo:

<?xml version="1.0" encoding="utf-8"?>
<agenda>
<noticias dia="15 de Marzo del 2006">
<datos id="1" cabecera="Aquí el texto que quieres mostrar" url="1.jpg" cuerpo="La historia de Viña Valdivieso se remonta a 1879, año en que Don Alberto ....."/>
</noticias>
<noticias dia="16 de Marzo del 2006">
<datos id="2" cabecera="Hola este es un texto" url="2.jpg" cuerpo="Producir vinos de calidad requiere de un cuidadoso y equilibrado manejo ...."/>
</noticias>
</agenda>

Última edición por ciberpato; 21/09/2006 a las 08:47
  #8 (permalink)  
Antiguo 21/09/2006, 10:37
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
dentro del for(var j....) puse

trace(this.firstChild.childNodes[i].childNodes);

En ella se ven los datos de las dos noticias, por consiguiente esta bien solo que aparece el boton 2 y no el uno.
  #9 (permalink)  
Antiguo 21/09/2006, 11:33
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 21 años, 4 meses
Puntos: 406
Hola ciberpato:
Este es el código:
var news:Number=0;
var separacion:Number=10;
var ancho_Escenario:Number=550;
var news:Number = 0;
var separacion:Number = 10;
var ancho_Escenario:Number = 550;
_root.createEmptyMovieClip("foto", 10);
foto._x = 226;
foto._y = 114;
var agenda_noticias:XML = new XML();
agenda_noticias.ignoreWhite = true;
function parsea(exito:Boolean) {
if (exito) {
_root.createEmptyMovieClip("menu", 11);
menu._visible = false;
nombre.htmlText = "<p align=\"center\"><b>"+this.firstChild.nodeName.toU pperCase()+"</b>: Elija las noticias en el menú inferior de la pantalla</p>";
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
for (var j = 0; j<this.firstChild.childNodes[i].childNodes.length; j++) {
menu.attachMovie("nueva_noticia", "boton"+news, news);
menu["boton"+news].numero.text = news+1;
menu["boton"+news]._x = news*(menu["boton"+news]._width+separacion);
menu["boton"+news].id = this.firstChild.childNodes[i].childNodes[j].attributes.id;
menu["boton"+news].cabecera = this.firstChild.childNodes[i].childNodes[j].attributes.cabecera;
menu["boton"+news].url = this.firstChild.childNodes[i].childNodes[j].attributes.url;
menu["boton"+news].fecha = this.firstChild.childNodes[i].attributes.dia;
menu["boton"+news].onRelease = function() {
cabecera.htmlText = "<p align=\"left\"><b>"+this.fecha+".-</b> "+this.cabecera+"</p>";
if (this.url != "no") {
foto.loadMovie(this.url);
} else {
foto.loadMovie("no.jpg");
}
var cargador:LoadVars = new LoadVars();
cargador.onLoad = function(exito:Boolean) {
if (exito) {
cuerpo.text = cargador.texto;
} else {
cuerpo.text = "No se pudo cargar el texto de esta noticia";
}
delete cargador;
};
cargador.load(+this.id+".txt");
};
news++;
}
}
menu._x = (ancho_Escenario/2)-(menu._width/2);
menu._y = 350;
menu._visible = true;
} else {
nombre.htmlText = "<p align=\"center\"><b>Error al cargar los datos</b></p>";
}
}
agenda_noticias.onLoad = parsea;
agenda_noticias.load("datos.xml");

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #10 (permalink)  
Antiguo 21/09/2006, 13:20
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Bandit, gracias por el script, la verdad me quedó el sabor amargo de no poder detectar el porque al parecer quedaban los botones superpuestos es por eso solo se veía el último. Con el que me mandaste le hice los cambios para adaptarlo a las necesidades del cliente, es decir agregar un texto con scroll dinámico ya que el cuerpo de la noticia es un poco extenso.
Aprobecho la oportunidad para preguntar, que yo se que el cliente me lo va a objetar, es si es posible que en vez de botones por noticia ubiera un texto dinámico con un UIScrollBar de tal manera que el cliente busque el título de la noticia que quiere ver. Yo se que tu consejo va ha ser muy valioso antes de empezar a cranear el script.
  #11 (permalink)  
Antiguo 22/09/2006, 06:28
Avatar de ciberpato  
Fecha de Ingreso: agosto-2004
Mensajes: 142
Antigüedad: 20 años, 3 meses
Puntos: 1
Bandit, es posible poner dentro de un UIScrollBar el MC menu de tu ejemplo, ya que me pregunto que pasa si el número de noticias sobrepasa el ancho del escenario?
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:07.