ActionScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix wl
 
(143 versioni intermedie di 91 utenti non mostrate)
Riga 1:
{{Linguaggio di programmazione
{{W|informatica|luglio 2006}}
|nome = ActionScript
|immagine =
|didascalia =
|autore =
|data =
|versione =
|utilizzo =
|paradigmi =
|tipizzazione =
|specifiche =
|estensione =
|influenzato_da =
|ha_influenzato =
|implementazione_riferimento =
|sistema_operativo =
|lingua =
|licenza =
|sito_web =
}}
In [[informatica]] '''ActionScript''' (AS) è stato il [[linguaggio di scripting]] di [[Adobe Flash]], dichiarato obsoleto il 31 dicembre 2020<ref>{{Cita web|url=https://theblog.adobe.com/adobe-flash-update/|titolo=Flash & The Future of Interactive Content {{!}} Adobe Blog|sito=web.archive.org|data=2 dicembre 2017|accesso=28 gennaio 2021|urlarchivio=https://web.archive.org/web/20171202123704/https://theblog.adobe.com/adobe-flash-update/|urlmorto=sì}}</ref>, software che affondava le proprie radici nella [[grafica vettoriale]], ma che, anche grazie alla diffusione del [[plugin (informatica)|plugin]], si era ritagliato un proprio spazio nella realizzazione di applicazioni dinamiche, oltre che nella realizzazione di [[Sito web|siti web]] e [[Animazione|animazioni]].
 
Si basava su [[ECMAScript]] e la sua [[sintassi]], almeno fino alla versione 6 del [[Flash Player]], era molto simile a [[JavaScript]] dal quale poi divergeva in molto di ciò che riguardava le feature di OOP (dal Flash Player 7 il linguaggio si basava su classi e non utilizzava la proprietà prototype per stabilire l'ereditarietà).
'''ActionScript''' (AS) è il [[linguaggio di scripting]] di [[Macromedia Flash]], software di grafica usato per realizzare principalmente [[Sito web|siti web]] e piccole [[Animazione|animazioni]] (filmati Macromedia Flash di [[estensione]] *.swf). Actionscript si basa su [[ECMAScript]], la sua sintassi è quindi molto simile a [[JavaScript]].
 
Era un [[linguaggio di alto livello]], che veniva interpretato come il [[JavaScript]] (o [[Rappresentazione intermedia|pseudocompilato]]). La sua esecuzione era infatti affidata al [[compilatore]] nativo di [[Flash Player]], l'[[Actionscript Virtual Machine]] (AVM e AVM2).
ActionScript permette di rendere dinamici e far interagire tra loro gli oggetti di un filmato [[Flash]].
 
ActionScript è un [[linguaggio di alto livello]], al contrario di [[assembly]] ad esempio, ed è inoltre un linguaggio interpretato e non compilato, come ad esempio lo sono il [[C++]] e il [[Visual Basic]]. La sua esecuzione è infatti affidata al compilatore nativo di [[Flash Player]], l'Actionscript Virtual Machine ([[AVM]]).
 
== Storia ==
 
Come''ActionScript'' fece il suo debutto come [[linguaggio di scripting]], ActionScriptcon apparìuna persintassi ladiversa primada volta,quella con l'attuale sintassi, con lanella versione 5 di [[Adobe Flash|Flash]], che fu la prima versione di [[Macromedia Flash|Flash]] con un ampio supporto per la programmazione. Questa versione di ActionScript venne denominata a posteriori ActionScript 1.0. La versione Flash 6 (o MX) ha allargato notevolmente le funzionalità, aggiungendo un discreto numero di funzioni, che permettono un migliore controllo degli elementi di un filmato.
Flash 7 (MX 2004) introdusse ActionScript 2.0, che come novità annoverava molteplici elementi della programmazione ad oggetti: interfaccie, creazione di classi, ''inheritance''. ActionScript 1.0 e ActionScript 2.0 vengono compilati allo stesso modo producendo file [[.swf]] (''Small Web File'')
 
La versione Flash 6 (o ''MX'') aveva allargato notevolmente le funzionalità, aggiungendo un discreto numero di funzioni, che permettevano un migliore controllo degli elementi di un filmato.
== Sintassi ==
Flash 7 (''MX 2004'') aveva introdotto ActionScript 2.0, che come novità annovera molteplici elementi della programmazione ad oggetti: interfacce, creazione di classi, ereditarietà.
 
Con Adobe Flash CS3 è stata distribuita l'ultima versione di ActionScript, la terza. ActionScript 3 era più simile a [[ECMAScript]], completando il processo di avvicinamento già iniziato con la seconda versione.
ActionScript 2.0 supporta la creazione di classi. Le classi vengono scritte in file di testo esterni che hanno come estensione ''.as''. Le classi sono un'estensione del linguaggio base di ActionScript e possono essere create dal programmatore stesso. In più ci sono diverse classi già disponibili come MovieClip, che può essere usata per disegnare i vettori sullo schermo dinamicamente. Le classi facilitano la creazione di nuovi progetti, esse possono essere trasferite anche da un progetto all'altro se necessario.
Con ActionScript, Adobe ha creato l'[[Open Source Media Framework]], gratuito e open source per creare esperienze video sul web e sui computer.
 
== Sintassi ==
Il codice ActionScript è il più delle volte scritto usando la suite di sviluppo di [[Flash Macromedia|Flash]] che offre documentazione, suggerimenti durante la stesura del codice, ed evidenzia la sintassi rendendlo più leggibile. Spesso, il codice sorgente viene salvato in un file [[.fla]].
Come detto in precedenza, il codice ActionScript può anche essere importato da file di testo esterni, che possono essere compilati attraverso il compilatore nativo di Flash mediante una comoda [[interfaccia utente|interfaccia]] o attraverso Motion Twin ActionScript2 Compiler (MTASC).
 
ActionScript era un [[linguaggio orientato agli oggetti]], supportante quindi la creazione di [[Classe (informatica)|classi]], e l'uso di quelle già esistenti.
=== Comandi Basilari ===
 
Le classi erano un'estensione del linguaggio base di ActionScript e potevano essere create e condivise dai programmatori. Classici esempi erano le classi [[sandy 3d]] e [[papervision 3d]] che permettevano di utilizzare un ambiente tridimensionale nativamente non incluso in Flash. Esse venivano scritte all'interno di un semplice file testuale che ha come estensione ".as". In più c'erano diverse classi già disponibili come ''MovieClip'', che potevano essere usata per disegnare i vettori sullo schermo dinamicamente. Le classi facilitavano la creazione di nuovi progetti, esse potevano essere trasferite anche da un progetto all'altro, se necessario.
Comandi basilari di Action Script sono:
* <tt>gotoAndPlay(''frame'')</tt> e <tt>gotoAndStop(''frame'')</tt>, usati per passare da un frame all'altro del filmato
* <tt>play()</tt>
* <tt>stop()</tt>
 
Il ''codice ActionScript'' era il più delle volte scritto usando la suite di sviluppo di [[Adobe Flash|Flash]] che offriva documentazione, suggerimenti durante la stesura del codice, ed evidenziamento della sintassi, rendendola più leggibile. Spesso l'estensione dei [[sorgenti]] era ".fla". Il codice ActionScript e le animazioni dalla versione CS3 potevano anche essere importate da [[file di testo]] esterni, che potevano essere scritti attraverso l'editor incluso in [[Adobe Flash|Flash]] mediante una comoda [[interfaccia utente|interfaccia]] o attraverso Motion Twin ActionScript2 Compiler (MTASC).
== Critiche ==
 
=== Esempio ===
*La maggior parte deii programmatori sostengono che il compilatore di ActionScript 2.0 sia piuttosto lento e spesso impiega diversi minuti per compilare circa 100 classi, al contrario il compilatore open-source MTASC riesce a compilare il sorgente più velocemente.
<syntaxhighlight lang="actionscript" line="line">
 
var a:Number=10;
*ActionScript ha una sintassi molto tollerante, che tuttavia non facilita la letture del codice qualora non fosse ben strutturato. Tuttavia i programmatori sia di ActionScript che di JavaScript sono compiaciuti dell'evoluzione del linguaggio con la possibilià di creare nuove classi e anche con l'introduzione di rigorosi tipi di dati hanno reso la preparazione del programmatore leggermente più esigente che nelle precedenti versioni.
var b="4";
 
var c=15;
*L'uso di molti vettori in Flash potrebbe comportare un drastico rallentamento nella macchina su cui si sta lavorando, anche perché Flash ricrea ogni vettore frame per frame (fotogramma per fotogramma). Flash 8 ha introdotto una nuova variabile cacheAsBitmap che converte temporaneamente il vettore in un'immagine bitmap in modo da ridurre lo stress per la macchina.
if(a!=(Number(b)+c)){
 
gotoAndPlay(3);
*Molti programmatori sono anche un po' scocciati dal dover importare le classi prima di poterle usare, e sfortunatamente per loro ActionScript 3.0 ha peggiorato la situazione, rendendo l'importazione delle classi un fattore d'obbligo.
} else {
trace(_root.a+"!="+_root.b+"+"+_root.c);
}
</syntaxhighlight>
 
== Cronologia ==
 
* '''Flash Player 2''': Prima versione con supporto per lo [[linguaggio di scripting|scripting]], comandi inclusi <code>gotoAndPlay</code>, <code>gotoAndStop</code>, <code>nextFrame</code> e <code>nextScene</code> per controllaregestire inizio e termine dei filmati.
* '''Flash Player 3''': Aumenta le funzionalità base del linguaggio aggiungendo la possibilità di caricare file esterni [[.swf]] (mediante il comando <code>loadMovie</code>).
* '''Flash Player 4''': Aggiunge alcune caratteristiche. Questa è la versione del linguaggio su cui si basano le versioni di [[Flash Lite]] 1.0 e 1.1.
* '''Flash Player 5''': Includeva la prima versione di ActionScript 1.0. Usava un prototipo del linguaggio [[ECMAScript]], permetteva la [[programmazione orientata agli oggetti]].
* '''Flash Player 6''': Aggiunto un gestore di eventi, e introduzione di [[switch]].
* '''Flash Player 7''': Offriva alcune nuove funzioni come il supporto ai fogli di stile e un incremento delle prestazioni del player in termini di consumo di risorse. I compilatori Flash, della Macromedia, distribuiti insieme al Flash Player 7 supportano ActionScript 2.0 (e nuovi componenti, atti ad automatizzare molte operazioni, ad esempio l'inclusione di audio) più orientato agli oggetti della versione precedente, basato su [[ECMAScript]]. Era possibile compilare anche i sorgenti in maniera tale da renderli compatibili con le versioni precedenti di Flash (compilando attraverso il [[bytecode]] della versione 1.0).
* '''Flash Player 8''': Nuove aggiunte ad ActionScript 2.0 con nuove librerie con [[Application programming interface|API]] per gestire le immagini formato [[bitmap]] e l'[[upload]] dei file.
* '''Flash Player 9''': Inizialmente chiamato Flash Player 8.5. Supportava ActionScript 3.0 e una nuova virtual machine, AVM2 (ActionScript Virtual Machine 2) che riduceva di molto il consumo di risorse permettendo lo sviluppo di giochi più complessi e l'accesso ad alcuni siti da parte di computer obsoleti. L'obiettivo di questa versione era un incremento delle prestazioni raggiunta attraverso un nuovo compilatore JIT. Questa è stata la prima versione di Flash chiamata '''Adobe Flash Player''', in seguito all'acquisizione di [[Macromedia]] da parte di [[Adobe Flash|Adobe]].
* '''Flash Player 10''': Offriva il supporto alla creazione di interfacce con immagini 2D in un ambiente 3D, grazie alle API dedicate.
Adobe aveva introdotto la tecnologia Pixel Bender, che consentiva di creare e condividere filtri, metodi di fusione e riempimenti in tempo reale. Flash Player 10 permetteva la lettura dei dati binari dei file musicali e l'accesso diretto al sound buffer; inoltre consentiva di creare nuovi tipi di applicazioni audio, quali mixer e [[sequencer]] di musica, file audio in real time per i videogiochi e visualizzatori audio. Per quanto riguarda i formati Video Flash Player 10 permetteva di gestire lo streaming in maniera dinamica e prevedeva il supporto a bitrate multipli.
 
* '''[[Adobe Flash Lite|Flash Lite]]''': Era una versione realizzata appositamente per i cellulari e le apparecchiature portatili
*'''Flash Player 3''': Aumenta le funzionalità base del linguaggio aggiungendo la possibilità di caricare file esterni .swf (mediante il comando loadMovie).
== Note ==
 
<references />
*'''Flash Player 4''': Il primo player che permette la programmazione attraverso un linguaggio di scripting (chiamate azioni).
 
*'''Flash Player 5''': Include la prima versione di ActionScript 1.0. Usa un prototipo di linguaggio ECMAScript, permette la programmazione orientata agli oggetti
 
*'''Flash Player 6''': Aggiunto un gestore di eventi, e supporto per gli switch
 
*'''Flash Player 7''': Offre alcune nuove funzioni come il supporto ai fogli di stile e un incremento delle prestazioni del software. I compilatori Flash della Macromedia rilasciati insieme al Flash Player 7 supportano ActionScript 2.0 e un linguaggio a classi, basato su ECMAScript, di produzione di NetScape . E' possibile compilare anche i sorgenti in maniera tale da renderli compatibili con le versioni precedenti di Flash (compilando attraversoil byte code della versione 1.0)
 
*'''Flash Player 8''': Nuove aggiunte ad ActionScript 2.0 con nuove librerie con API per gestire le immagini formato bitmap e l'upload dei file.
 
*'''Flash Player 9''': Inizialmente chiamato Flash Player 8.5. Supporta ActionScript 3.0 e una nuova virtual machine, AVM2(ActionScript Virtual Machine 2) . L'obiettivo di questa versione era un incremento delle prestazioni raggiunta attraverso un nuovo compilatore JIT. Questa è stata la prima versione di Flash chiamata Adobe Flash Player
 
*'''Flash Lite''': E' una versione realizzata appositamente per i cellulari e le apparecchiature portatili
 
== Voci correlate ==
 
* [[JavaScript]]
* [[Gnash]]
* [[Linguaggio di scripting]]
 
== Collegamenti esterni ==
* {{cita testo|url=http://flash.html.it/guide/leggi/111/guida-actionscript-3-di-base/|titolo=Guida ActionScript 3 di base|urlarchivio=https://web.archive.org/web/20100731051406/http://flash.html.it/guide/leggi/111/guida-actionscript-3-di-base }} Una guida pratica per chi si avvicina per la prima volta al linguaggio ActionScript 3
* [http://www.killersites.com.ar/cursos-actionscript.htm Cursos Actionscript] Killersites Macromedia Flash Actionscript and Dreamweaver Online Training. Tutorial, flash webpages, flash resources {{en}}, {{es}} (English, Spanish)
* {{cita web|url=http://www.coachdesign.it|titolo=Forum Flash, Actionscript, PHP e MySQL}}
* {{cita web|url=http://freeitsolutions.com/flash-tutorials/?category=Actionscripting|titolo=Lezioni ed esempi per Flash ActionScript|lingua=en|accesso=5 settembre 2008|urlarchivio=https://web.archive.org/web/20081220151436/http://www.freeitsolutions.com/flash-tutorials/?category=Actionscripting|urlmorto=sì}}
* {{cita web|url=http://www.codedrive.com/|titolo=CodeDrive ActionScript/Flash IDE|lingua=en}}
 
{{Controllo di autorità}}
[[categoria:Linguaggi di programmazione]]
[[Categoria:Stub {{Portale|informatica]]}}
 
[[Categoria:Linguaggi di programmazione]]
[[cs:ActionScript]]
[[de:ActionScript]]
[[en:ActionScript]]
[[es:ActionScript]]
[[fr:ActionScript]]
[[gl:ActionScript]]
[[he:ActionScript]]
[[ja:ActionScript]]
[[nl:ActionScript]]
[[pl:ActionScript]]
[[pt:ActionScript]]
[[ro:ActionScript]]
[[ru:ActionScript]]
[[sv:ActionScript]]
[[vi:ActionScript]]
[[zh:ActionScript]]