Comunidad de diseño web y desarrollo en internet online

Array tipo (imagen1, imagen2, imagen++)

Citar            
MensajeEscrito el 20 Ene 2006 08:34 am
buenas...

tengo el siguiente codigo que lo que hace es un fade en cada carga de fotos que se encuentran externas en una carpeta "images" mediante un boton atras o siguiente. (las fotos son seguidas imagen001, imagen002, etc.)

Pero si quiero meter una foto mas en la carpeta, tengo que volver a editar el codigo en el Array para agregarle el nombre de la foto.

Mi pregunta es si se puede escribir el Array de modo que no haya que modificarlo de vuelta. O sea que simplemente se suba la foto o fotos a la carpeta mediante FTP y que se agreguen en la pelicula.

Quise hacer algo parecido, basandome en el tutorial de movieclips extenas aleatorias

Ya saben... el de:
loadmovie ("imagen" ADD (1 + random (X)) ADD "JPG");

pero ese tuto es "aleatorio" y no se como se podría agregar al Array.

Código :


// variables ------------------------------------------
// put the path to your pics here, include the slashes (ie. "pics/")
// leave it blank if they're in the same directory
this.pathToPics = "images/";
// fill this array with your pics
this.pArray = ["image0.jpg", "image1.jpg", "image2.jpg", "image3.jpg", "image4.jpg", "image5.jpg", "image6.jpg", "image7.jpg", "image8.jpg", "image9.jpg"];
this.fadeSpeed = 20;
this.pIndex = 0;
// MovieClip methods ----------------------------------
// d=direction; should 1 or -1 but can be any number
//loads an image automatically when you run animation
loadMovie(this.pathToPics+this.pArray[0], _root.photo);
MovieClip.prototype.changePhoto = function(d) {
   // make sure pIndex falls within pArray.length
   this.pIndex = (this.pIndex+d)%this.pArray.length;
   if (this.pIndex<0) {
      this.pIndex += this.pArray.length;
   }
   this.onEnterFrame = fadeOut;
};
MovieClip.prototype.fadeOut = function() {
   if (this.photo._alpha>this.fadeSpeed) {
      this.photo._alpha -= this.fadeSpeed;
   } else {
      this.loadPhoto();
   }
};
MovieClip.prototype.loadPhoto = function() {
   // specify the movieclip to load images into
   var p = _root.photo;
   //------------------------------------------
   p._alpha = 0;
   p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
   this.onEnterFrame = loadMeter;
};
MovieClip.prototype.loadMeter = function() {
   var i, l, t;
   l = this.photo.getBytesLoaded();
   t = this.photo.getBytesTotal();
   if (t>0 && t == l) {
      this.onEnterFrame = fadeIn;
   } else {
      trace(l/t);
   }
};
MovieClip.prototype.fadeIn = function() {
   if (this.photo._alpha<100-this.fadeSpeed) {
      this.photo._alpha += this.fadeSpeed;
   } else {
      this.photo._alpha = 100;
      this.onEnterFrame = null;
   }
};
// Actions -----------------------------------------
// these aren't necessary, just an example implementation
this.onKeyDown = function() {
   if (Key.getCode() == Key.LEFT) {
      this.changePhoto(-1);
   } else if (Key.getCode() == Key.RIGHT) {
      this.changePhoto(1);
   }
};
Key.addListener(this);

Si alguien tiene un tiempito para ayudarle le estaré MUY AGRADECIDO.

Gracias.

Por gera

5 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Ene 2006 07:23 pm
Hola,

Lo que se me ocurre para solucionar tu problema es que guardes en algun sitio, por ejemplo un txt o una base de datos la variable que indica el número de imágenes que tiene el array y luego cargarla mediante AS con LoadVars.

Mantener un nombre similar entre las imagenes "im1.jpg" "im2.jpg" ... "imx.jpg" donde X es el numero de imágenes.

Luego que el array cargue las imagenes asi:

Código :

array = "im" add 1 add ".jpg";
for (i=1;i<num;i++){
   array+= ",im" add (i+1) add ".jpg";
}
array=array.split(",");


Te explico un poco el proceso:
    Primero guardamos el nombre de la primera foto para que, según esta planteado el for, no nos incluya el undefined.

    El for va guardando todos los nombres en la variable array separados por comas, la variable "num" es la que habrías cargado con LoadVars.

    Seguidamente creamos el array propiamente dicho haciendo un split y tomando como separador las comas.


Asi consigues un array dinámico que carga todos los nombres de las fotos según la variable cargada del txt o de la base de datos.

Y en cuanto a la carga aleatoria lo que haces es que el random devuelva un número que usaras como posición del array para cargar el nombre, no el nombre propiamente dicho.

Es la primera vez que publico algo asi en el foro asi que no se si es una buena solucion pero espero haberte servido de ayuda.

Saludos. ^^

Por Lulu

11 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 Ene 2006 08:28 pm
Hola gera ... creo que lo mejor es que uses XML ... checate este Tuto

Saludos :wink:

Por alffa

276 de clabLevel



 

Mi casa o mi trabajo...depende (México)

firefox

 

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