Comunidad de diseño web y desarrollo en internet online

[Mosaico] Formar de varias imagenes una sola

Citar            
MensajeEscrito el 19 Oct 2009 04:32 pm
Que tal, buenas taredes.
Este es mi primer post, y lo hago debido a que tengo un problema.

Tengo que armar un mosaico de fotos, siempre seleccionadas de la misma manera importandolas desde un xml.
La idea es que entre todas las fotos formen una foto ya puesta en la biblioteca.
Luego se debe hacer click sobre la imagen para que te abra otra panatalla y te de detalles sobre la misma.

Aca pongo el codigo que tengo hasta el momento que es dividiendo la imagen de fondo, en varios cuadrados. (Sobre cada una de estas imagenes deberia cargar una imagen de un xml y poder lograr que esta capa sea un transparente.

Código :


import flash.display.*;
import flash.geom.*;
import flash.filters.*;
rd = Math.random;
cimg=0; c = 4 ; f = 4;
tipo = false; imagen = "imagen";
puzzle("imagen", 20, 30, "cuadrados");

function puzzle(imagen, f, c, lin) {
   // creando un contenedor para todas las piezas: 
   puzz = this.createEmptyMovieClip("puzz", this.getNextHighestDepth());
   for (hg=0; hg<4*tpz; hg++){pz[hg].removeMovieClip();}
   a=new Array(1,12,0,.35,2,12,1,.15,3,2,4,.2,5,4,6,.5,7,6,8,.5,10,12,2,.15,9,8,10,.4,11,12,10,.15);
   tpz = f*c;
   c>f ? j=20/c : j=20/f;
   bF = new BevelFilter(1,45,0xffffff,.5,0,.5,j,j,4,3,"inner",false);
   img = BitmapData.loadBitmap(imagen);
   w = img.width; h = img.height; m1 = w/(3*c); m2 = h/(3*f);
   if(!cimg){b = []}//solo en demo.
   // creando matriz delados congruentes entre piezas contiguas
   p = []; d = 0; 
   for (m=0; m<4*tpz; m+=4) {
      p[m+7] = p[m+1] = d++;
      if((d-1)%(2*c) == 2*(c-1)) {p[m+1]=p[(m+4)%(4*tpz) +3]=2*tpz-2};
      p[m+4*c] = p[m+2] = d++;
      if(d>2*(tpz-c) && d%2 == 0) {p[m+2]=p[(m+4*c)%(4*tpz)]=2*tpz-1};
   }
   for (g=0; g<2*tpz; g++) {
      if(!cimg){//solo en demo;
      b[g] = [];
      b[g][0] = new Point(m1, m2);
      alea()<0 ? sig=-1 : sig=1;
      if (g%2 == 0) { //puntos para lados horizontales
         b[g][12] = new Point(m1, 4*m2);
         b[g][4] = new Point(m1-m1*sig*.6, m2*(2+alea()));
         b[g][6] = new Point(m1-m1*sig*.9, m2*(2.5+alea()));
         b[g][8] = new Point(m1-m1*sig*.6, m2*(3+alea()));
      } else { //puntos para lados verticales
         b[g][12] = new Point(4*m1, m2);
         b[g][4] = new Point(m1*(2+alea()), m2-m2*sig*.6);
         b[g][6] = new Point(m1*(2.5+alea()), m2-m2*sig*.9);
         b[g][8] = new Point(m1*(3+alea()), m2-m2*sig*.6);
      }
      for (r=0; r<29; r+=4){ //puntos centrales para H y V 
         b[g][a[r]] = Point.interpolate(b[g][a[r+1]],b[g][a[r+2]],a[r+3]+alea());
      }
   }
   }//fin cimg solo en demo;
   pz = [];
   pt=[];
   for (n=0; n<f*c; n++) {
      
      //  cargando piezas en el contenedor:
      pz[n] = puzz.createEmptyMovieClip("pz"+n, n+1);

      //pz[n] = createEmptyMovieClip("pz"+n, n+1);
      tmp2 = new BitmapData(5*m1, 5*m2, true, 0);
      pt[n] = new Point((n%c)*3*m1-m1, Math.floor(n/c)*3*m2-m2);
      tmp2.copyPixels(img,new Rectangle(pt[n].x,pt[n].y,5*m1,5*m2),null);
      //dibujando los 4 lados de cada pieza
      for (z=0; z<4; z++) {
         z == 2 ? sy=3*m2 : sy=0; z == 1 ? sx=3*m1 : sx=0;
         g = p[4*n+z];
         pz[n].beginBitmapFill(tmp2);
         pz[n].moveTo(5*m1/2, 5*m2/2);
         pz[n].lineTo(b[g][0].x+sx, b[g][0].y+sy);
         if (g>(2*tpz-3) || lin){pz[n].lineTo(b[g][12].x+sx, b[g][12].y+sy);}
         else {
            pz[n].lineTo(b[g][1].x+sx, b[g][1].y+sy);
            for (j=2; j<12; j+=2){
               pz[n].curveTo(b[g][j].x+sx, b[g][j].y+sy,b[g][j+1].x+sx,b[g][j+1].y+sy);
            }
            pz[n].lineTo(b[g][12].x+sx, b[g][12].y+sy);
         }
         pz[n].lineTo(5*m1/2, 5*m2/2);
         pz[n].endFill();
      }
      //doblando la asignacion para evitar fallos por decimales.
      pz[n]._x = pt[n].x; pt[n].x = pz[n]._x;
      pz[n]._y = pt[n].y; pt[n].y = pz[n]._y;
      pz[n].filters = [bF];
      pz[n].v = n;
   }
   
   cimg=0;//solo en demo
}//fin puzzle






Gracias y espero respuestas!! Me estoy volviendo loco!!
Saludos!

Por skaplun

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Oct 2009 04:51 pm
Por favor!!! Ayudenme!!!!

Por skaplun

1 de clabLevel



 

chrome

 

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