Hopp til innhold

ActionScript

Fra Wikipedia, den frie encyklopedi
ActionScript
Tilblivelse1998
ParadigmeMulti-paradigme: Funksjonell programmering, objektorientert programmering, prototypebasert programmering, imperativ programmering
Designet avGary Grossman
Utviklet avMacromedia
Siste versjon(er)3.0
Typetildeling sterk, statisk
Påvirket av
JavaScript, ECMAScript, Java

ActionScript er et programmeringsspråk basert på ECMAScript som blir brukt primært til utvikling av nettsider og programvare for Adobe Flash Player-plattformen, men også i noen databaseapplikasjoner og grunnleggende robotikk. Språket var først utviklet av Macromedia, men er nå eid av Adobe som tok over Macromedia i 2005. I flash CS5 ble det også mulighet for å lage applikasjoner til IOS.

ActionScript kom først i sin syntax med lansering i Flash 5, som var den første versjonen av Flash hvor det var mulig å programmere. Den første versjonen av ActionScript ble kalt ActionScript 1.0 . Flash 6 (MX) utvidet funksjonene i forhold til programmering i ActionScript. Dette gjorde de ved å legge til litt flere innebygde funksjoner og bedre programmeringskontroller av SWF-filmelementer. Flash 7 (MX 2004) introduserte ActionScript 2.0 som kom med nye funksjoner som klassebasert programmering, og avansert dataskriving. Actiontscript 1.0 og 2.0 deler den samme komprisasjonen i Flash SWF-filer.

Tidslinje

[rediger | rediger kilde]
  • Flash Lite 1.0 og 1.1: Flash Lite er flash-teknologien spesielt laget for utvikling for mobiltelefoner og andre elektroniske apparater. Flash Lite 1.1 støtter Flash 4 ActionScript.
  • Flash Lite 2.1: la til support for Flash 7 ActionScript 2.0.
  • Flash Player 2: Første versjon med programmeringsstøtte, funksjoner som: gotoAndPlay, gotoAndStop, nextFrame og nextScene for tidslinjekontroller.
  • Flash Player 3: videre funksjoner som for eksempel muligheten til å laste eksterne SWF-filmer (loadMovie).
  • Flash Player 4: første spilleren med full støtte for scripting. (kalt Actions).
  • Flash Player 5: inkluderer den første versjonen av ActionScript.
  • Flash Player 6: La til event handling model, og støtte for switch.
  • Flash Player 7: Flash Player 7 tilbyr nye funksjoner som CSS-tekst og fremføringen er bedre.
  • Flash Player 8: Støtter nå ActionScript 2.0
  • Flash Player 9 (også kalt 8.5): la til ActionScript 3.0.
  • Flash Player 10: La til omfattende sikkerhetsoppgraderinger, og støtte for 3D.

I ActionScript 2.0 kan det være klasser også et bibliotek object (et filmklipp) kan bli assosiert med en klasse. Klasser er vanligvis skrevet inni flash IDE-filen som en ekstern Actionscript-fil; uansett kan de bli programmert også i en vanlig tekst-editor; så lenge filen ender med .as-endelse. Klasser er utvidelser til ActionScript-språket, som programmereren kan skrive selv. Det er også mange innebygde klasser i Flash.

Mye av dette gjelder også i ActionScript 3.0, men når det gjelder oppbyggingen av språket og selve syntaxen er det meste forskjellig, og til tross for det navnet tilsier er ActionScript 3.0 ikke en fornying av ActionScript 2.0.

Eksempler

[rediger | rediger kilde]

ActionScript 2.0/3.0 Eksempel

[rediger | rediger kilde]

Den følgende koden skriver Hello world i flash IDE out panel. Noter at dette vil kun fungere inni en flash IDE, som en function bare fungerer inni funksjonen.

 trace ("Hello world!");

ActionScript 2.0 Eksempel

[rediger | rediger kilde]

Den følgende koden vil skrive Hello world til scenen.

_root.createTextField("myText", 1, 0,0,100,25);
_root.myText.text = "Hello world!";

Den følgende koden skriver ut musen sin posisjon når musen beveges, ved å bruke onMouseMove (når musen beveger seg) eventet. Igjen vil dette bare fungere i Flash IDE

 onMouseMove = function () {
    trace ("X: "+_root._xmouse);
    trace ("Y: "+_root._ymouse);
 };

Når den følgende koden blir skrevet på en knapp, starter den å spille tidslinjen til filmklippet hvor knappen er plassert. Dette er for hoved tidslinjen siden den også er et filmklipp (engelsk MovieClip).

 on(release) {
    play();
 }

Dette er et mer avansert eksempel på å lage en array som inneholder tall og tekst, og som skriver et nummer til en variabel kalt num og en tekst steng til en variabel kalt str og bruker en prototype funksjon også deretter bruken filmklippet API, og et tekstfelt blir kjørt/tegnet på skjermen hvor da variabelverdien blir skrevet.

 var myArray:Array = new Array ("Hello", "ActionScript", 3, 7, 11, "Flash");
 Array.prototype.pickNumber = function():Number  {
    var rand:Number = random(this.length);
    return (typeof (this[rand]) == "number") ? this[rand] : this.pickNumber();
 };
 Array.prototype.pickString = function():String  {
    var rand:Number = random(this.length);
    return (typeof (this[rand]) == "string") ? this[rand] : this.pickString();
 };
 var num:Number = myArray.pickNumber();
 var str:String = myArray.pickString();
 _root.createTextField ("txt", 1, 10, 10, 530, 390);
 txt.text = "Array = "+myArray+"\nRandom Number = "+num+"\nRandom String = "+str;

Array eksempel:

 var aData:Array = [{name: "Tord G. Nordahl", age: "20"}, {name: "Alfa Catrin Gangsøy", age: "21"}];
 dataGrid.dataProvider = aData;

ActionScript 3.0 Eksempel

[rediger | rediger kilde]

Dette «Hello World»-eksempelet er skrevet i ActionScript 3.0, og viser teksten "Hello World!" i hvitt med en svart skygge, etterfulgt av TextField-objektets pseudo-tilfeldige x- og y-posisjoner på scenen, som er generert med Math.random-funksjonen.

 package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.filters.DropShadowFilter;

    public class HelloWorld2 extends Sprite {
       private var shad:DropShadowFilter;
       private var txt:TextField;

       public function HelloWorld2() {
          shad = new DropShadowFilter (2, 45, 0x000000, 25, 3, 3, 2, 2);
          txt = new TextField();
          txt.textColor = 0xFFFFFF;
          txt.filters = [shad];
          txt.width = 120;
          txt.x = Math.random()*300;
          txt.y = Math.random()*300;
          txt.selectable = false;
          txt.text = "Hello World! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]";
          addChild(txt);
       }
    }
 }

Hvis man kun vil legge ut et tekst felt med teksten "Hello World!" på scenen (slik som Action Script 2.0-eksempelet gjør), kan man skrive:

var mittTekstFelt:TextField = new TextField // Vi lager en ny variabel som heter "mittTekstFelt"
mittTekstFelt.text = "Hello World!"
addChild(mittTekstFelt); // Nå vil mittTekstFelt kunne sees i posisjonen (0,0), siden den ikke er endret gjennom .x og .y variablene

Eksterne lenker

[rediger | rediger kilde]