Comunidad de diseño web y desarrollo en internet online

AJUSTAR ESTA GALERIA

Citar            
MensajeEscrito el 25 Feb 2009 07:39 pm
Hola a todos, hice una galería con un codigo que encontre en algún lugar (no recuerdo donde) funciona muy bien, pero quisiera saber si es posible hacer que con cada foto muestre algo así como un pie de pagina, quisiera saber como tendría que modificarla para hacer esto, el xml esta así:

Código :

 <?xml version="1.0" ?> 
   <exploracion carpeta="minis">
        <archivo nombre="imagen01.jpg" size="35" /> 
        <archivo nombre="imagen02.jpg" size="40" /> 
        <archivo nombre="imagen03.jpg" size="35" />
      <archivo nombre="imagen04.jpg" size="35" />
      <archivo nombre="imagen05.jpg" size="33" />
      
     </exploracion>


y en flash así:

Código :

stop();
System.useCodepage = true;
XML.prototype.ignoreWhite = true;
import mx.transitions.Tween;
var separacion:Number = 116;
//para que separe las imagenes que se van a poner, diagramaciòn//
var pagina_actual:Number = 1;//pagina de entrada, donde comienza a contar//
var num_paginas:Number;
var IMG_array:Array;//se crea la matriz, como son imagenes es img//
var miniaturasXML:XML = new XML();//Hay que declarar el archivo externo, crear un espacio virtual para el//
miniaturasXML.onLoad = mostrarMiniaturas;//se crea otra variable// 
miniaturasXML.load("lista.xml");//ahora si carga elarchivo original//
function mostrarMiniaturas():Void {    //dice que mostrar miniaturas es una funciòn//
   var fila:Number = 0;//el proporciona automatico las filas y las columnas segun el espacio que le dimos, por eso se pone en cero//
   var col:Number = 0;
   IMG_array = this.firstChild.childNodes;//contiene la carpeta de las fotos, y childnodes es cada foto//
   num_paginas = Math.ceil(IMG_array.length/5);//aca le dice cuantas fotos quiero poner por pagina//
   var lienzo:MovieClip = _root.createEmptyMovieClip("lienzo_miniaturas", _root.getNextHighestDepth());//aca van a ir las fotos pequeñas// 
   lienzo.cacheAsBitmap = true;//hace un aprecarga para que luego llame al xml//
   lienzo._x = 100;//uno lo ubica donde quiera//
   lienzo._y = 200;
   lienzo.setMask(mascara_mc);//se le pone mascara, es la misma masacara pero por codigo, para que no las muestre todas de una//
   for (var k:Number = 0; IMG_array[k]; k++) {//recorre rapidamente las imagenes y las va mostrando// 
      if (col>50) {//si las columnas ya son 50, añada otra fila, esto se puede cambiar como uno quiera//
         col = 0;
         fila++;
      }
      crearMiniatura(col, fila, IMG_array[k].attributes.nombre);//esta diciendo de donde las saca, y que luego le de columna//
      col++;
   }
}
function crearMiniatura(columnaF:Number, filaF:Number, ruta:String) {//la F espara que no generre  erores por que estas ya existen en el sistema//
   var bajo_clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("bajo_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
   var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());//aqui importa las imag. del array a una fila y columna//
   var mi_mcl:MovieClipLoader = new MovieClipLoader();//se crean mini movie clips dentro del grande para que vayan las foticos//
   var miListener:Object = new Object();//sirve para que recorra la lista y se los aplique a todos//
   mi_mcl.addListener(miListener);
   clip.valor = "aaa";//es como nombre de instancia para que exista dentro del sistema//
   mi_mcl.loadClip("minis/"+ruta, clip);//le da la ruta para que lo busque en la carpeta//
   miListener.onLoadStart = function(target_mc:MovieClip) {
      target_mc._alpha = 0;//para que la foto vaya apareciendo mientras carga//
   };
   miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {//proporcina la carga con el peso total para distribuir el alpha//
   }; 
   miListener.onLoadInit = function(target_mc:MovieClip) {
      target_mc._x = (separacion*columnaF)+(100-target_mc._width)*0.5;//aqui las redimenciona deacuerdo al espacio que tienen las columnas//
      target_mc._y = (separacion*filaF)+(100-target_mc._height)*0.5;
      bajo_clip._x = target_mc._x-5;//5 pixeles de margen respecto a la imagen//
      bajo_clip._y = target_mc._y-5;
      with (bajo_clip) {
         beginFill(0xcccccc);//comience la linea con este color//
         lineStyle(1, 0xc92725, 100);//grosor de linea, y en este caso combina color//
         lineTo(target_mc._width+10, 0);//los mas 10, son espacio como del marco de la linea//
         lineTo(target_mc._width+10, target_mc._height+10);
         lineTo(0, target_mc._height+10);
         lineTo(0, 0);
         endFill();
      }
      bajo_clip.onRelease = function() {//ya toca configurar la foto grande//
         verFotoGrande(ruta);
      };
      var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
   };
}
function verFotoGrande(ruta:String) {

   clearInterval(intervaloColor);//limpia el clippara que aparezca el otro//
   var grande:MovieClip = _root.createEmptyMovieClip("grande_mc", 2*IMG_array.length+11);
   var bajo_grande:MovieClip = _root.createEmptyMovieClip("bajo_grande_mc", 2*IMG_array.length+10);
   grande._y = 100;
   var grande_mcl:MovieClipLoader = new MovieClipLoader();
   var grandeListener:Object = new Object();
   grande_mcl.addListener(grandeListener);
   grande_mcl.loadClip("originales/"+ruta, grande);
   grandeListener.onLoadStart = function(target_mc:MovieClip) {
      myColor = new Color(target_mc);
      myColorTransform = new Object();
      myColorTransform = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
      myColor.setTransform(myColorTransform);//sobre una variable se aplica la otra//
   };
   grandeListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {//lo mismo que las pequeñas, carga segun el peso//
   };
   grandeListener.onLoadInit = function(target_mc:MovieClip) {
      target_mc._x = 210+Math.round((350-target_mc._width)*0.5);//se le da el tamaño del ancho, y el borde//
      target_mc._y = 375+Math.round((263-target_mc._width)*0.5);
      bajo_grande._x = target_mc._x-5;
      bajo_grande._y = target_mc._y-5;
      with (bajo_grande) {//lo mismo tambien para la margen//
         beginFill(0xcccccc);
         lineStyle(2, 0xc92725, 100);
         lineTo(target_mc._width+10, 0);
         lineTo(target_mc._width+10, target_mc._height+10);
         lineTo(0, target_mc._height+10);
         lineTo(0, 0);
         endFill();
      }
      var indiceColor:Number = 255;
      intervaloColor = setInterval(cambiarColor, 10);
      function cambiarColor() {
         myColorTransform = {ra:100, rb:indiceColor, ga:100, gb:indiceColor, ba:100, bb:indiceColor, aa:100, ab:0};
         myColor.setTransform(myColorTransform);
         indiceColor -= 2;
         if (indiceColor == -1) {
            clearInterval(intervaloColor);
         }
      }
   };
}
function moverLienzo(posX:Number):Void {
   var myTween:Tween = new Tween(lienzo_miniaturas, "_x", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._x, posX, 1, true);
}
pMenos_btn.enabled = false;
pMenos_btn._alpha = 30;//para cambiar la tonalidad cuando activa el botòn//


