ActionScript

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 9. juli 2015; checks kræver 23 redigeringer .
ActionScript
Sprog klasse Objektorienteret , prototypisk , imperativ , scripting
Dukkede op i 1998
Forfatter Harry Grossman
Udvikler Macromedia
Frigøre 3.0
Type system stærk , statisk
Større implementeringer Adobe Flash Player , Adobe AIR , Apache Flex
Blev påvirket JavaScript , Java
Internet side adobe.com/devnet/actions...
ActionScript
MIME -type applikation/ecmascript [1]
Udvikler Macromedia
Seneste udgivelse
Formattype funktionelt programmeringssprog , multi-paradigme programmeringssprog og programmeringssprog
Internet side adobe.com/devnet/actions...

ActionScript  er et objektorienteret programmeringssprog , en af ​​ECMAScript - dialekterne , der tilføjer interaktivitet, databehandling og mere til indholdet af Flash- applikationer. ActionScript udføres af en virtuel maskine (ActionScript Virtual Machine), som er en integreret del af Flash Player. ActionScript er kompileret til bytecode , som er inkluderet i SWF-filen.

SWF-filer udføres af Flash Player. Flash Player eksisterer som et plug -in til en webbrowser såvel som et selvstændigt eksekverbart program (standalone). I det andet tilfælde er det muligt at oprette eksekverbare filer (projektor), når Flash Player-applikationen er kombineret med en swf-fil, der ligner SFX .

Med ActionScript kan du oprette interaktive multimedieapplikationer , spil , websteder og meget mere.

ActionScript er et åbent programmeringssprog, dets specifikationer er offentligt tilgængelige på Adobes websted [2] . Compileren (som en del af Apache Flex ) og den virtuelle open source-maskine ( Tamarin ) er open source .

Historie

ActionScript som sprog dukkede op med udgivelsen af ​​den 5. version af Macromedia Flash , som blev det første ActionScript-programmerbare miljø. Den første udgivne version af sproget hed ActionScript 1.0. Flash Version 6 (MX) brugte også ActionScript 1.0. I 2004 introducerede Macromedia en ny version af ActionScript 2.0 med udgivelsen af ​​Flash 7 (MX 2004), som introducerede stærk typeslutning såvel som klassebaseret programmering. Det vil sige, at der dukkede nye søgeord op:

Macromedia udgav også en ændring af Flash Lite-sproget til programmering under mobiltelefoner.

ActionScript 1.0 er et prototype programmeringssprog . Det vil sige, at den fuldt ud implementerer alle tre principper for objektorienteret programmering.

ActionScript 2.0 er en tilføjelse til ActionScript 1.0. Typekontrol og arbejde med klassehierarkiet udføres på kompileringstidspunktet, hvilket ender med at generere ActionScript 1.0-lignende bytekode.

I 2006 blev ActionScript 3.0 udgivet i Adobe Flex - programmeringsmiljøet og senere i Adobe Flash 9.

ActionScript 3.0 repræsenterer en kvalitativ ændring sammenlignet med ActionScript 2.0, den bruger den nye AVM 2.0 virtuelle maskine og erstatter den tidligere formelle klassesyntaks med ægte klassebaseret objektorienteret programmering . ActionScript 3.0 giver op til 700x ydeevneforbedring i forhold til ActionScript 1.0/2.0 (dette er kun instruktionsbehandling, ikke grafik). ActionScript 3.0 giver dig mulighed for at arbejde med binære data med BitMap (som giver et betydeligt ydelsesboost: op til 10.000 gange). ActionScript 3.0 er i hastighed kommet tæt på programmeringssprog som Java og C# . Ydelsesgevinsten er baseret på dynamisk kodeoversættelse ( JIT ). Denne stigning i ydeevnen er kun mulig for nogle datatyper og kræver en særlig organisering af koden [3] . Mængden af ​​kode stiger som regel flere gange [4] (sammenlignet med AS1).

Player versioner Innovationer
2

Der var "handlinger", i det følgende kendt som:

  • gotoAndStop();
  • gotoAndPlay();
  • næsteFrame();
  • prevFrame();
  • getURL();
3 Udseendet af loadMovie();
fire Den første version med fuld understøttelse af scripting implementering.
5 Udseendet af den første version af ActionScript. Der blev brugt prototypeprogrammering baseret på ECMAScript , og der blev leveret fuld support til procedure- og objektorienteret programmering.
6
  • Tilføjet begivenhedsmodel
  • kontakt
  • Tilføjet understøttelse af AMF- og RTMP -protokoller.
7
  • Fremkomsten af ​​AS2 baseret på ECMAScript 4 med klassebaseret programmering.
  • Tilføjet CSS- understøttelse for tekst.
