Comunidad de diseño web y desarrollo en internet online

Intervalo en bucle do while

Citar            
MensajeEscrito el 20 Ago 2008 07:55 am
Buenas, nuevamente acudo al foro para ver si me pueden dar una mano.

en el siguiente código:

Código :

 
var myVar:Number = 10;
do { 

 imagen_mc._alpha = myVar;
 myVar++; 
//funcion de retardo en x segundos
} 
while (myVar <= 100); 


necesitaria saber como hacer para retrasar o que se ejecute mas lento el bucle, ya que si bien funciona perfecto, se ejecuta tan rapido que se pierde el efecto que propone. Lo ideal seria colocar un "wait x segundos" dsp de "myVar++" la cuestion es que no se si en AS hay algo así o porlomenos no lo encontre, seria bueno saber como lo puedo hacer.

Otra cosa aparte, me gustaria (si es posible) saber como hacer un marco adaptable a una imagen. Osea, cargo una imagen "X" con la funcion "loadMovie" y automaticamente se visualiza un marco que se adapta a las dimensiones de la imagen (primero el marco, luego la img), muy comun en algunas galerias que e visto x ahi. Desde ya agradezco si me pueden ayudar con estos 2 temas, un gran saludo!!

Por Flown

11 de clabLevel



 

Arg.

msie7
Citar            
MensajeEscrito el 20 Ago 2008 08:46 am
No se si sabías que ese código que has puesto en un procesador de hoy en dia y con los lenguajes orientados a objetos actuales se ejecuta en millonésimas de segundo, por lo tanto que no puedes ver el efecto, si se viera el efecto eso significaría que todavía estábamos con Basic en LTEL 640 :lol:

Bueno, lo que necesitas se resuelve con onEnterFrame, esta instrucción ejecuta las acciones que le asignes a la velocidad de los fps del flash player, por ejemplo si está configurado a 12 frames / segundo ejecutará la acción 12 veces en un segundo, algo como esto:

Código ActionScript :

imagen_mc.onEnterFrame = function(){
 
  this._alpha++;

  if(this._alpha >= 100){

      delete this.onEnterFrame;

  }

}


Lo otro que preguntas se resuelve cargando la imagen con MovieClipLoader.loadClip y cuando carga puedes conocer sus propiedades, por lo tanto su ancho y su alto, por lo tanto animas el marco hasta esas medidas y después muestras la imagen que tenía un alpha 0. Aquí te dejo un link que te puede ayudar:

http://www.cristalab.com/foros/t58877_propiedades-de-anchura-y-altura-de-un-movieclip.html

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 10:11 am
Bueno, lo probe pero el efecto sigue ejecutandose a una velocidad que no se puede apreciar. Con ese codigo deberia retrasar la velocidad de los frames para que se aprecie la animacion. Ahora no estoy seguro si esto lo puedo hacer con "setinterval" para que no me afecte a toda la pelicula, y luego de terminado el proceso volver la velocidad de los frames a la original (que debe ser 12fps ya que nunca la cambie).
Tenes alguna idea de como hacer esto??

En cuanto a lo segundo todavía no lo revise, pero con los valores de las propiedades ya es otra cosa, asi que puedo arreglarme, lo primordial es lo anterior.

Desde ya te agradezco el interes!

Por Flown

11 de clabLevel



 

Arg.

msie7
Citar            
MensajeEscrito el 20 Ago 2008 10:29 am
Mira la velocidad depende de cuanto le sumas al alpha y cuanto tenga el movieClip de alpha en ese preciso momento, el codigo está hecho para aumentar el alpha del clip hasta que llegue a 100, así que se supone que el alpha de este esté por debajo de 100, si el alpha está en 0 el proceso es bastante lento y tomaría alrededor de 8 segundos en llegar a 100 a 12 fps. Lo que te debe estar sucediendo es que tienes el Clip con alpha 100 y le dices que aumente su alpha hasta llegar a 100, por eso no ves ningún cambio:

Código ActionScript :

imagen_mc._alpha = 0;

imagen_mc.onEnterFrame = function() {

   this._alpha++;

   if (this._alpha>=100) {

      delete this.onEnterFrame;

   }
};

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 09:11 pm
El tema es que el codigo evidentemente no producia nungún resultado, y no por el valor de alpha inicial que ya lo habia tenido en cuenta, sino xq estaba mal ubicado. La imagen carga previamente mostrando un "ProgressBar" de monitoreo, y la funcion me anulaba el código, por eso no salia el efecto. La solución fue poner el codigo dentro de la funcion que determina la carga completa. Posteo como quedo finalmente por si a alguien le sirve, es la carga de una imagen monitoreada con "ProgressBar" y efecto de alpha en la carga, llamada desde un boton.

Código :

 
on (release) {
   //Atacheamos el componente
attachMovie("ProgressBar", "mi_barracarga", 1);

//Contenido a cargar
createEmptyMovieClip("imagen_mc", 2);
imagen_mc.loadMovie("imag/img1.jpg");
imagen_mc._y = -230;
imagen_mc._x = 150;

//imagen_mc._alpha= 10;
//var myVar:Number = 10;
//do { 
 //trace(myVar);
//imagen_mc._alpha = myVar;
// myVar++; 
// esperar = setInterval(seguir, 1000);
// function seguir(){ 
// clearInterval(esperar);}
//} 
//while (myVar >= 100); 

//Propiedades
mi_barracarga.direction = "right";
mi_barracarga.conversion = 1024;
mi_barracarga.label = "Cargando %1kb de %2kb";
mi_barracarga.labelPlacement = "top";
mi_barracarga.mode = "polled";
mi_barracarga.source = imagen_mc;
mi_barracarga._x = imagen_mc._x

//Listener para cuando esta cargando la imagen
alCargar = new Object();
alCargar.progress = function(evento){
   mi_barracarga.setProgress(getBytesLoaded, getBytesTotal);
}
//Carga completa y efecto de alpha
alAcabar = new Object();
alAcabar.complete = function(evento){
   removeMovieClip(mi_barracarga);
   imagen_mc._alpha = 40;
imagen_mc.onEnterFrame = function() { 
this._alpha++; 
 if (this._alpha>=100) {      
 delete this.onEnterFrame; 
 }};
}
//Eventos
mi_barracarga.addEventListener("progress", alCargar);
mi_barracarga.addEventListener("complete", alAcabar);
}


Los comentarios son con respecto a la función anterior que funcionaba bien (pero muy rapido), salvo el setinterval que no lo ejecutaba.
Se agradece tu ayuda, me fue de mucha utilidad, saludos.

Por Flown

11 de clabLevel



 

Arg.

msie7

 

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