# La Web 2.0 i les tecnologies que la fan possible/Flash i ActionScript

Des dels seus inicis, Adobe Flash (abans Macromedia Flash) ha sigut un programa d'escriptori que ha proporcionat al webmestre eines per crear animacions lleugeres que es poden visualitzar als navegadors amb un plugin específic que desenvolupa la mateixa empresa, el Flash Player. Flash presentava animacions de formes i colors en una època en què no era gaire usual trobar-los a la Web (estic parlant de mitjans dels 90), i a més el fet que aquestes animacions fossin tan lleugeres en una època en què les connexions eren molt lentes, convertiren el Flash en una eina molt popular que ha sobreviscut fins als nostres dies.
La lleugeresa dels documents generats amb el Flash és gràcies a que aquest treballa amb gràfics vectorials enlloc d'imatges de bits com treballen normalment les animacions. Les primeres animacions Flash, doncs, eren una sèrie de dibuixos realitzats amb el mateix programa i pintats amb colors plans, normalment inspirats del còmic. El Flash també proporciona una línia de temps amb diferents fotogrames en els quals es podia definir el comportament d'aquestes figures durant el temps que durava l'animació. El Flash a més de les figures vectorials, també permetien l'incrustat de mapes de bits i arxius de so per ser reproduïts durant l'animació.
Flash també proporcionava des de les seues primeres versions capacitats d'interpolarització, de manera que n'hi havia prou amb dos fotogrames situats en la línia del temps per tal de que el programa automatitzés la creació dels que faltaven entre un i l'altre. El programa permet interpolar tant la posició de les figures, movent aquestes de la posició on estan al fotograma anterior a la posició on estan al fotograma posterior, el color d'aquestes, passant per diferents colors de l'escala cromàtica, o la seua forma.
Fins a la cinquena versió de Flash, treta el 2001, l'única utilitat que oferia el Flash era la de mostrar animacions a la pàgina; però aquesta versió incorporà ActionScript, un nou llenguatge que permetia modificar, tal com el JavaScript modificava els elements del document HTML, les figures de l'animació Flash. Això marcà un abans i un després en el desenvolupament d'animacions Flash, ja que aquest llenguatge permetia dinamitzar les animacions, interaccionar amb l'usuari i processar les seues respostes. Flash ja no servia tan sols per fer animacions boniques, sinó que ara feia aplicacions que tot i ser molt bàsiques precediren l'evolució cap a les aplicacions web actuals.
Una altra de les versions que cal remarcar és la sisena, anomenada MX i treta el 2002. Aquesta permet reproduir vídeos no vectorials, codificats prèviament amb Flash Vídeo (FLV). Aquesta funcionalitat no es va millorar el suficient fins l'aparició de Flash 8 (2005), que va aportar les opcions d'streaming suficients per fer viable un projecte com el YouTube (aparegut a finals del 2005).
La última versió del Flash és la novena, anomenada CS3, que ja és treta per l'empresa Adobe, qui havia comprat Macromedia el 2005. Amb l'aparició de Flex, un altre programa que genera arxius Flash i que està especialitzat en l'elaboració d'aplicacions web complexes, la versió CS3 es veu relegada un altre cop al disseny d'animacions.
^ Un plug-in és una aplicació que treballa dins del navegador i que li estén les capacitats.
^ El streaming és una tècnica molt utilitzada quan es reprodueixen arxius multimèdia baixats directament d'Internet que permet veure'ls o escoltar-los a mesura que es va descarregant l'arxiu.

## ActionScript

