Avatar billede danishhoward Nybegynder
12. marts 2009 - 19:25

Actionscript / flash - Hjælp til at genbruge kode til større funktionalitet

Dette er et spørgsmål i Actionscript / Flash

Hej. 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)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester