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:
- MouseEvent
- MovieClip
- ClassicText
- Graphics
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:
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
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. |
|
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. |
|
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 |
|