otte
  • Fremkomsten af ​​nye sikkerhedsregler.
  • Tilføjelse af et AS1/AS2-filter.
  • Udseendet af en klasse til visning af bitmapdata i realtid.
9
  • Ny ECMAScript scripting engine, ActionScript Virtual Machine AVM2. AVM bevaret for kompatibilitet, tilføjet understøttelse af ActionScript 3 via AVM2 .
  • Fremkomsten af ​​E4X -udvidelsen til XML .
ti
  • 3D effekter
  • Forskellige filtre og effekter
  • Udvidet tekstlayout
  • Forbedret Tegning API
10.2
  • p2p- understøttelse forbedret , støjreduktion tilføjet.
elleve
  • Fremkomsten af ​​en lav-niveau API til at arbejde med grafik, USB-enheder
  • 3D acceleration
Understøttelse af ActionScript-versioner:
Ikke understøttet AS1 AS1, AS2 AS1, AS2, AS3

Syntaks

ActionScript-syntaks er baseret på ECMAScript- specifikationen .

ActionScript 2.0

Denne kode opretter et nyt tekstfelt i dybde (dybde) 0, ved punkt (0, 0) og 100 gange 100 pixels i størrelse. Parameteren texter lig med strengen " Hello, world ". Koden skal skrives i vinduet handling - ramme

createTextField ( "hilse" , 0 , 0 , 0 , 100 , 100 ); hilse . text = "Hej verden!" ;

Et eksempel på en klasse skrevet i AS2. Koden skal gemmes i en separat .as-fil og placeres i samme mappe som projektets .fla-kilde.

klasse com . eksempel . Greeter udvider MovieClip { public function Greeter () { } public function onLoad () : Void { var txtHello : TextField = this . createTextField ( "txtHello" , 0 , 0 , 0 , 100 , 100 ); txtHej . text = "Hej Ako!" ; } }

ActionScript 3.0

I kildekode kompileret af Adobe Flex SDK (AS 3.0):