Si alguien sabe como puedo hacerlo le argadezco mucho la ayudita. Chaos

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 25 Feb 2009 10:11 pm
sinceramente me dio flojera leer un codigo tan compacto
pero solo agrega otro parametro dentro de cada nodo del XML y lo lee y lo pones dentro de un texto dinamico

Por FeNtO

BOFH

5091 de clabLevel

18 tutoriales

1 ejemplo

  Bastard Operators From Hell

FeNtO DataCenter

firefox
Citar            
MensajeEscrito el 27 Feb 2009 02:26 pm
Pues esque es precisamente en eso que necesito la ayuda, saber como le pongo el otro parametro, no soy muy buena en esto de la programación y lamentablemente para ayudarme en esto es necesario que a alguien no le de pereza revisar aunque sea un poquito el codigo, en todo caso muchas gracias....

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

firefox
Citar            
MensajeEscrito el 01 Mar 2009 09:11 am
Continuando con la idea de FeNtO, la idea seria agregar otros valores en lo nodos del documento XML:
por ejemplo quiero agregar un campo para la descripcion que para nuestro caso lo llamare descripcion... debera quedar asi:

Código :

 <?xml version="1.0" ?> 
   <exploracion carpeta="minis">
        <archivo nombre="imagen01.jpg" size="35" descripcion="texto"/> 
        <archivo nombre="imagen02.jpg" size="40" descripcion="texto"/> 
        <archivo nombre="imagen03.jpg" size="35" descripcion="texto"/>
      <archivo nombre="imagen04.jpg" size="35" descripcion="texto"/>
      <archivo nombre="imagen05.jpg" size="33" descripcion="texto"/>

     </exploracion>


lo unico que hacemos es agregar descripcion="texto", donde texto es lo que tu quieres mostrar...
ahora en el escenario deberas crear una caja de texto dinamico y colocarlo donde tu creas conveniente, de tal manera que no se solape con la imagen cuando aparece en grande... seleccionada la caja de texto que acabas de crear en tu panel de propiedades ponle nombre a la instancia por ejemplo yo lo llamare des_txt

