Programmering i ActionScript

Kapittel 2 - Instanser og grafikk


Mye repetisjon her, men litt mer forklaringer enn i den første boken, så lurt å lese dette nøye for å være sikker på at man har forstått alt og skjønner hva kode-eksemplene gjør.

Her arbeides det med en del sentrale klasser (Objektorientert programmering: Sammensatt datatype med egenskaper (variabler) og metoder (funksjoner) ) som er innebygd i Flash-miljøet:

Klassene finner vi i ActionScript-panelet til venstre i Actions-panelet.

Her bruker jeg såkalte UML-diagrammer til å beskrive de viktigste egenskapene og metodene til disse klassene:

MouseEvent

flash.events.MouseEvent
stageX, stageY: int Muse-koordinater da hendelsen skjedde
altKey, ctrlKey, shiftKey: Boolean Var Alt, Ctrl eller Shift nede?
currentTarget: Object Hvor lytteren ble hengt på
target: Object Hvilket objekt som ble klikket på
CLICK, RIGHT_CLICK, MOUSE_DOWN, MOUSE_UP,...: int Konstanter (tallkoder med navn)
toString(): String Skriver ut info om klassen

Kan prøve ut med å lage en Button "knapp" og litt kode:

import flash.events.MouseEvent;

stage.addEventListener(MouseEvent.CLICK, musKlikket);

function musKlikket(evt: MouseEvent): void {
	trace("Event som tekst: "+evt.toString());
	trace("StageX, StageY:  "+evt.stageX+" ,"+evt.stageY);
	trace("currentTarget:   "+evt.currentTarget);
	trace("target:          "+evt.target);
	trace("Alt-tast nede:   "+evt.altKey);
}//musKlikket()

Som kan gi omtrent slik output:

Event som tekst: [MouseEvent type="click" bubbles=true cancelable=false eventPhase=2 localX=257 localY=142 stageX=257 stageY=142 relatedObject=null ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]

StageX, StageY: 257 ,142
currentTarget: [object Stage]
target: [object Stage]
Alt-tast nede: false
Event som tekst: [MouseEvent type="click" bubbles=true cancelable=false eventPhase=3 localX=61 localY=10 stageX=264 stageY=285 relatedObject=null ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]

StageX, StageY: 264 ,285
currentTarget: [object Stage]
target: [object Button]
Alt-tast nede: false

MovieClip:

flash.display.MovieClip
currentFrame: int Hvilken ramme er vi i nå?
currentFrameLabel: int Hvilket navn har denne rammen?
totalFrames: int Totalt antall rammer
graphics: Graphics Tilhørende tegneområde
mouseX, mouseY: int Mus-koordinater
stage: Stage Peker til stage
visible: Boolean Synlig eller ikke
x,y, height, width: int Koordinater
addEventListener(Event, Function)  
removeEventListener(Event, Function)  
addChild(DisplayObjectContainer) Legge til andre display-objekter hierarkisk
getChildAt( int): DisplayObjectContainer Returner display-objekt med denne indeks
getChildByName( String): DisplayObjectContainer Returnerer display-objekt med dette navn
getChildIndex(DisplayObjectContainer): int Returnerer indeks til disply-objekt
getRect(DisplayObject): Rectangle Returnerer Rectangle objekt. (x,y,w,h) (flash.geom.Rectangle)
stop(), play() Tidslinje-operasjoner
gotoAndPlay(int, Scene), gotoAndStop(int, Scene)  
nextFrame(), prevFrame()  
nextScene(), prevScene()  
hitTestObject( DisplayObject) : Boolean Overlapper et annet objekt med dette objektet?
toString(): String Skriftlig info om dette objektet.

flash.text.TextField:

Classic Text laget med Tools-menyens T-verktøy blir objekter fra klassen TextField!

flash.text.TextField
name: String Navnet på objektet (instance name)
backgroundColor: uint Farver angitt som positive heltall på heksadesimal form: 0xrrggbb. (Siffre: 0..f )
borderColor: uint  
textColor: uint  
length: int Lengde tekstfelt
multiline: Boolean Flere linjer eller ikke
visible: Boolean Synlig
numlines: int Antall linjer
text: String Teksten i tekstfeltet
x,y,width, height  
addEventListener(Event, Function)  
removeEventListener(Event, Function)  
appendText(String) Legger til tekst
replaceText(start: int, slutt: int, ny: String) Skrifter ut tekst fra index start til slutt med ny.
toString(): String Skriftlig info om objektet.

flash.display.Graphics:

Display-objekter har et Graphics-område vi kan tegne på:

flash.display.Graphics
   
clear() Fjern alt
lineStyle( tykkelse, farve, alfa) Setter strek-egenskaper
moveTo( x, y) Beveg penn til (x,y)
lineTo( x, y) Tegn strek til (x,y)
drawCircle( x, y, r) Tegn sirkel,
DrawEllipse( x, y, w, h) ellipse,
drawRect( x, y, w, h) rektangel
drawRoundRect( x, y, w, h, w_hjørne, h_hjørne) og rektangel med runde hjørner
beginFill( farve, alfa) Start legg inn fyll
endFill() Avslutt legg inn fyll