Comunidad de diseño web y desarrollo en internet online

¿Desea anular el Script?

Citar            
MensajeEscrito el 04 May 2005 08:43 pm
Cuando estoy probando la película me sale el siguiente cajón de información:

windows escribió:

Un script de esta película está provocando que el reproductor de flash se ejecute lentamente. si continúa ejecutándose, su PC podría no responder. ¿Desea anular el Script?


Obviamente me toca decirle que si porque de lo contrario se me congela la máquina...

Me tiene cac"#%&=! :twisted: pues es precisamente el efecto "nieve" que le acabo de incorporar y que se ejecuta en un MC; ¿porque ocurre eso? ¿qué puedo hacer para evitarlo? Gracias.[/quote]

Por Jyon-DM

50 de clabLevel



Genero:Masculino  



Ultima edición por Jyon-DM el 04 May 2005 10:30 pm, editado 1 vez

Cali, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 09:13 pm
Flash tiene una limitacion en cuanto a esto, y suele ocurrir con loops infinitos, o que demoran mucho en terminar (15 segundos para ser exactos). Revise su codigo para ver donde ocurre algo asi (un for de 0 a 100000? un while q no termina?)

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 10:18 pm
Pues vean: por un momento pensé que era la película pues ya tiene bastante contenido; pero puse el mismo código en una película mucho más corta y sigue generando el error... este es el código "más largo" que tiene el script y que va en el MC:

Código :

onClipEvent (load) {
   //variables
   width = 300;
   height = 200;
   //random x,y, and alpha 
   this._xscale = this._yscale=50+Math.random()*100;
   this._alpha = 20+Math.random()*50;
   //random x and y for flakes
   this._x = -width+Math.random()*(3*width);
   this._y = -10+Math.random()*height;
   //speed and trigonometric value
   i = 1+Math.random()*2;
   k = -Math.PI+Math.random()*Math.PI;
   rad = 0;
}
onClipEvent (enterFrame) {
   // horizontal movement
   rad += (k/180)*Math.PI;
   xmovement = _root._xmouse;
   this._x -= Math.cos(rad)+(xmovement-(width/2))/50;
   // vertical movement
   this._y += i;
   // remove clips when they misbehave (overstep boundaries)
   if (this._x>(width+50)) {
      this._x = -45;
      this._y = Math.random()*height*2;
   }
   if (this._x<-50) {
      this._x = width+45;
      this._y = Math.random()*height*2;
   }
   if (this._y>=height) {
      this._y = -50;
      this._x = -width+Math.random()*(3*width);
   }
}


Pues sobrará la explicación pero lo que pretende el código es que en un área de 300x200 el MC sobre el que va este código se duplique hasta 75 veces con altura y alfa aleatorio; por último el movimiento lo determina la dirección del mouse.

Esto va en el frame:

Código :

snowflakes = 75;
do {
   duplicateMovieClip(snow, "snow"+k, k);
   k++;
} while (k != snowflakes);


¿Hay algo de malo en el código? del archivo del tutorial que lo saqué funciona perfecto; lo paso IGUALITO a una película más liviana y genera el error arriba mencionado...

Por Jyon-DM

50 de clabLevel



Genero:Masculino  

Cali, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 10:27 pm
snowflakes = 75;
do {
duplicateMovieClip(snow, "snow"+k, k);
k++;
} while (k != snowflakes);


el problema tiene q estar en ese do-while, llega algun momento en q siempre se cumple la condicion (k != snowflakes)

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 10:34 pm
Le voy a contar algo bien curioso: En el .FLA original puedo aumentar el tamaño de la película, cambiar el MC, poner más o menos "snowflakes", casi todo puedo hacerlo en el .FLA original; pero copio y pego el código, los frames, las instancias, TODO en un archivo nuevo, sin nada más, sólo con lo recién copiado y sale el mismo error. ¿qué pasará?

Por Jyon-DM

50 de clabLevel



Genero:Masculino  

Cali, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 10:38 pm
copiado de mx a mx 2004? en 2004 es k habria q inicializarlo....

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 10:49 pm
No Caballero, de MX 2004, así me bajé el tutorial... por si las moscas le mando el link:

http://www.kirupa.com/developer/mx2004/snow2.htm

_david escribió:

el problema tiene q estar en ese do-while, llega algun momento en q siempre se cumple la condicion (k != snowflakes)


Y venga, no se me vaya a enojar... pero me podría explicar un poco más? su sugerencia? muy amable.

Por Jyon-DM

50 de clabLevel



Genero:Masculino  

Cali, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 10:54 pm
El aviso de anular script sale cuando se tarda mas de 15 segundos en un for, o un while.

En enterFrame no ocurre

por lo tanto, lo q sugiero es q ponga un trace de k dentro del do-while, para ver en q momento se esta quedando en ciclo infinito (o en otro for o while q haya por ahi)

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

firefox
Citar            
MensajeEscrito el 04 May 2005 11:45 pm
Como te han comentado, el problema es que haces entrar al programa en un bucle infinito, del que no puede salir nunca. Por eso te da ese mensaje de error para poder detenerlo.

El problema es q antes del while, el valor de k es undefined, y por eso k nunca llegará a ser 75...

Inicializa la variable y listo. ( var k:Number = 0; )

Salu2

Por Cyril

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 May 2005 12:26 am
Bueno, como todavía estoy en pañales en programación no pude corregir ese bucle infinito; así que para mí la solución más salomónica fue:

Código :

imagenes_mc.loadMovie("Snow.swf");


Como les había comentado, el clip de muestra funcionaba perfecto solito, y encima sólo pesaba 608 BYTES, así que para evitarme más compliques, sólo lo llamo desde la película principal ;)

Por Jyon-DM

50 de clabLevel



Genero:Masculino  

Cali, Colombia

firefox

 

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