Comunidad de diseño web y desarrollo en internet online

Como puedo carga Imagenes en una carpeta y q el XML lo lea?

Citar            
MensajeEscrito el 14 Abr 2009 02:52 pm
hola con todos en el foro, este es mi primer post y aprovecho para agradecerles, ya q sin esta web no hubiese podido hacer lo q en mas d un mes estuve investigando sin resultados: "un visor de imagenes flash con carga XML",
o para ser especifico un "catalogo flash con XML".
Para ello use un archivo base "Lector de noticias XML en Flash con imagenes de Cristalab" que me parecio lo mas proximo al catalogo q quiero hacer, le reubique los elementos y les cambie d color (eso estuvo facil), le cambie y le agrege elementos asociados al XML: como dimension y precio (es q es un catalogo d obras artisticas)
Aun necesito hacerle dos cambios, que derivaron por cierto en problemas:

1º problema:
Ahora quiero ubicar las "imagenes" en un carpeta y q d ahi las cargue el SWF (el archivo original necesita las imagenes y el SWF en la misma carpeta para q carguen, algo tedioso para mas d 10 artistas con 10 a mas obras cada uno, en otras palabras, muchas imagenes), para eso se q tengo q modificarle algo en el archivo FLA, y no se que es. Le agrege algo por ahi, y me cargo ya la primera imagen de la carpeta "galeria", pero no pasa a la segunda y a la tercer, etc.

2º problema:
Las imagenes tiran (se cargan) en zona izquierda superior d todo el SWF, y necesito q esten centradas en el espacio q asgine a la zona d carga d las imagenes, el motivo es q colocare imagenes tanto verticales como horizontales de variadas resoluciones.

A continuacion el codigo manipulado (mis comentarios d los agredados q le di esta entre puntos: ".. .."), q no cambio casi nada:

En FLA

Código :

.. stop();
ruta="\\galeria\\imagen";  //ruta de las imagenes
indice = 1;  //contador ..
//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 año:String;
      var titulo:String;
      var tecnica:String;
      var dimension:String;
      var precio:String;
      var imagen:String;
      
      //Recuperando datos del objeto xml
      //Se accede al primer elemento [noticia] y se recupera la fecha desde el atributo [año]
      año = noticias_xml.firstChild.childNodes[_indice].attributes.año;
      
      //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 [tecnica]
      tecnica = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.firstChild.nodeValue
      
      //Se accede al tercer hijo de elemento [noticia] y se recupera el valor del primer elemento de [dimension]
      dimension = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.nextSibling.firstChild.nodeValue
      
      //Se accede al cuarto hijo de elemento [noticia] y se recupera el valor del primer elemento de [precio]
      precio = noticias_xml.firstChild.childNodes[_indice].firstChild.nextSibling.nextSibling.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='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>TÍTULO:</p></font>" + titulo + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>TÉCNICA:</p></font>" + tecnica + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>DIMENSIÓN:</p></font>" + dimension + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>PRECIO:</p></font>" + precio + "</b></font></p>";
      _root.mensaje_txt.htmlText += "<p align='left'><font color='#CECFCE' size='11'><b><font color='#FF9900'><p align='left'>AÑO:</p></font>" + año + "<b></font></p>";
      //Cargado la imagen JPG externa en el clip pantalla_mc con el valor recuperado del objeto xml
      _root.pantalla_mc.loadMovie(imagen) ..(ruta+i+ext, "contenedor"); ..   
   }

//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
         .. carga.load(indice);
         loadMovie(ruta+i+ext, "contenedor") .. //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
         .. carga.load(indice);
         loadMovie(ruta+i+ext, "contenedor") .. //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);         
   }


En XML

Código :

<?xml version="1.0" encoding="iso-8859-1"?>
<noticias>
   <noticia año="1998"> 
      <titulo>Autoretrato</titulo>
      <tecnica>Oleo</tecnica>
      <dimension>0,98 x 0,50 m</dimension>
      <precio>S/. 1200.00</precio>
      <image>nave.jpg</image>
   </noticia>
   
   <noticia año="2005"> 
      <titulo>Mujer en la Cama</titulo>
      <tecnica>Madera sobre madera</tecnica>
      <dimension>11,98 x 2,50 m</dimension>
      <precio>S/. 4500.00</precio>
      <image>vaticano.jpg</image>
   </noticia>
   
   <noticia año="2005"> 
      <titulo>Autoretrato con fondo morado</titulo>
      <tecnica>Oleo sobre Lienzo</tecnica>
      <dimension>5,83 x 1,47 cm</dimension>
      <precio>S/. 3200.00</precio>
      <image>intel.jpg</image>
   </noticia>

   <noticia año="2005"> 
      <titulo>Retrato José Rojas Vásquez</titulo>
      <tecnica>Técnica mixta sobre madera</tecnica>
      <dimension>4,00 x 9,04 cm</dimension>
      <precio>S/. 400.00</precio>
      <image>nave.jpg</image>
   </noticia>

</noticias>




Revise algunos post del mismo Cristalab para resolver estas dos cosas, pero no halle nada parecido al actionscript q uso como base; puesto q lo q aprendi hasta ahora d flash fue por comparacion (comparo un codigo con otro, los uno, los manipulo y asumo q codigo sirve para tal cosa - o tal vez es pura suerte); pero con esto es distinto pues no e logrado nada aun, asi q pido socorro a algun buen samaritano, ke llevo - como dije - mas d un mes en esto

PD: el punto negro d la imagen es porq le puse el codigo html li /li, eso se resolverlo.

Por edu_chan

22 de clabLevel



 

msie7
Citar            
MensajeEscrito el 29 Abr 2010 11:58 am
Hola, capaz que ya resolviste este tema pero por las dudas te comento algunas cosas.
Para que el archivo flash tome las imagenes de una carpeta tenes que corregir el archivo XML.
<image>imagenes/vaticano.jpg</image>
En este caso la carpeta se llama "imagenes".
Con solo eso ya estaría.
Por otro lado si qeres que la imagen se cargue en el medio. Fijate de crear el mc contenedor con el registro hacia el medio.

Espero haberte sido de ayuda.

Por Klorp

43 de clabLevel



 

msie8
Citar            
MensajeEscrito el 29 Abr 2010 11:59 am
Por otro lado con este tema yo tengo un problemita que capaz que vos me podes ayudar.
Como hago para que el campo <precio>S/. 3200.00</precio> tenga un link de descarga por ejemplo a "archivos.rar".
Espero tu respuesta.
Gracias.

Por Klorp

43 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.