Avatar billede Slettet bruger
15. juni 2006 - 16:53 Der er 9 kommentarer og
1 løsning

Klasser i Flash MX 2004 - Giv mig venligst et eksempel

Hej eksperter!

Nu har jeg kænge været i tvivl om det tekniske omkring klasser i Flash MX 2004...

Kan I give mig et eksempel på at oprette en klasse med private, public og static variabler og public og private funktioner?

Vil I desuden venligst lige skrive et stykke kode der tracer nogle af oplysningerne på en instans af klassen, så jeg kan se, at det virker...
Jeg er ikke helt skarp til det med klasser, kan I nok se ;)


- Toke
Avatar billede mat Nybegynder
15. juni 2006 - 20:07 #1
Der er nok ikke så meget i klasser i flash, der ikke er generelt for objekt orienteret programmering, så endhver tutorial eller bog omkring dette vil sikkert give dig det ornødne indblik.
Men en hurtig introduktion (som sikkert kunne være mere pædagogisk) kunne være:

TestObject.as

class TestObject {

    static var ID:Number = 0;
    private var name:String;
    private var id:Number;   

    public function TestObject (navn:String) {
       
        this.name = navn;
       
        TestObject.ID = TestObject.ID+1;
        this.id = TestObject.ID;
       
    }


    public function GetName():String {
        return name;
    }
   
    public function GetID():Number {
        return id;
    }
    public function GetAddedNumber(a:Number, b:Number):Number {
        return AddNumbers(a,b);
    }

    private function AddNumbers(a:Number, b:Number):Number {
        return a+b;
    }

}

Og i flash kan man så lege lidt med den med noget ala:

var testObj1:TestObject = new TestObject("m");
var testObj2:TestObject = new TestObject("a");
var testObj3:TestObject = new TestObject("t");
trace("ID for testobjekt 1 er: " + testObj1.GetID()); // ID er en global tæller (på klasse niveau)
trace("ID for testobjekt 2 er: " + testObj2.GetID());
trace("ID for testobjekt 3 er: " + testObj3.GetID());

trace("Navnet på objektet med id: " + testObj2.GetID() + " er: " + testObj2.GetName());

trace("Der er instancieret: " + TestObject.ID + " objekter"); // ID er en klassevariabel og holder på antallet af objekter af den givne type da den inkrementeres hver gang et objekt instancieres

//trace(testObj1.name); // kan du ikke, name er private og kan kun tilgås inde fra klassens selv

//trace(testObj1.AddNumbers(2,3)); // kan du ikke, metoden er private, tilgengæld wrapper vi den i følgende

trace(testObj1.GetAddedNumber(2,3)); // må vi gerne da GetAddedNumbers er public, men den wrapper en private, og der har den selv adgang


håber det hjælper en smule?

mvh mat
Avatar billede Slettet bruger
15. juni 2006 - 20:51 #2
Jeg tjekker lige...
Har nemlig haft nogle problemer med, hvor klassen skulle defineres :S
Avatar billede Slettet bruger
15. juni 2006 - 20:55 #3
HAHA!

Jeg har næsten aldrig prøvet noget, der bare virkede fra første forsøg...
Det gjorde den her kode!

Bare smid et svar ;)
Avatar billede mat Nybegynder
15. juni 2006 - 20:55 #4
Bare skriv den i din yndlingseditor (eller i notepad) og gem den i samme folder som din test fla, som TestObject.as
Avatar billede mat Nybegynder
15. juni 2006 - 20:55 #5
aight :)
Avatar billede mat Nybegynder
15. juni 2006 - 20:56 #6
oops
Avatar billede Slettet bruger
16. juni 2006 - 07:39 #7
Har du også Notepad2?
Det er rigtig godt til PHP, Flash AS, HTML osv.
Avatar billede Slettet bruger
16. juni 2006 - 07:40 #8
Og tak for hjælpen!
Nu skal jeg igang med AS igen ;)
Avatar billede mat Nybegynder
16. juni 2006 - 09:05 #9
Nej jeg har ikke notepad2, men jeg kunne da godt tænke mig en ordentlig actionscript editor.
Avatar billede Slettet bruger
16. juni 2006 - 12:30 #10
http://www.flos-freeware.ch/notepad2.html
;)
Hvis du vil downloade det...
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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