15. juni 2006 - 16:53Der 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 ;)
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 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
Synes godt om
Slettet bruger
15. juni 2006 - 20:51#2
Jeg tjekker lige... Har nemlig haft nogle problemer med, hvor klassen skulle defineres :S
Synes godt om
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!
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.