pakke { import flash . display . Sprite ; import flash . tekst . Tekstfelt ; public class HelloWorld udvider Sprite { public function HelloWorld () { var txtHello : TextField = new TextField (); txtHej . text = "Hej verden!" ; addChild ( txtHello ); } }

MXML

Kode skrevet i MXML (XML-udvidelse):

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx= "http://www.adobe.com/2006/mxml" xmlns= "*" layout= "vertical" creationComplete= "initApp()" > <mx:Script> <![CDATA[ public function initApp():void { // Udskriver vores "Hej, verden!" besked til "mainTxt". mainTxt.text = Greeter.sayHello(); } ]]> </mx:Script> <mx:Label id= "title" fontSize= "24" fontStyle= "bold" text= '"Hej verden!" Eksempel' /> <mx:TextArea id= "mainTxt" width= "250" /> </mx:Application>

Debugger

Et eksempel på debuggeren. Udskriver output til skærmen alle data, der kan konverteres til en streng (AS2 og fremefter):

trace ( "Hej verden!" );

Struktur

ActionScript 2

Elementære datatyper
Type Beskrivelse
Snor En streng, en række tegn, for eksempel: "Hej, verden"
nummer Enhver numerisk værdi, for eksempel: 0, 0,5, 1150
Boolean Boolesk værdi, kan tage værdierne "true" eller "false".
Objekt Et objekt. Et eksempel på et objekt er klasser, metoder, funktioner, parametre osv.
Komplekse datatyper
Type Beskrivelse
filmklip Et grafikobjekt, der indeholder rammer.
Tekstfelt Et dynamisk eller input tekstfelt.
knap Knap. Det er i bund og grund et filmklip med foruddefineret adfærd. Består af 4 rammer: Up, Over, Down og Hit.
Dato Et objekt, der indeholder oplysninger om dato/klokkeslæt.
array Dataarray.
XML XML-objekt
XMLNode XML-node
LoadVars Bruges til at sende og modtage variabler ved hjælp af HTTP POST og HTTP GET
lyd Indeholder lyddata i .MP3-format
NetStream Indeholder lyddata i andre formater
NetConnection Tillader 2 flash-film at interagere i samme omfang (f.eks. på skrivebordet eller i én browserfane)
MovieClipLoader Klasse til indlæsning af swf-videoer og .jpg .png-billeder
EventListener Event Handler

ActionScript 3

Elementære datatyper

(se Adobe dokumentation )

Type Beskrivelse
Boolean Boolesk værdi, kan tage værdierne "true" eller "false".
int heltal 32-bit numerisk værdi i området -2 31 til 2 31 -1.
uint heltal 32-bit numerisk værdi i området 0 til 2 32 −1.
nummer fraktioneret 64-bit numerisk værdi i området −263 til 263−1 .
nul nul. Link til ugyldig.
Snor En streng på 16-bit tegn. Kodningen er UTF-16.
ugyldig datatypen med én værdi er udefineret. Bruges hvis programmøren ønsker at angive typen af ​​funktionen som "ikke-returnerbar".
Komplekse datatyper

(se Adobe dokumentation )

Type Beskrivelse
Objekt Et objekt. Nøgleklassen for OOP. Det er grundlaget for alle AS3 klasser.
array En række løst indtastede data. Kan tage enhver værdi, for eksempel: ['a', 5, new TextField()]
vektor En række stærkt indtastede data. For eksempel kan array-vektoren.<String> kun indeholde strengdata ['a','b',' ']
Dato En klasse, der indeholder oplysninger om dato/klokkeslæt.
fejl Klassen, der indeholder fejlene.
fungere Hovedklasse. Et eksempel er enhver AS3-metode.
Regexp Regelmæssige udtryk
XML E4X-baseret XML-objekt (ECMA-357 standard)
XMLList Et array-baseret objekt til at søge efter indhold i en XML-klasse.
Pakker

ActionScript 3.0 (mere specifikt, Flash Player 9 API - man kan sige standardbiblioteket skrevet i C++) består af mere end 700 klasser organiseret i følgende pakker (analoger af navnerum i C++):

Pakke Beskrivelse
flash.tilgængelighed klasser for at understøtte adgang til Flash-indhold og -applikationer.
flash.display de vigtigste klasser, som Flash Player bruger til at vise et billede på skærmen.
flash.fejl almindeligt anvendte fejlhåndteringsklasser.
flash.ekstern indeholder klassen ExternalInterface, som bruges til at kommunikere med Flash Player-beholderen.
flash.filtre klasser til at arbejde med rasterbilledfiltre.
flash.geom klasser til at arbejde med geometriske klasser såsom punkter, rektangler og transformationsmatricer - for at understøtte BitmapData-klassen og muligheden for at cache billeder.
flash medier klasser til at arbejde med multimedier - for eksempel lyde og video.
flash.net klasser til afsendelse og modtagelse af data over netværket. For eksempel URL-anmodninger og Flash Remote.
flash.udskrivning klasser til udskrivning af indholdet af en Flash-film.
flash profiler funktioner, der bruges til fejlretning og profilering af kode.
flash.system klasser for at få adgang til systemet på funktionalitetsniveau, såsom sikkerhed, flersproget indhold osv.
flash tekst klasser til at arbejde med tekst, dens formatering, størrelse, stil og placering.
flash.ui brugergrænsefladeklasser såsom mus- og tastaturklasser.
flash.utils yderligere klasser, såsom ByteArray til at arbejde med binære data, Timer til at tælle tidsintervaller osv.
flash.xml giver XML support og alle funktioner til at arbejde med XML. (Påkrævet for at understøtte tidligere AS-versioner)

Der er også mx.*- pakker, som består af klasser designet til at skabe en applikationsgrænseflade i Flex -miljøet og fl.*- pakker til Flash- miljøet.

Populære miljøer

  • Adobe Flash  er historisk set det første miljø , der understøtter AS. Fra Flash 5 var der et "ACTIONS" panel med mulighed for at redigere kode (AS1). Til Flash 6 blev AS2 oprettet. Fra Flash 9 var der understøttelse af AS3.
  • Adobe Flash Builder  er et udviklingsmiljø til at skabe RIA -applikationer til desktop og mobile enheder.
  • Powerflasher FDT  er et miljø anerkendt af erfarne flash-programmører, baseret på eclipse  , en gratis IDE til udvikling af modulære cross-platform-applikationer.
  • FlashDevelop  er et gratis udviklingsmiljø og editor skrevet i C#, der giver dig mulighed for at oprette Flash-applikationer ved hjælp af Flash IDE, Flex SDK, MTASC eller hexe.
  • CodeDrive  er et udviklingsmiljø og editor med en ret hurtig compiler baseret på Microsoft Visual Studio.
  • SWFTools  er en gratis pakke til at arbejde med swf-filer, pakken inkluderer ActionScript 3.0-kompileren (as3compile).

Noter

  1. RFC 4329 (grænse kompatibel med EcmaScript)
  2. Arkiveret kopi (link ikke tilgængeligt) . Hentet 9. juli 2015. Arkiveret fra originalen 27. marts 2017. 
  3. Ted Patrick | Iværksætter, far og interaktiv softwareudvikler Arkiveret 30. september 2009.
  4. Seks grunde til at bruge ActionScript 3.0 | Adobe Developer Connection . Hentet 9. december 2009. Arkiveret fra originalen 10. februar 2009.

Links