Ahora si en tu codigo vamos ha agregar un par de lineas:
//////////////////////////////////////////////////////////////////////////////////////////////////////

var col:Number = 0;
IMG_array = this.firstChild.childNodes;//contiene la carpeta de las fotos, y childnodes es cada foto//
num_paginas = Math.ceil(IMG_array.length/5);//aca le dice cuantas fotos quiero poner por pagina//
var lienzo:MovieClip = _root.createEmptyMovieClip("lienzo_miniaturas", _root.getNextHighestDepth());//aca van a ir las fotos pequeñas//
lienzo.cacheAsBitmap = true;//hace un aprecarga para que luego llame al xml//
lienzo._x = 100;//uno lo ubica donde quiera//
lienzo._y = 200;
lienzo.setMask(mascara_mc);//se le pone mascara, es la misma masacara pero por codigo, para que no las muestre todas de una//
for (var k:Number = 0; IMG_array[k]; k++) {//recorre rapidamente las imagenes y las va mostrando//
if (col>50) {//si las columnas ya son 50, añada otra fila, esto se puede cambiar como uno quiera//
col = 0;
fila++;
}
////////////////////////////////////////
// aqui hacemos la primera modificacion
//crearMiniatura(col, fila, IMG_array[k].attributes.nombre); cambiara a:
//////////////////////////////////////////

crearMiniatura(col, fila, IMG_array[k].attributes.nombre,k);esta diciendo de donde las saca, y que luego le de columna//
//enviamos k en esta funcion para que cuando le den click auna imagen en miniatura mande llamar al
//nodo correspondiente de esa imagen, pues recuerda que este ciclo recorrera todos los nodos del archivo XML//

col++;
}
}
function crearMiniatura(columnaF:Number, filaF:Number, ruta:String,id:Number) {//la F espara que no generre erores por que estas ya existen en el sistema//
//debido a que necesitamos otro parametro para la funcion debemos agregarlo en la declaracion de la funcion id tomara el valor k//
var bajo_clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("bajo_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());//aqui importa las imag. del array a una fila y columna//
var mi_mcl:MovieClipLoader = new MovieClipLoader();//se crean mini movie clips dentro del grande para que vayan las foticos//
var miListener:Object = new Object();//sirve para que recorra la lista y se los aplique a todos//
mi_mcl.addListener(miListener);
clip.valor = "aaa";//es como nombre de instancia para que exista dentro del sistema//
mi_mcl.loadClip("minis/"+ruta, clip);//le da la ruta para que lo busque en la carpeta//
miListener.onLoadStart = function(target_mc:MovieClip) {
target_mc._alpha = 0;//para que la foto vaya apareciendo mientras carga//
};
miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {//proporcina la carga con el peso total para distribuir el alpha//
};
miListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = (separacion*columnaF)+(100-target_mc._width)*0.5;//aqui las redimenciona deacuerdo al espacio que tienen las columnas//
target_mc._y = (separacion*filaF)+(100-target_mc._height)*0.5;
bajo_clip._x = target_mc._x-5;//5 pixeles de margen respecto a la imagen//
bajo_clip._y = target_mc._y-5;
with (bajo_clip) {
beginFill(0xcccccc);//comience la linea con este color//
lineStyle(1, 0xc92725, 100);//grosor de linea, y en este caso combina color//
lineTo(target_mc._width+10, 0);//los mas 10, son espacio como del marco de la linea//
lineTo(target_mc._width+10, target_mc._height+10);
lineTo(0, target_mc._height+10);
lineTo(0, 0);
endFill();
}
bajo_clip.onRelease = function() {//ya toca configurar la foto grande//
//cuando le dan click al boton se manda a desplegar la Foto correspondiente pero en grande
//ahora debemos tambien mandar como parametro el id para saber a cual nodo se refiere

verFotoGrande(ruta,id);
};
var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
};
}
//como debemos recibir un nuevo parametro debemos cambiar la declaracion de nuestra funcion
function verFotoGrande(ruta:String,id:Number) {
//como ahora si sabemos que nodo es a travez del id que traemos
//cambiamos el contenido de la caja de texto que habiamos creado en el escenario
//y leemos el atributo que agregamos al nodo en el archivo XML (descripcion)
des_txt.text=IMG_array[id].attributes.descripcion;


clearInterval(intervaloColor);//limpia el clippara que aparezca el otro//
var grande:MovieClip = _root.createEmptyMovieClip("grande_mc", 2*IMG_array.length+11);
var bajo_grande:MovieClip = _root.createEmptyMovieClip("bajo_grande_mc", 2*IMG_array.length+10);
grande._y = 100;
var grande_mcl:MovieClipLoader = new MovieClipLoader();
var grandeListener:Object = new Object();
grande_mcl.addListener(grandeListener);
grande_mcl.loadClip("originales/"+ruta, grande);
grandeListener.onLoadStart = function(target_mc:MovieClip) {
myColor = new Color(target_mc);
myColorTransform = new Object();
myColorTransform = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
myColor.setTransform(myColorTransform);//sobre una variable se aplica la otra//
};
grandeListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {//lo mismo que las pequeñas, carga segun el peso//
};
grandeListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = 210+Math.round((350-target_mc._width)*0.5);//se le da el tamaño del ancho, y el borde//
target_mc._y = 375+Math.round((263-target_mc._width)*0.5);
bajo_grande._x = target_mc._x-5;
bajo_grande._y = target_mc._y-5;
with (bajo_grande) {//lo mismo tambien para la margen//
beginFill(0xcccccc);
lineStyle(2, 0xc92725, 100);
lineTo(target_mc._width+10, 0);
lineTo(target_mc._width+10, target_mc._height+10);
lineTo(0, target_mc._height+10);
lineTo(0, 0);
endFill();
}
var indiceColor:Number = 255;
intervaloColor = setInterval(cambiarColor, 10);
function cambiarColor() {
myColorTransform = {ra:100, rb:indiceColor, ga:100, gb:indiceColor, ba:100, bb:indiceColor, aa:100, ab:0};
myColor.setTransform(myColorTransform);
indiceColor -= 2;
if (indiceColor == -1) {
clearInterval(intervaloColor);
}
}
};
}
function moverLienzo(posX:Number):Void {
var myTween:Tween = new Tween(lienzo_miniaturas, "_x", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._x, posX, 1, true);
}
pMenos_btn.enabled = false;
pMenos_btn._alpha = 30;//para cambiar la tonalidad cuando activa el botòn//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

