Actionscript / flash - Hjælp til at genbruge kode til større funktionalitet
Dette er et spørgsmål i Actionscript / FlashHej. Jeg har følgende kode, hvor hvis jeg trykker på "G", så laves der en cirkel, og hvis man trykker igen, så fader den ud.
Jeg har problemer med at finde frem til hvorledes jeg kan implementere det således at man har samme funktionalitet ved alle taster "A", "S" , "D" osv. Uden at skulle lave en masse copy/paste funktioner med forskellige navne, hvilket er særligt genbrugeligt.
Nogen hjælp?
Koden er her:
var bol:Boolean;
var circleMC:MovieClip;
function test(event: KeyboardEvent) {
if (bol == false) {
Visual(event);
}
else {
NotVisual(event);
}
}
function Visual(event: KeyboardEvent)
{
if(event.keyCode == 71) //(G)
{
AddCircle();
bol = true;
}
}
function NotVisual(event: KeyboardEvent)
{
if(event.keyCode == 71) //(G)
{
bol = false;
circleMC.addEventListener(Event.ENTER_FRAME, fadeCircle);
}
}
function AddCircle() {
// Tilføjer cirkel til stage
var newCircle:BlueCircle = new BlueCircle();
addChild(newCircle);
newCircle.x = Math.floor(Math.random() * (550 - 0)) + 0;
newCircle.y = Math.floor(Math.random() * (400 - 0)) + 0;
// fastsætter cirklens scale og alpha
newCircle.scaleX = 0;
newCircle.scaleY = 0;
newCircle.alpha = 0;
// Tilføjer enter_frame
newCircle.addEventListener(Event.ENTER_FRAME, ZoomCircle);
}
function ZoomCircle(e:Event):void {
// Opsamler den skabte cirkel
circleMC = MovieClip(e.target);
// forøger scale
circleMC.scaleX += .05;
circleMC.scaleY += .05;
// fader ud efter kriterier
if (circleMC.scaleX < 2) {
circleMC.alpha += .03;
} else {
circleMC.removeEventListener(Event.ENTER_FRAME, ZoomCircle);
// Stopper enter frame event
}
}
function fadeCircle(e:Event):void {
if(circleMC.alpha > 0) {
circleMC.alpha -= .03;
}
else {
circleMC.removeEventListener(Event.ENTER_FRAME, fadeCircle);
removeChild(circleMC);
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, test)