La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/ActionScript/707798-Generacion-Movie-clips-dinamicamente.html

Generación Movie clips dinámicamente

Generación Movie clips dinámicamente

Publicado por Paula Rojas (1 intervención) el 26/10/2006 18:23:33
buenas

Tengo el siguiente inconveniente:
Necesito tomar de una base de datos el nombre de la imagenes que cargaré en un movie clip. El asunto es que necesito que se carguen todas las imagenes, como opciones una seguida de la otra.

Hasta ahora tengo este código:

--------------------------------------------------------------------------------------------------------------------
var obj:Number;
var kipat_type=1;
var url = "http://paularojas.com/kipat/colors.php?kipat_type="+kipat_type;
var colores:Array = new Array();
temp = new LoadVars();
temp.load(url);

trace("1: "+colores.length);
temp.onLoad = function(exitoso:Boolean) {
var paisesArray:Array = new Array();
for(var a in this){
if(a != "onLoad"){
paisesArray.push(this[a]);
}
}

for (var i=0; i<paisesArray.length; i=i+2) {
colores[i]=paisesArray[i];
//trace(paisesArray[i]);
//trace(colores[i]);
}
trace("2: "+colores.length);
}

trace("3: "+colores.length);

//////////////////////////////////////////////////////////////////////////////////////
/// código fotograma90

var imagen =0;

clip = _root.createEmptyMovieClip("my_mc", 0);
for (obj=0; imagen<this.colores.length; obj++) {
trace("fotograma 90");
trace(imagen + " " +colores[imagen]);
trace(obj);
//clip = _root.createEmptyMovieClip("my_mc"+obj, 0);
//clip2 = clip.createEmptyMovieClip("container_mc"+obj,1);
my_mc.createEmptyMovieClip("container_mc"+obj,1);
set ("my_mcl" + obj, new MovieClipLoader());
//var this["my_mcl"+obj]:MovieClipLoader = new MovieClipLoader();
this["my_mcl"+obj].loadClip("http://paularojas.com/images/"+colores[imagen],clip.container_mc+obj);
my_mc.onEnterFrame = function():Void {
this["my_mc.container_mc"+obj]._width=30;
eval("my_mc.container_mc"+obj)._x=35*obj;
eval("my_mc.container_mc"+obj)._y=3;
}
imagen= obj+2;
}

------------------------------------

Pero entonces en primer lugar cargan dos imagenes, una seguida de la otra y sobrepuestas. No cada una por separado como si sucede si el código del fotograma90 lo dejo así:

this.createEmptyMovieClip("my_mc", 0);
my_mc.createEmptyMovieClip("container_mc",1);
var my_mcl:MovieClipLoader = new MovieClipLoader();
my_mcl.loadClip("http://localhost/MMG_Kipat/images/image1.jpg",my_mc.container_mc);

//////////////////////////// FIRST OPTION ///////////////////////////
my_mc.onEnterFrame = function():Void {
my_mc.container_mc._width=30;
my_mc.container_mc._x=35;
my_mc.container_mc._y=3;
}

my_mc.onPress = function():Void {
_root.pattern = "PAT1";
/*
var colorful = new Color("_level0.kippa.fondo_kippa");
colorful.setRGB(0xFAE72F);
if (_root.ocultar_pattern._visible == true) {
_root.ocultar_pattern._visible = false;
}
*/
var kippa0:MovieClipLoader = new MovieClipLoader();
kippa0.loadClip("http://localhost/MMG_Kipat/images/image4.jpg",_level0.kippa.fondo_kippa);

if (_root.ocultar_pattern._visible == true) {
_root.ocultar_pattern._visible = false;
}
};

///////////////////////// SECOND OPTION /////////////////////////
this.createEmptyMovieClip("my_mc2", 20);
my_mc2.createEmptyMovieClip("container_mc2",30);
var my_mcl2:MovieClipLoader = new MovieClipLoader();
my_mcl2.loadClip("http://localhost/MMG_Kipat/images/image3.jpg",my_mc2.container_mc2);

my_mc2.onEnterFrame = function():Void {
my_mc2.container_mc2._width=30;
my_mc2.container_mc2._x=70;
my_mc2.container_mc2._y=3;
}

my_mc2.onPress = function():Void {
var kippal:MovieClipLoader = new MovieClipLoader();
kippal.loadClip("http://localhost/MMG_Kipat/images/image3.jpg",_level0.kippa.costura_kippa);

if (_root.ocultar_pattern1._visible == true) {
_root.ocultar_pattern1._visible = false;
}
};

---------------------

Y por otro lado, tengo que esperar un tiempo para que se cargue completamente el arreglo del fotograma 1, por eso la solución horrorosa de poner el resto del código hasta el fotograma90.

Necesito solucionar ese par de cositas. Alguien tiene alguna sugerencia?

Muchas gracias.
Imágen de perfil de Alejandro

Cargar y mostrar imágenes desde una base de datos en un MovieClip

Publicado por Alejandro (369 intervenciones) el 22/06/2023 21:54:46
Para cargar y mostrar imágenes desde una base de datos en un MovieClip, puedes seguir estos pasos:

1. Obtén los nombres de las imágenes de tu base de datos.
- En tu caso, estás obteniendo los nombres de las imágenes desde "colors.php" en el servidor.

2. Crea una función para cargar y mostrar las imágenes.
- Dentro de la función, utiliza un bucle para recorrer el arreglo de nombres de imágenes.
- Crea un nuevo MovieClip para cada imagen y carga la imagen en él utilizando MovieClipLoader.

Aquí tienes un ejemplo de cómo puedes modificar tu código para cargar y mostrar las imágenes en secuencia:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var colores:Array = new Array();
var imagenIndex:Number = 0;
var imageLoader:MovieClipLoader = new MovieClipLoader();
 
temp.onLoad = function(success:Boolean) {
   if (success) {
      var paisesArray:Array = new Array();
      for (var a in this) {
         if (a != "onLoad") {
            paisesArray.push(this[a]);
         }
      }
      colores = paisesArray;
 
      cargarImagenes();
   }
};
 
temp.load(url);
 
function cargarImagenes():Void {
   var container:MovieClip = _root.createEmptyMovieClip("my_mc", 0);
 
   for (var obj:Number = 0; obj < colores.length; obj++) {
      var imageContainer:MovieClip = container.createEmptyMovieClip("container_mc" + obj, obj);
      imageLoader.loadClip("http://paularojas.com/images/" + colores[obj], imageContainer);
 
      imageContainer._width = 30;
      imageContainer._x = 35 * obj;
      imageContainer._y = 3;
   }
}

En este código, se utiliza la función `cargarImagenes()` para cargar y mostrar las imágenes en un nuevo MovieClip llamado "container_mc". El bucle `for` recorre el arreglo `colores` y carga cada imagen en un nuevo MovieClip dentro de "container_mc". Luego, se ajustan las propiedades de posición y tamaño de cada MovieClip.

Asegúrate de ajustar la URL de carga de las imágenes y los nombres de los MovieClips según tus necesidades.

Con este código, podrás cargar y mostrar todas las imágenes obtenidas de tu base de datos en secuencia dentro del MovieClip "my_mc".

Espero que esto te ayude a solucionar tus problemas. ¡Buena suerte con tu proyecto!