Espero no haberte confundido...

Por HugoIP

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Mar 2009 05:44 pm
Muchas gracias por tu aporte, lo estaré ensayando y te cuento como me fue...

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 02 Mar 2009 02:45 pm
Está super bien explicado y funcionó perfecto, muchas gracias por haberte tomado el tiempito de mirarlo.....

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

firefox
Citar            
MensajeEscrito el 02 Abr 2009 10:23 pm
Hola a todos, inicialmente estaba ensayando solo con 5 fotos y no habia tenido problema, pero al añadir mas imagenes resulta que me queda un linea larga arriba y necesito que por ejemplo se vean de a 5. En la linea 22 dice algo de set masc como para poner una mascara y mostrar solo las que necesitara hasta hacerle clic al boton, ensaye algunas cosas pero siguen apareciendo todas las imagenes.

Finalmente puse una mascara en el escenario y la llame mascara_mc, con esto me muestra las fotos de a 5 pero al entrar en la galeria no me muestra bien la tira de imagenes en miniatura, como si no las cargara, solo las muestra al darle clic al boton de avanzar las imagenes y devolverme, alguien sabe como puedo solucionarlo para que se vean bien desde el inicio??
:( Muchas gracias

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 06 Abr 2009 05:46 pm
Hola, Mira, lo que vas a tener que crear es un clip que funcione como mascara, luego le colocas el tamaño y por ultimo enmascaras.

Código ActionScript :

//-- Crear Mascara --// 
galeria.createEmptyMovieClip("miniaturas", 0);   
galeria.createEmptyMovieClip("mascara", 1);  
//Esta es la parte que importa 
//img_w Ancho de las imagenes
//img_s Espacio entre las imagenes
//img_n Numero de imagenes
//img_h Alto de las imagenes
//Puedes sustituri esos valores por cifras en lugar de variables o darle valor a las variables
setArea( galeria.mascara, (img_w + img_s) * img_n, img_h ); 
galeria.miniaturas.setMask( galeria.mascara );

//-- Utilerias --//  function setArea( clip:MovieClip, w:Number, h:Number, color:Number, alpha:Number ):Void {    //Dibujamos un cuadrado    clip.clear();    clip.beginFill( color?color:0, alpha?alpha:0 );    clip.moveTo( 0, 0 );    clip.lineTo( w, 0 );    clip.lineTo( w, h );    clip.lineTo( 0, h );    clip.endFill();    }

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

msie7
Citar            
MensajeEscrito el 06 Abr 2009 05:48 pm
La funcion setArea, salio comentada

Código ActionScript :

function setArea( clip:MovieClip, w:Number, h:Number, color:Number, alpha:Number ):Void {
    //Dibujamos un cuadrado
    clip.clear();
    clip.beginFill( color?color:0, alpha?alpha:0 );
    clip.moveTo( 0, 0 );
    clip.lineTo( w, 0 );
    clip.lineTo( w, h );
    clip.lineTo( 0, h );
    clip.endFill();    }

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

msie7

 

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