Comunidad de diseño web y desarrollo en internet online

Carga de varias imágenes no chuta

Citar            
MensajeEscrito el 01 Ene 2010 10:08 pm
Hola
Estoy tratando de hacer código para cargar distintas imágenes en miniatura, y que al hacer clic aparezca la miniatura en grande. Una galería vamos. El código se usa para cargar distintas imágenes de los dientes de un paciente, una por diente. Tengo diente11, diente12....dienteYZ

Las fotos son jpg's que se guardan en la carpeta del paciente. Es decir, tengo:

/usuario1/diente11.jpg
/usuario1/diente12.jpg
...
/usuario1/diente48.jpg

Para hacer esto he usado MovieClipLoader pero no va como yo quisiera.
Se ejecuta pero sólo aparece la última imagen, y no se redimensiona para aparecer en pequeño.
Además el code del onLoadInit aparentemente no se ejecuta (ahí va el code para hacer la miniatura).

Código :

//BUCLE
//dientes adulto
//creamos la matriz bidimensional que necesitaremos para todas las piezas adulto
var container:Array=new Array();
for (var i=0; i<8;i++){
     container[i]=new Array();
}
var mcLoader:Array=new Array();
for (var i=0; i<8;i++){
     mcLoader[i]=new Array();
}


for(i=2;i<=2;i++){
   for(j=8;j<=8;j++){
      path = "pacientes/"+idclienteActual+"/"+"diente"+i+j+"/"+".jpg;"; //idclienteActual seria usuario1,usuario2,etc

      container[i][j] = createEmptyMovieClip(("container"+i+j), getNextHighestDepth());
      mcLoader[i][j]  = new MovieClipLoader();
      mcLoader[i][j].addListener(this);
      mcLoader[i][j].loadClip(path, container[i][j]);
      
      function onLoadInit(mc:MovieClip) {
         trace("onLoadInit: " + mc);
         mc._width=27.8;    //reajustamos el tamaño de la imagen a
         mc._height=27.8;   //los valores que nos interesen
            if(i==2 && j==1){ mc._x=100; mc._y=100; } //aqui ira la posicion de cada foto
              if(i==2 && j==8){ mc._x=300; mc._y=100; } //de momento solo para 2 fotos
      }   
      
      function onLoadError(mc:MovieClip){
         trace("error loading image" + mc);
      }
   }
}


¿Por qué no se ejecuta en onLoadInit? Estoy casi seguro que es por las matrices bidimensionales, ya que en el livedoc de adobe de loadClip, que es en lo que me he basado dice:

Código :

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
...

Lo que ocurre es que todos los ejemplos que encuentro son para cargar 1 imagen y para poder cargar muchas en un bucle yo he puesto que ambos (container y mcLoader) son arrays.
No se, lo mismo es más sencillo y lo estoy complicando :(

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ene 2010 10:10 pm
nota: me acabo de dar cuenta que en el code que pues los límites de los for están mal, los puse así para que sólo cargara una foto e ir probando cosas.
Los for deben empezar desde 1

for(i=1;i<=2;i++){
for(j=1;j<=8;j++){

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ene 2010 11:21 pm
Olvidarse del code anterior que lo veo muy complicado y recargado.
He creado 4 movieclips en el escenario de nombres (diente17,diente18,diente27,diente28) y este es el code que va en el frame, mucho mas sencillo que antes:

Código :

idclienteActual=1;

for(i=1;i<=2;i++)
{
   for(j=7;j<=8;j++)
   {
      pieza="diente"+i+j+".jpg";
      path = "pacientes\\"+idclienteActual+"\\"+pieza;
      var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
      var mcLoader:MovieClipLoader = new MovieClipLoader();
      mcLoader.addListener(this);
      nombreboton="miniDiente"+i+j;
      mcLoader.loadClip(path, nombreboton);
      function onLoadInit(mc:MovieClip)
      {
         //trace("onLoadInit: " + mc);
         mc._width=27.8;    //reajustamos el tamaño de la imagen a
         mc._height=27.8;   //los valores que nos interesen   
      }
   }
}


Como ven solo recorro el bucle para los valores 17,18,27,28.
Tengo 4 imágenes (diente17.jpg,diente18.jpg,diente27.jpg,diente28.jpg) que el programa carga perfectamente en los movieclips que he dejado en el escenario PERO no entra en el LoadInit, y por tanto no los redimensiona.

Es curioso porque si copio y pego este code 4 veces y cambio simplemente el nombre del fichero y el del nombreboton a mano, sí que va, los carga y redimensiona, pero en el bucle no.

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Ene 2010 11:21 pm
Cuando dije copio y pego me referia sin los for y poniendo 'i' y 'j' a mano para cada ocasión jeje

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ene 2010 06:00 pm
Hola, pues ya funciona, había cometido algunos fallos :)
Éste es el código correcto:

Código :

idclienteActual=1;

for(i=1;i<=2;i++)
{
   for(j=7;j<=8;j++)
   {
      pieza="diente"+i+j+".jpg";
      path = "pacientes\\"+idclienteActual+"\\"+pieza;
      var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
      var mcLoader:MovieClipLoader = new MovieClipLoader();
      var miListener:Object = new Object();
      mcLoader.addListener(miListener);
      
      nombreboton="miniDiente"+i+j;
      
      mcLoader.loadClip(path,nombreboton);
      
      miListener.onLoadInit = function(mc:MovieClip)
      {
         mc._width=27.8;    //reajustamos el tamaño de la imagen a
         mc._height=27.8;   //los valores que nos interesen   
      }
   }
}

Por daniel69

78 de clabLevel



 

firefox

 

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