Comunidad de diseño web y desarrollo en internet online

simple movimiento de texto que demanda mucha CPU

Citar            
MensajeEscrito el 30 Nov 2008 11:28 pm
saludos a todos.
acabo de terminar un reproductor de mp3 en as2 pero cual es mi sorpresa al comprobar que la cpu iba al 100% :shock:
crei que era por un enterframe y consegui cambiarlo por un setinterval que aun asi hacia que la cpu fuera al 80% aprox.

despues de algunas pruebas vi aun con mas asombro que el problema era el titulo de la cancion que tiene un movimiento horizontal.

las siguientes graficas corresponden a:
1.antes de ejecutar el swf;
2.durante la ejecucion pero desabilitado el movimiento del texto.
3.con el texto activado:


y el problema viene solo porque se mueve porque si cambio en la programacion el valor de incremento por 0, la cpu vuelve a descansar (this._x = this._x-0).

Código :

mp3.marquesina.onEnterFrame = function() {
   long = txt.length*14;
   if (_root.st == 0) {
      this._x = this._x-2;
      if (this._x<-long-71) {
         this._x = 71;
      }
   } else {
      this._x = 71;
   }
};


con el x=x+0:

mis preguntas son: ¿como puede un solo objeto con un simple movimiento cargar tanto la cpu? ¿alguna forma de solucionarlo? ¿si usara as3 no tendria ese problema?

en fin... que me ha llamado la atencion. Hace años hacia cosas en flash con objetos que se movian por todas partes y no observe este problema. Agradeceria cualquier comentario al respecto porque como digo me parece bastate raro.

gracias.

Por Unukalhai

79 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Dic 2008 03:13 am
if (this._x<-long-71) {
this._x = 71;
}

esa parte de codigo se me hace extraña

si el eje x de esto es menor de menos long menos 71

osea que si long es 100

si x en this es menor que -170 hace la operacion?

puedes hacer la operacion antes y poner solo el if (this._x<variable)
donde:
variable=-long-71;

???

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 01 Dic 2008 07:04 am
Bueno, sinceramente no creo que sea eso, a lo mejor es otra cosa, tienes que chekarlo bien, de todas formas te dejo una version reducida de tu funcion:

Código :

mp3.marquesina.onEnterFrame = function( Void ):Void {
   var min:Number = ( txt.length * -14 ) - 71;
   this._x = ( this._x - 2 >= min && _root.st == 0 )? this._x - 2 : 71 ;
};
[/code]

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 01 Dic 2008 10:24 pm
hola de nuevo. por fin está solucionado.

resulta que el clip padre (_root.mp3) tenia asignada una sombra así: mp3.filters = [dropShadow]; con lo que todos sus hijos tenian sombra incluso el texto que al moverse lo ralentizaba todo.
ahora la sombra la tiene sólo la carcasa del reproductor y ya va bien, la cpu no llega al 20%. Uf!

parece que a flash no le gusta mover cosas con filtros pero bueno... por un momento crei que la cosa estaba mucho peor.

Os agradezco el interés, no creais que no llevaba tiempo con el problema. saludos.

por cierto longevie, que magnifica optimizacion de codigo! funciona de maravilla. se nota que eres programador.

bye;)

Por Unukalhai

79 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2008 04:56 pm
@Unukalhai, aunque ya resolviste tu problema, quizás te pueda ayudar este tip

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Dic 2008 02:37 pm
gracias @elchininet, me será de ayuda sin duda porque quiero poner una marquesina tambien en la parte de abajo de la web para un cliente donde aparezcan las ultimas noticias u ofertas, que tendrá que escribir en un fichero de texto a lo mejor.
bye :wink:

Por Unukalhai

79 de clabLevel



 

firefox

 

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