Comunidad de diseño web y desarrollo en internet online

onEnterFrame, una ayuda?

Citar            
MensajeEscrito el 23 Ago 2006 09:23 am
Hola a todos:
Tengo un problema con un clip, que hago que tiemble con el siguiente codigo pero lo que realmente quiero es llamar a una funcion cuando se cumpla el if(Math.abs(amplitude) < 0.01). Existe alguna forma de llamar a una funcion una unica vez y que no la siga llamando?


Código :

amplitude = 10;
coefficient = - 0.75;
x0 = imagen._x;  

onEnterFrame = function() 
{
   imagen._x = x0 + amplitude;
   amplitude *= coefficient;
   if(Math.abs(amplitude) < 0.01) 
   {

   }
}


Gracias por vuestra ayuda.

Por kuziat

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Ago 2006 10:19 am

Código :

amplitude = 10;
coefficient = - 0.75;
x0 = imagen._x;  

onEnterFrame = function(){
   imagen._x = x0 + amplitude;
   amplitude *= coefficient;
}
if(Math.abs(amplitude) < 0.01) {
   onEnterFrame = function(){
   }
}

Creo que debería funcionar así :?
Espeor que sea lo que necesitas.

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

firefox
Citar            
MensajeEscrito el 23 Ago 2006 10:37 am
no, no es eso. En realidad no se para que sirve eso que me has puesto pero se agradece. Lo que intento averiguar es si existe alguna manera de llamar a un metodo de la siguiente manera:

amplitude = 10;
coefficient = - 0.75;
x0 = imagen._x;

onEnterFrame = function(){
imagen._x = x0 + amplitude;
amplitude *= coefficient;
}
if(Math.abs(amplitude) < 0.01) {
onEnterFrame = function(){
_root.analiza_imagen();
}
}

Mi problema es que se ejecuta el metodo _root.analiza_imagen() una y otra vez y solo quiero que lo haga una vez. Pero quiero controlarlo sobre este clip y no sobre el propio metodo. Con lo que me has puesto sigo en las mismas. Se puede hacer algo?

Por kuziat

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Ago 2006 10:49 am
Bueno, si lo que quieres es que la función solo se ejecute una vez, deberías quitar la function del if. A ver si con esto:

Código :

amplitude = 10;
coefficient = - 0.75;
x0 = imagen._x;

onEnterFrame = function(){
imagen._x = x0 + amplitude;
amplitude *= coefficient;
}
if(Math.abs(amplitude) < 0.01) {
_root.analiza_imagen();
}

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

firefox
Citar            
MensajeEscrito el 23 Ago 2006 12:49 pm
eso ya lo probé, pero tengo el problema que nunca entra en el if, pues no comprueba constantemente el valor de amplitude.
Gracias por tu ayuda de todas formas. Alguna idea mas?

Por kuziat

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Ago 2006 01:02 pm
ya lo solucioné, no es que sea una solucion muy limpia pero al menos tiene el comportamiento deseado..
pongo este codigo en una frame de mi clip...

amplitude = 10;
coefficient = - 0.75;
x0 = imagen._x;

onEnterFrame = function()
{
imagen._x = x0 + amplitude;
amplitude *= coefficient;
}
gotoAndStop(3);
function Comprueba()
{
if(Math.abs(amplitude) < 0.05)
{
_root.analizar_ficha();
}
else trace(amplitude);
}

y en la fame 3 hago una pausa de dos segundos....

stop();
seconds = 2;
wait = function () {
Comprueba();
clearInterval(time);
};
time = setInterval(wait, seconds*1000);

y de esta forma me aseguro que el tembleque del clip haya acabado... Muchas gracias a todos!!

Por kuziat

13 de clabLevel



 

firefox

 

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