Archive for the ‘javascript’ Category

2 getURL seguidos en IE ¬¬

Friday, February 16th, 2007

Igual es un bug de estos que conoce todo el mundo por lo básico que es, pero yo no lo conocía. Bueno, por razones que no vienen al caso, tenía que hacer dos llamadas seguidas a JavaScript desde Flash. Y además no podía utilizar ExternalInterface porque el player tiene que ser 6.

Símplemente prueba esto:

getURL("javascript:alert('uno');");
getURL("javascript:alert('dos');");

En FF llegan las 2 llamadas, en IE, NO. Sólo llega la segunda. Buscando una forma de solucionarlo, fuimos a la chapuza de retrasar la segunda llamada con setInterval. En la pruebas que hicimos un intervalo de 200 milisegundos es suficiente. He de decir que no es algo que recomiende, yo creo que no es estable 100%.

Y como el parche no es estable 100%, nos pasamos a ExternalInterface y lo solucionamos. Pero me guardo para la próxima una prueba de concepto de uso “intensivo” de ExternalInterface que, otra vez, funciona en FF correctamente pero no en IE.

La alegre vida del programador Flash.

pd: no es un problema específico de alert porque interrumpa el flujo de JS o algo así. He probado llamando a una función “normal” y tampoco resulta. Tampoco creo que la version de IE o del player cambie el resultado.

Tamarin, después de la resaca

Tuesday, November 28th, 2006

Pues después del alucine general (el mío el primero) parece que la cosa no da para tanto, ¿o sí? El análisis más útil que he leído es el de Frank Hecker.

Básicamente lo que Tamarin supone es que el motor de JavaScript de Firefox y amigos va a cambiar para el 2008, a mejor se supone. Y ahí es donde entra Adobe con su AVM2. Resulta que la AVM2 no es sólo una máquina virtual para ActionScript 3, sino que es una máquina virtual para lenguajes basados en ECMAScript. Como JavaScript.

Para ese cambio en FF, Adobe libera bajo la licencia triple de Mozilla, parte del código de esa máquina virtual. Y esa parte es la correspondiente a la parte menos Flash de Flash. Es decir, las clases como Array, Math, Object, etc, pero nada que tenga que ver con MovieClips, Textfields, etc. Así que el control del player sigue siendo de Adobe y este movimiento no ayudará especialmente a crear players no oficiales para plataformas que Adobe no considera lo suficientemente importantes. Al no ser una liberación completa, tampoco será posible que Flash se ejecute nativamente en FF (sin un plugin), lo cual sería un golazo por la escuadra.

Entonces ¿qué coño tiene todo esto de bueno?

Pues básicamente que se mejorará la ejecución de JS en los productos de Mozilla. Que Mozilla, Adobe y millones de frikis trabajarán y mejorarán juntos una parte de la AVM2 y esto les permitirá ahorrar recursos para avanzar en otras cositas ya que no duplicarán esfuerzos. A los que parece que no les toca mucho reparto de pastel es a los desarolladores de ActionScript. Lo que sí que parece es que el trabajo de Adobe con la AVM2 tiene que ser realmente bueno, no creo que Mozilla comprometiera algo *tan* crítico como el motor de JS sólo por ahorrarse unos cuantos desarrolladores.

Lo que no tengo claro es qué pinta en todo esto el compilador de ECMAScript 4 que se ha liberado y que está escrito en… ActionScritp 3. ¿Que no? Échale un ojo a éste post the Darron Schall y al código si te apetece. Éstos son los días en los que me gustaría ser más gafotas para entender todo el cuadro.

En cualquier caso, otro que parece que sale bastante reforzado es ActionScript 3. Hemos pasado de “tontería de diseñadores” a clientes de VNC, emuladores de Commodore C64, clases que implementan el protocolo SMTP, y vaya usted a saber lo que nos espera.

Anda que no nos queda que estudiar…

Tamarin

Tuesday, November 7th, 2006

Vamos a ver si lo tengo claro. Adobe y Mozilla acaban de anunciar que van a colaborar para desarrollar Tamarin (nota de prensa).

De la web del proyecto y las FAQs, yo saco la siguiente información:

- La ActionScript Virtual Machine 2 (ASVM2) será utilizada en el futuro dentro de Firefox para ejecutar Flash Y JavaScript.
- El código fuente de la ASVM2 será totalmente parcialmente* liberado.

Simplemente estas dos cosas me dejan :O.

Si no me estoy equivocando, para empezar esto dejaría el proyecto GNash, casi sin sentido, sobre todo a largo plazo, cuando los swfs de versiones anteriores a la 9 sean casi nulos (La ASVM2 solo ejecuta swf >= 9). Dependiendo de la licencia final abre las puertas a que se hagan implementaciones libres de la AVM2 para plataformas no soportadas.

También me da que ayudará a que la comunicación JS <-> Flash sea muuuuucho más fácil, ¿no?

Wow, habrá que dejar pasar algunos días para analizar esto tranquilamente.

[actualización]

Hablan de ello Cristalab, MadeInFlex, OSFlash, Tinic Uro

* Aclarado por mr Cannasse

The AVM2 released does only include “Core” classes such as Math/Array/… You can’t build a working Flash Player 9 from it or port to another platform, since all the graphical/sound part is still closed source.

[/actualización]

GMail sin JavaScript

Monday, November 6th, 2006

Ya he dado la chapa con ello más de una vez, GMail sin JavaScript es más rápido. ¿Que no? Desactiva el JS de tu Firefox, haz login y me lo cuentas.

A mi me parece que están abusando de AJAX. Lástima que si desactivas JS te quedes sin los atajos de teclado y alguna que otra cosa molona. Por lo demás, viviría tranquilamente.