Discussion:
[FLA] carga de imágenes en AS2
(demasiado antiguo para responder)
javiestufa
2009-03-27 16:09:56 UTC
Permalink
Una gilipollez, seguro, pero que me esta volviendo loco.... a ver si me
puedo explicar.... consigo crear un clip vacío, y dentro de este clip crear
otros que contengan imágenes jpg....
Pues bien... si a estos últimos clips la imágenes que tengo en la biblioteca
se las cargo con attachMovie todo me funciona perfecto, pero si por el
contrario intento cargar imágenes desde un XML solo me carga la última
imágen de la lista....
Dejo aquí el código por si alguien me puede decir dónde cojXXXXX esta el
fallo... o también si alguien me pudiera ayudar con la idéa.

Un saludo,
Gracias:
Javier.



//XML
//DECLARACIÓN DE VARIABLES
var base_xml:XML = new XML();
_global.Imagenes = 0;
_global.NombreImagen = "";
_global.Nivel = 0;

//ABRIR BASE XML
base_xml.load("fotografia.txt");
//Parámetros de la base XML
base_xml.ignoreWhite = true;
//Lectura de datos de la base XML
base_xml.onLoad = function(exito) {
if (exito) {
_global.Imagenes = base_xml.firstChild.childNodes[0].childNodes.length;
trace ("Total imágenes en XML : " + _global.Imagenes);
trace ("--------------------------------------------------------"); //
me devuelve el valor correcto del número de imágenes


//IMAGENES
//CREACION DE LIENZO PRINCIPAL
var contenedor:MovieClip =
_root.clpFotografias.createEmptyMovieClip("lienzo",
_root.getNextHighestDepth());
contenedor._x = 0;
contenedor._y = 0;

//CREACION DE IMAGENES
//1er. posicionamiento
var posicionY = 0;
//número de imágenes
for (var i:Number = 0; i<(_global.Imagenes); i++){
//variables
var foto = "foto"+i;
var clip = "clip"+i;
_global.NombreImagen = "fotografia/" +
(base_xml.firstChild.childNodes[0].childNodes[i].firstChild.nodeValue) +
".JPG";
_global.Nivel = (3 + i);
trace ("Imágen = " + _global.NombreImagen);
trace ("Nivel = " + _global.Nivel);
//clip de imágenes
var clip:MovieClip = lienzo.createEmptyMovieClip(foto,
lienzo.getNextHighestDepth());

clip.attachMovie("marco", "marco1", lienzo.getNextHighestDepth()); //
<------- ESTO FUNCIONA

//clip.loadMovieNum(_global.NombreImagen,
lienzo.getNextHighestDepth()); // <------- ESTO NO ME FUNCIONA

//variables
//lienzo
var anchoLienzo = (lienzo._width);
var altoLienzo = (lienzo._height);
//clip
var anchoClip = (clip._width);
var altoClip = (clip._height);

//posicionamiento
clip._x = 0;
clip._y = posicionY;

var altura = (altoLienzo + altoClip)
var posicionY = (posicionY + altoClip);
trace ("Imágen " + i + " Lienzo: Ancho = " + anchoLienzo + " Alto = "
+ altoLienzo);
trace ("Imágen " + i + " Clip: Ancho = " + anchoClip + " Alto = " +
altoClip);
trace ("Imágen " + i + " Posición: = " + posicionY);
trace ("--------------------------------------------------------");
}
}
}

//GENERAL
stop();
javiestufa
2009-03-28 18:28:08 UTC
Permalink
Bueno, por si a algún otro novatillo como yo se sirve, aquí dejo el código.

Un saludo,
::Javier.


//DESENGANCHE DEL PRINCIPAL
_lockroot = true;

//VARIABLES
var base_xml:XML = new XML();
_global.Imagenes = 0;
_global.NombreImagen = "";
_global.PosicionY = 0;

//LECTURA DEL XML
//localización del XML
base_xml.load("fotografia.xml");
//Parámetros de la base XML
base_xml.ignoreWhite = true;
//Lectura de datos de la base XML
base_xml.onLoad = function(exito) {
if (exito) {
_global.Imagenes = base_xml.firstChild.childNodes[0].childNodes.length;

for (var i = 0; i < (_global.Imagenes); i++){
//colocar clip Contenedor
_root.attachMovie("contenedor", ("contenedor"+i), i+100);
eval("contenedor"+i)._x = 10;
eval("contenedor"+i)._y = (PosicionY + 10);
//Nombres de imágenes
_global.NombreImagen = "fotografia/" +
(base_xml.firstChild.childNodes[0].childNodes[i].firstChild.nodeValue) +
".JPG";
//colocar clip Imágen
eval("contenedor"+i).createEmptyMovieClip("imagen"+i, i+101);
eval("contenedor"+i+".imagen"+i)._x = 7;
eval("contenedor"+i+".imagen"+i)._y = 8;
eval("contenedor"+i+".imagen"+i).loadMovie(_global.NombreImagen);
var PosicionY = (PosicionY + 71);
eval("contenedor.imagen"+i)._y = PosicionY;

}
};
};

Loading...