ActionScript és l'adaptació que va fer Macromedia de l'estàndard ECMAScript per permetre controlar les animacions Flash als webmestres. Fou inicialment concebut per tal d'ajudar a l'animació de les figures vectorials de Flash però en l'actualitat també és utilitzat per modificar l'estructura de les aplicacions Flex. Al contrari del JavaScript, que és un llenguatge interpretat, l'ActionScript es compila abans d'incloure'l a l'arxiu Flash, al igual que totes les figures vectorials del Flash o elements del Flex, per augmentar així el rendiment de l'aplicació.
La primera versió era molt pareguda al JavaScript dels navegadors. Tot era igual que amb JavaScript, la declaració de variables, la declaració de funcions i els operadors eren els mateixos, la única cosa que van fer fou adaptar el DOM dels documents HTML a les animacions Flash. Es suprimiren window, location, history, screen, navigator i document i en el seu lloc aparegueren _root, el movieclip arrel, del que se'n desprenen tots els altres, etc. També van canviar els noms dels esdeveniments JavaScript, i n'afegiren de nous, per tal d'adaptar-los a la nova plataforma.
Amb la segona versió arribaren molts canvis de sintaxi que anaven adaptant el llenguatge a l'especificació ECMAScript 4 que encara no ha entrat en vigor (s'espera que l'esborrany s'acabi a l'Octubre de 2008). La principal característica afegida respecte al ECMAScript tradicional és que s'ha d'especificar el tipus de tota variable quan es declara, fins i tot els paràmetres de les funcions i el que retornen, que, a més de ser un dels punts de la nova especificació, milloraren molt el rendiment de la màquina virtual d'ActionScript. També adapta l'especificació de les classes al pròxim estàndard, el que millora molt la programació orientada a objectes amb ActionScript 2.0.
Amb la tercera, la actual, s'afegeix alguns canvis més de sintaxi (com la incorporació de packages), però en aquesta versió els canvis més rellevants es donen en la disposició dels objectes i les classes predefinides, com també els esdeveniments. A més, aquesta versió incorpora una extensió del llenguatge ECMAScript que li afegeix suport nadiu d'XML a aquest, i que s'anomena E4X (ECMAScript for XML).
^ S'està treballant en la major revisió de l'estàndard ECMAScript feta des del desembre de 1999, quan ECMAScript 3 es publicà i que marcarà l'aparició de la segona versió de JavaScript, incorporant tots els canvis de sintaxi que està sofrint l'ActionScript.

## Flex

Adobe Flex és un conjunt de tecnologies que donen suport al desenvolupament d'aplicacions web riques (RIA) basades en la plataforma Flash. Aquestes tecnologies substitueixen el mètode de desenvolupament Flash, en el qual prima l'animació, per un mètode més adaptat al desenvolupament tradicional de programari. Flex, a més d'utilitzar ActionScript per a donar funcionalitat a aquestes aplicacions web, utilitza un llenguatge de marcatge derivat del XML que defineix la interfície d'una aplicació d'aquest tipus, anomenat MXML.
El mateix Adobe va treure un entorn integrat de desenvolupament (IDE) per crear aquestes aplicacions amb Flex, anomenat Flex Builder. L'IDE en qüestió és molt paregut a qualsevol editor HTML amb entorn WYSIWYG: Té una pestanya per veure el codi MXML que integra elements com títols o camps de formulari a la pel·lícula (com ho faria l'XHTML) i l'ActionScript que controla els esdeveniments i pot modificar l'MXML (com ho faria JavaScript), i una altra pestanya, aquesta mostrant els elements tal com es veuran al navegador, i amb possibilitats de modificar amb uns simples tocs de ratolí i teclat. Tot i que el Flex Builder no és lliure, Adobe ha alliberat el Flex SDK, un kit de desenvolupament que incorpora els controls d'interfície (botons, caselles de verificació, etc.) i un compilador que converteix documents MXML i ActionScript en arxius SWF perquè puguin ser visualitzats amb el navegador.
Tan Flex com JavaScript/AJaX s'estan utilitzant per al desenvolupament d'aplicacions web riques, és a dir, aplicacions web que tenen funcionalitats de les aplicacions tradicionals d'escriptori. Ja hem vist que les llibreries JavaScript aparegudes fa uns anys li han donat molt d'ús a aquest llenguatge en entorns professionals i amb funcionalitats com el drag and drop i, ara, que el Flex també és una bona opció per desenvolupar aplicacions d'aquest tipus.
Una de les principals desavantatges del desenvolupament d'aplicacions web amb Flex és que el document un cop compilat perquè es vegi al navegador no es pot llegir com un XML, com si que ho permet l'XHTML. Això impossibilita l'anàlisi que fan els motors de cerca com Google, cosa que pot perjudicar greument el posicionament entre els primers resultats d'aquest i d'altres cercadors. Els lectors de pantalla per a persones discapacitades també ho tenen difícil amb aplicacions Flex, al estar aquestes adaptades per llegir documents XHTML. A més Flex requereix que el navegador tingui instal·lat el plug-in Flash Player 9, mentre que l'AJaX utilitza tecnologies natives al navegador i que a més són estàndard. Per contra, Flex és la millor opció per inserir material multimèdia a les aplicacions web, tant en gràfics vectorials (ja he dit que l'SVG encara no està implementat de manera complerta a tots els navegadors), com en àudio i vídeo.
També hi ha altres opcions com OpenLaszlo que és una plataforma de desenvolupament que permet programar amb un llenguatge similar al MXML, el LZX, que es compilat al costat del servidor. abans d'enviar la pàgina, en un arxiu de pel·lícula Flash (SWF) o en una pàgina DHTML, segons quin li convingui més a l'usuari. Una de les singularitats d'OpenLaszlo és que és de codi obert.