Foros del Web » Creando para Internet » Flash y Actionscript »

ARTICULO 1: Increible, pero cierto.

Estas en el tema de ARTICULO 1: Increible, pero cierto. en el foro de Flash y Actionscript en Foros del Web. Hola, esta es la primera de una serie de traducciones que he hecho a articulos e investigaciones acerca de Flash y que pueden ser útiles ...
  #1 (permalink)  
Antiguo 08/03/2002, 02:44
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 16 años
Puntos: 0
ARTICULO 1: Increible, pero cierto.

Hola,
esta es la primera de una serie de traducciones que he hecho a articulos e investigaciones acerca de Flash y que pueden ser útiles para muchos de los foreros. Tomen esto como mi pequeña contribucción a este sitio que tanto me ha ayudado. Se que saldrán los que digan que el tema no es novedoso, o que hay algún que otro error, o que ya lo leyeron en algún lado, pero repito "SON SOLO TRADUCCIONES" que humildemente haré para ustedes y que espero les sirvan de algo... pues bien, comenzamos...

UNA PRUEBA QUE SORPRENDE
Hace un tiempo atrás, retomé un proyecto hecho en Flash 4, lo abrí con Flash 5 y decidí terminarlo con esta versión. Comencé a convertir el viejo estilo del action script (usando sintaxis de slash, getProperty y setProperty) al nuevo estilo, sintaxis de punto (basado en objetos), al respecto la referencia de Flash 5 Action Script dice:
"Usted puede usar la sintaxis de punto para modificar y leer las propiedades y métodos de un objeto. Puede usar la sintaxis de punto en vez de la sintaxis de slash usada en Flash 4. La sintaxis de slash no es la recomendada, pero también está soportada por el Reproductor de Flash"
Pues bien, yo re-escribí mis largos códigos y los probé. Pero para mi sorpresa, el SWF generado por Flash 5 corría más lento que mi código desactualizado y obsoleto. Es por esto que me decidí a investigar esto ejecutando un intensivo test para probar las diferencias a la hora de ejecución entre el viejo estilo del action script en Flash 4 y los cambios implementados a la versión 5.
Quiero aclarar que esto no es una comparación entre Flash 4 y Flash 5, o la velocidad de estos plugins. Esto es una comparación de identicos comandos pero escritos en dos estilos diferentes. Estos son mis resultados y saquen sus propias conclusiones:
  #2 (permalink)  
Antiguo 08/03/2002, 02:49
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 16 años
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

1.- Método.
La misión es bien simple, ejecutar un grupo de sentencias usando la antigua sintaxis de slash y ejecutar las mismas sentencias usando la sintaxis de punto, poner todo en un ciclo, verificar el tiempo al inicio y al final y comparar los resultados. El fichero FLA usado es bien simple:
Código:
i = 0;
t = getTimer ();
while (i < ciclos) {
     << commandos a probar aquí >>
     i++;
}
result = getTimer () - t;
Todo listo, solo tenemos que darle valor a la variable ciclos (yo use 60000), escoger los comando a probar y comparar los valores de result, yo recomiendo en cada prueba usar un solo comando, correr todo en un mismo frame, no correr ninguna otra cosa a la vez y además, repetir los test varias veces cambiando el orden para evitar coincidencias con alguna sobrecarga del procesador en otra tarea externa a Flash.

2.- Que pruebas fueron realizadas?
Yo decidí probar todos los comandos de Flash 4 que se mantienen en Flash 5, pero que según el manual de Referencias de Flash 5 Action Script "no son recomendadas" en la nueva versión:

2.1.- Lectura de variables.
En Flash 5 usted puede leer una variable usando la sintaxis de slash (path:variable, ejemplo: ../mainwindow/userbox:name) o la nueva sintaxis de punto (object.variable, por ejemplo: _parent.mainwindow.userbox.name). El método usado es exactamente el mismo.
Recomendación de Macromedia: "Usted puede usar sintaxis de punto en vez del slash usado en Flash 4. La sintaxis de slash es soportada por el Reproductor de Flash pues es usada en las versiones 3 y 4 del programa para indicar el camino a un movie clip o variable, pero NO es recomendado su uso"
Los resultados fueron:
  #3 (permalink)  
Antiguo 08/03/2002, 02:56
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 16 años
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

FLASH 4
target=../..:var 4622
target=..:var 4636
target=small:var 4760
target=small/smaller:var 4936

FLASH 5
target=_parent._parent.var 6155
target=_parent.var 5448
target=small.var 5621
target=small.smaller.var 6701

2.2.- Control de la línea de tiempo
Flash le da al usuario el poder de controlar virtualmente todos los objetos en la escena, y esto incluye la reproducción en la línea de tiempo. Flash 4 usa el comando tellTarget, que permite a Flash acceder a diferentes niveles de organización y establecer un destino para un grupo de sentencias determinado, usando la sintaxis de slash pudiera ser: ../mainwindow/userbox y entonces agregar comandos como Play o Stop. Flash 5 no necesita de esto (aunque está soportado) y usted puede controlar el objeto directamente usando object.action, como por ejemplo: _parent.mainwindow.userbox.gotoAndStop
Recomendación de Macromedia: "La acción with es ahora preferida sobre tellTarget porque es más compatible con la sintaxis de punto...", "...la acción tellTarget no es preferida porque no trabaja con todos los objetos de action script y no es compilante ECMA-262"
Los resultados fueron:

