Comunidad de diseño web y desarrollo en internet online

funcion avanzar con set interval, toma de datos de un array

Citar            
MensajeEscrito el 04 Oct 2010 06:43 pm
buen dia chicos tengo este script

Código ActionScript :


var image:Array = new Array();
image = _root.img.split(",")
//trace(image)

var msk:Array = new Array();
msk = _root.masca.split(",")
//trace(msk)

var datos:Array = new Array();
for (cont = 0; cont < image.length; cont ++)
{
   datos[cont] = new Array(image[cont],msk[cont]);
}
var total:Number = image.length;


aqui tomo los datos de un txt q se carga en el preloader de la animacion y los almaceno en un array por cada tipo de datos, 2 en total (image y msk) y luego armo un array q contiene los 2 tipos - datos(image,msk) -
de la web codigoactionscript.org descargue un sistema de transiciones de fotos que esta construido en una clase externa e importada a flash de esta forma

Código ActionScript :

import img.ImgTransition;
var foto:ImgTransition = new ImgTransition(this, "foto1.jpg", 10, 10);
//
bot1.onRelease = function()
{
foto.transition("foto1.jpg", "mascara1.swf", 5);
};
bot2.onRelease = function()
{
foto.transition("foto2.jpg", "mascara2.swf", 3);
};


como pueden observar la manera de hacer el cambio de imagen me indica que debo colocar en el escenario x cantidad de botones que me sirvan para pasar por cada imagen; mi idea es almacenar en un array como les dije antes los datos que estoy tomando desde un archivo txt y hasta alli todo va bien el problema se me presenta al momento de asignar a cada boton el dato que le corresponde intente haciendo un ciclo for de esta forma

Código ActionScript :

for(i = 0; i < total; i ++)
{
   this["bot" + i].onRelease = function()
   {
      foto.transition(image[i],msk[i],i);
   }
}


pero no me funciono, sera que me pueden ayudar? lo quiero hacer asi para no estar editando el fla cada vez que desee añadir una nueva fotografia; por fa alguien que me de una manito..

aqui estoy tratando de hacer la funcion para avanzar a la siguiente foto automaticamente si no se presiona el boton corespondiente... pero igual necesito primero areglar la funcion de los botones para poder hacer funcionar esta... de ante mano gracias y espero su ayuda.

Código ActionScript :

 
function siguiente(){
    this["bot" + i].onRelease()
   }
var refresca = setInterval(siguiente, 1000)

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 04 Oct 2010 08:11 pm
Prueba así:

Código ActionScript :

for(i = 0; i < total; i ++) 
{ 
   this["bot" + i].nr = i
   this["bot" + i].onRelease = function() 
   { 
      foto.transition(image[this.nr],msk[this.nr],this.nr); 
   } 
} 


El botón tiene que ser un MovieClip

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Oct 2010 12:49 am
ok gracias mil!! me funciono muy bien ahora voy con el setInterval; pero antes me podrias explicar esta linea

Código ActionScript :

this["bot" + i].nr = i


ahora el setInterval hice esto pero no me anda; intente colocandolo dentro del for pero luego lo saque aparte y de ninguna de las dos formas me anda

Código ActionScript :


 function siguiente(){
     this["bot" + i].onRelease()
   }
   var refresca = setInterval(siguiente, 1000)//esto era solo tiempo de prueba



podrias ayudarme por fa? he leido tambn q si se usa el setInterval hay que hacer tambn un clearInterval como haria eso tambn? y de nuevo mil millones de gracias

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 05 Oct 2010 01:52 pm
La propiedad hay que copiarla al MovieClip, sino se sobreescribe en el loop y siempre ejecuta el último. ¿Para que quieres el setInterval?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Oct 2010 11:37 pm
a q te refieres con copiarla al movieClip?

