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

cargar imagenes desde XML en AS3

Estas en el tema de cargar imagenes desde XML en AS3 en el foro de Flash y Actionscript en Foros del Web. Hola estoy intentado cargar 4 fotos mediante un xml, pero necesitaria poder especificar la localización de cada fotografia en AS3 como lo hariais? como xml ...
  #1 (permalink)  
Antiguo 18/11/2007, 06:49
Avatar de juldavs  
Fecha de Ingreso: agosto-2004
Mensajes: 80
Antigüedad: 13 años, 3 meses
Puntos: 0
cargar imagenes desde XML en AS3

Hola estoy intentado cargar 4 fotos mediante un xml, pero necesitaria poder especificar la localización de cada fotografia en AS3

como lo hariais?

como xml pongo esto
<?xml version="1.0" encoding="iso-8859-1"?>
<imagenes>
<imagen id="images/img10.jpg"/>
<imagen id="images/img09.jpg"/>
<imagen id="images/img08.jpg"/>
<imagen id="images/img07.jpg"/>
</imagenes>

como codigo

// -- posición donde se cargará la primera imagen
x = 95;
y = 461;
// -- ancho y alto de la imagen más 69px espacio horizontal y 70px espacio vertical
ancho = 165;
alto = 145;
// -- numero de columnas
num_columnas = 5;
// -- creo un nuevo objeto XML
miXML = new XML();
// -- ignorar espacios
miXML.ignoreWhite = true;
// -- proceso si la carga tuvo éxito
miXML.onLoad = function(succes) {
if (succes) {
// -- por cada nodo hijo del nodo principal...
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
// -- delaro una variable que recoje el atributo del nodo (nombre de la imagen)
galeria = this.firstChild.childNodes[i].attributes.id;
// -- creo un clip de película vacio
_root.createEmptyMovieClip("diapo"+i, i+100);
// -- cargo la imáen el clip vacio
item = _root["diapo"+i];
item.loadMovie(galeria);
// -- indico posición x - y
item._x = x;
item._y = y;
// -- incremento el valor de x para la siguiente imágen
x += ancho;
// -- incremento en 1 el número de columnas
columna += 1;
// -- ruptura de control, control de número de columnas
if (columna == num_columnas) {
columna = 0;
x -= (ancho*num_columnas);
y += alto;
}
}
}
};
// -- cargar XML
//miXML.load("imagenes.xml");

miXML.load("images.xml");

pero este codigo no funciona en AS3

alguien podria ayudarme?
  #2 (permalink)  
Antiguo 18/11/2007, 18:31
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Re: cargar imagenes desde XML en AS3

Xml(repito las imagenes por no reescalar otras...)

Código PHP:
<?xml version="1.0" encoding="utf-8"?>
<listado>
    <imagenes>
        <imagen>imagen_asoaciada1.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada2.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada3.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada4.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada1.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada2.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada3.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada4.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada1.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada2.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada3.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada4.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada2.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada3.jpg</imagen>
    </imagenes>
    <imagenes>
        <imagen>imagen_asoaciada4.jpg</imagen>
    </imagenes>
</listado>
Código PHP:
import flash.display.Sprite;
import flash.display.Loader;
import flash.events.*;
import flash.net.URLRequest;

var 
ocultarHastaCargarTodas:Boolean = new Boolean(true)
    
var 
contenedorImagenes:Sprite = new Sprite();
contenedorImagenes.visible=ocultarHastaCargarTodas;
contenedorImagenes.x=0;
contenedorImagenes.y=0;  

addChild(contenedorImagenes);    

var 
miXML:XML = new XML();
var 
XML_URL:String "imagenes.xml";
var 
miXMLURL:URLRequest = new URLRequest(XML_URL);
var 
myLoader:URLLoader = new URLLoader(miXMLURL);
myLoader.addEventListener("complete"xmlLoaded);
var 
imagenActual:Number 0;
var 
imagenTotal:Number 0;
var 
ancho:Number 165;
var 
alto:Number 145;
var 
inicioX:Number 0;
var 
inicioY:Number 0;
var 
ImagenesPorFila:Number =5;



function 
xmlLoaded(event:Event):void
{
    
miXML XML(myLoader.data);
    
imagenTotal=miXML.descendants("imagenes").length();
    
cargador();
}


function 
cargador() 
{
    var 
loader:Loader = new Loader();
    
loader.contentLoaderInfo.addEventListener(Event.COMPLETEcompleteHandler);
    var 
request:URLRequest = new URLRequest(miXML.imagenes[imagenActual].imagen);
    
loader.load(request);
    
loader.x=inicioX+ancho*(imagenActual%ImagenesPorFila);
    
loader.y=inicioY+alto*Math.floor(imagenActual/ImagenesPorFila);    
    
contenedorImagenes.addChildAt(loader,imagenActual);             
}

function 
completeHandler(event:Event):void 
{
    
imagenActual++;
    if(
imagenActual<imagenTotal)
    {
        
cargador();
    }
    else
    {
        
contenedorImagenes.visible=true;
        var 
loader:Loader = new Loader();
        
loader.unload();
    }

Ponemos todas las clases a utilizar

Definimos un nuevo Sprite contenedorImagenes en 0,0.

Definimos ancho, alto, inicioX, inicioY, ImagenesPorFila, el objeto xml y la url a cargar, y también imagen actual que ponemos a 0.

A la carga del xml registramos el total de imágenes de nuestro xml en imagenTotal y llamamos por primera vez a cargador.

Cargador recibe que tiene que cargar la imagen actual(0), la carga con addChildAtt en el índice 'imagenActual'(para ir cargando cada una en un índice distinto) de contenedorImagenes.

Y el evento de complete del cargador incrementa imagenActual y vuelve a llamar a cargador si la imagen actual es menor que imagenTotal.

De momento no me aclaro mucho con actionscript 3.0, pero creo qué más o menos es asi
__________________
[+]
[+]

Última edición por yoseman; 18/11/2007 a las 18:49
  #3 (permalink)  
Antiguo 20/11/2007, 14:37
Avatar de juldavs  
Fecha de Ingreso: agosto-2004
Mensajes: 80
Antigüedad: 13 años, 3 meses
Puntos: 0
Re: cargar imagenes desde XML en AS3

hola yoseman,
he probado lo que me comentas y me da el siguiente error
"1071: Error de sintaxis: se esperaba una palabra clave de definición (como function) después del atributo Ponemos, no todas."

puedes ayudarme? please
  #4 (permalink)  
Antiguo 20/11/2007, 19:54
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 14 años
Puntos: 5
Re: cargar imagenes desde XML en AS3

Supongo que has puesto una línea de más de mi comentario en tu código al hacer copy&paste, en concreto la que esta debajo del cuadro de codigo: 'Ponemos todas las clases a utilizar'...

Que obviamente no es parte del código.

Intenta entender los mensajes de error, y te habrias dado cuenta.

Salu2 ;
__________________
[+]
[+]
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:59.