FLASH 4
tellTarget ../../ gotoAndStop 3434
tellTarget ../ gotoAndStop 3418
tellTarget small gotoAndStop 3479
tellTarget small/smaller gotoAndStop 3526

FLASH 5
_parent._parent.gotoAndStop 11098
_parent.gotoAndStop 10491
small.gotoAndStop 11070
small.smaller.gotoAndStop 12326
  #4 (permalink)  
Antiguo 08/03/2002, 03:02
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 16 años
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

2.3.- Control de las propiedades de objetos.
Sobre la línea de comandos el usuario puede modificar las propiedades de los objetos, su tamaño, alfa transparencia, etc; Flash 4 usa la misma sintaxis de slash y usa algunos comandos para asignar o recuperar el valor de la propiedad deseada, mientras que Flash 5 usa la sintaxis de punto para esta tarea.
Recomendación de Macromedia: Macromedia no critica o recomienda ninguna de las dos variantes, pero en todos los ejemplos siempre usa object.property=value (ejemplo: _parent.mainwindow.userbox._y = 800)
Los resultados fueron:

FLASH 4
setProperty("../../obj",_y,800) 3763
setProperty("obj",_y,800) 3821
setProperty("smaller/obj",_y,800) 3855

var=getProperty("../../obj",_y) 4196
var=getProperty("obj",_y) 4265
var=getProperty("smaller/obj",_y) 4306

FLASH 5
_parent._parent.obj._y=800 6233
obj._y=800 5058
small.smaller.obj._y=800 6934

var=_parent._parent.obj._y 6743
var=obj._y 5561
var=small.smaller.obj._y 7442

3.- Conclusiones.
Como ven, las diferencias son significativas en algunos casos y no me ha quedado más que sorprenderme y llegar a la conclusion de que su script en Flash (y enfatizo: script) será más rápido usando la vieja sintaxis del slash implementada en Flash 4, que la nueva sintaxis de punto recomendada en Flash 5.
Estas pruebas fueron realizadas usando una PC (intel Pentium III, 450 mhz, 256 mb RAM, Win98SE) usando el Flash Player versión 5, revision 42 (playerVersión WIN 5,0,42,0).

NOTA:
Las pruebas usando una MAC estaban disponibles también, pero me venció el sueño... hasta la próxima!!!!!! ahh, y gracias a Zé Fernando (el autor) que no sabe de esta traducción, pero no me conseguí su email.
  #5 (permalink)  
Antiguo 08/03/2002, 03:06
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 16 años
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

Hola otra vez,
ahora releyendo todo me doy cuenta que quizás no aclaré (aunque lo consideré lógico)que el numero que aparece al final son los milisegundos que demoró el ciclo, osea, el valor de la variable result
Bueno, ahora si no los aburro más...
Chao y suerte.
  #6 (permalink)  
Antiguo 08/03/2002, 13:48
 
Fecha de Ingreso: agosto-2001
Mensajes: 96
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

muy interesante,

ademas para acotar, en mi pc la instalacion de F5 me jodio el proyector de Flash, no me hace bien el streaming de sonido.

duerme un poco y cuentanos mas

:cantar: :cantar: :cantar: :cantar:
  #7 (permalink)  
Antiguo 08/03/2002, 13:53
 
Fecha de Ingreso: agosto-2001
Mensajes: 96
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

muy interesante,

ademas para acotar, en mi pc la instalacion de F5 me jodio el proyector de Flash, no me hace bien el streaming de sonido.

duerme un poco y cuentanos mas

:cantar: :cantar: :cantar: :cantar:
  #8 (permalink)  
Antiguo 09/03/2002, 21:40
 
Fecha de Ingreso: diciembre-2001
Ubicación: Ciudad de México
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

La razón por la cual la sintaxis de Slash es más rápida que la sintaxis Dot en Flash 5 es que a la hora de compilar el FLA a SWF, se genera más byteCode con la sintaxis Dot que con la Slash.

Es por esto que en muchos casos la diferencia de velocidad es muy notoria.

Ésto se puede ver muy claro cuando se usa el Flaslm ( que es un desensamblador que permite ver el byteCode que genera el compilador de flash ).

Afortunadamente el compilador y el compresor de Flash MX han corregido ese tema. Así que ahora puedes usar tu sintaxis de punto sin preocuparte por que sea más lenta que la slash.

Saludos

P.D.: (¿no sería bueno, por lo menos... mencionar al autor original del artículo?, no se, creo que por lo menos hay que reconocerle el tiempo que invirtió en hacer el artículo)

// rolf :: senior product specialist
// <a href="http://alesys.net">alesys.net</a> :: <a href="http://tweened.net">tweened.com</a>
  #9 (permalink)  
Antiguo 09/03/2002, 21:42
 
Fecha de Ingreso: diciembre-2001
Ubicación: Ciudad de México
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Re: ARTICULO 1: Increible, pero cierto.

Perdón Perdón.............. PERDÓN, no leí el final en el que mencionas el nombre del Autor, te pido una disculpa por andar hablando de más sin haber terminado de leer tu post.

// rolf :: senior product specialist
// <a href="http://alesys.net">alesys.net</a> :: <a href="http://tweened.net">tweened.com</a>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:09.