estoy tratando de hacer que las fotos avancen sin presionar el boton corespondiente.

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 06 Oct 2010 01:56 am
hacer que sea una propiedad del MovieClip y no una variable de un contador.
¿Para que quieres el setInterval?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Oct 2010 04:15 pm
el set interval lo quiero usar para hacer que las fotos avancen luego de un tiempo sin presionar el boton corespondiente a cada una.

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 06 Oct 2010 07:37 pm
Tienes que tener una función adelante y atrás, o cambiar que puedas llamar desde el setInterval directamente, mirate que es lo que hacen los botones

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Oct 2010 08:04 pm
exacto eso es lo q estoy tratando, fijate en codigoactionscript.org de donde baje el ejemplo decian que hiciera una funcion a la cual llame "siguiente" en la cual iba a colocar lo q esta dentro del onRelease de los botones, eso lo intente pero no me salio nada, fijate hice esto, probe colocarle un segundo de retardo para ver rapido si funcionaba pero nunca hizo el cambio

Código ActionScript :


 function siguiente(){ 
     this["bot" + i].onRelease() 
   } 
   var refresca = setInterval(siguiente, 1000)
 

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 06 Oct 2010 08:06 pm
¿Que significa "i" dentro de la función siguiente?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Oct 2010 08:09 pm
lo q intente fue colocar esa funcion tambn dentro del for anterior

Código ActionScript :


for(i = 0; i < total; i ++)  
{  
   this["bot" + i].nr = i 
   this["bot" + i].onRelease = function()  
   {  
      foto.transition(image[this.nr],msk[this.nr],this.nr);  
   }  
   function siguiente(){  
     this["bot" + i].onRelease()  
   }  
   var refresca = setInterval(siguiente, 1000) 
} 


Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 06 Oct 2010 08:22 pm
Redeclaras la función tantas veces como se ejecute el loop y la pisas siempre con el último valor, de allí que no funcione. Lo que tienes que hacer es lo siguiente:

- Tener un contador (variable) con el numero actual de imagen que se incremente o decremente cada vez que se le da al botón
- Tener una función siguiente que use foto.transition, pero en vez de usar this.nr, tiene que usar contador ... de hecho si lo recibe como parámetro, los botones también la llaman y unificas el código
- El setInterval llama a esta función

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Oct 2010 08:49 pm
hey... no te entendi O.o jeje

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 06 Oct 2010 08:51 pm
jeje, dale tiempo, esfuerzo, y pregunta por parte.
Si tu nivel de programación es muy básico, mejor dilo y te ahorro el paseo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Oct 2010 02:26 pm
en realidad toy prendiendo aun XD

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 19 Oct 2010 02:32 pm
gracias por tu ayuda, tenia problemas cn mi internet, bueno probemos por partes , como haria el contador?

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 19 Oct 2010 02:37 pm
Algo así:

Código ActionScript :

var cont:Number = 0;

//en el onPress del botón siguiente
siguiente.onPress = function(){
  cont++
  ///lo que tengas
}
//en el onPress del botón anterior
anterior.onPress = function(){
  cont--
  ///lo que tengas
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Oct 2010 04:45 pm
pero es q no es en si una galeria de fotos de esas q tienen boton de siguiente y anterior, sino q son x cantidad de botones (en mi caso 5) y cada uno llama una foto aplicandole la mascara corespondiente.

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 19 Oct 2010 05:11 pm
Error de diseño: cada botón tiene que llamar a una misma función pasándole el nro de foto que quiere, esa función actualiza el contador. Sino, deberás pagar las consecuencias del mal diseño: repites lo del contador por cada uno de los botones.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Oct 2010 06:22 pm
sip, ya lo solucione jeje hice un boton y la funcion siguiente , fijate

Código ActionScript :


bot1.onRelease = function()
{
   
   trace(image[cont] +  "----" +msk[cont])
   if(cont == total)//hice este if para hacer que vuelva a comenzar la seuencia, me funciona pero no se si sea la mejor forma jeje
   {
      foto.transition(image[0],msk[0],5)
      cont = 0
   }
   cont++
   foto.transition(image[cont],msk[cont],5)
   
}

//funcion siguiente
function Next()
{
   bot1.onRelease()
}
setInterval(Next,7000)




gracias por tu ayuda de verdad te lo agradesco mucho.

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox

 

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