Avatar billede thingholm.dk Nybegynder
14. juni 2003 - 23:24 Der er 11 kommentarer og
1 løsning

Class+attachMovie

Hej

Hvordan laver man en class som bl.a. attacher et movieClip?

VH

Anders Thingholm
Avatar billede barklund Nybegynder
14. juni 2003 - 23:29 #1
SomeMCClass = function(path) {
    this.handle = path.attactMovie("someMC","someMC"+(++SomeMCClass.counter),SomeMCClass.counter);
}
Avatar billede barklund Nybegynder
14. juni 2003 - 23:29 #2
Og så:

mitObject = new SomeMCClass(_root);
Avatar billede thingholm.dk Nybegynder
14. juni 2003 - 23:33 #3
Cool, jeg har nu dette:

personCounter = 1;
personClass = function (id) {
    this.handle = _root.attactMovie("personMC", "person"id, personCounter);
   
   
    personCounter++
};

Hvordan kalder jeg så klassen så den attacher mit movieClip på f.eks. X=100, Y=50 ?
Avatar billede thingholm.dk Nybegynder
14. juni 2003 - 23:33 #4
"person"id = "person"+id
Avatar billede barklund Nybegynder
14. juni 2003 - 23:47 #5
personClass.counter = 1;
personClass = function (id,x,y) {
    this.handle = _root.attachMovie("personMC", "person"id, personClass.counter++,{x: x, y: y});
};
peter = new personClass("peter",50,100);
Avatar billede thingholm.dk Nybegynder
14. juni 2003 - 23:55 #6
Hej igen - hvordan skal dette forståes:

... personClass.counter++,{x: x, y: y});

er x: i en class det samme som _x ?

og hvad er personClass.counter++,{
Avatar billede thingholm.dk Nybegynder
14. juni 2003 - 23:57 #7
og er der en anden må at sætte properties som _x og _y på den nye object? Jeg skal nemlig have en masse :-)
Avatar billede thingholm.dk Nybegynder
14. juni 2003 - 23:58 #8
Hov, nu virker den...

personCounter = 1;
personClass = function (id, x, y) {
    this = _root.attachMovie("personMC", "person"+id, personCounter);
    this._y = y
    this._x = x
    this.name_txt.text = "test"
    personCounter++;
};

Er denne måde at lave en class ok, eller er det "beskidt kode"?
Avatar billede barklund Nybegynder
15. juni 2003 - 00:00 #9
min fejl... der skulle stå {_x: x}, men du kan også sætte dem som almindelige properties... Tricket er bare, at man kan lave et objekt hvorfra alle egenskaber bliver overført til det nye movieclip:

mitObject = new Object();
mitObject._x = 100;
mitMC = _root.attachMovie("personMC",id,mitObject);

Er altså fuldstændig det samme som:

mitMC = _root.attachMovie("personMC",id);
mitMC._x = 100;

Så du kan gøre det som du vil...
Avatar billede thingholm.dk Nybegynder
15. juni 2003 - 00:01 #10
takker - smider du et svar?
Avatar billede barklund Nybegynder
15. juni 2003 - 00:02 #11
Du kan da ikke skrive "this" til at holde referencen... det er noget rod... Brug this.handle eller tilsvarende istedet:

personCounter = 1;
personClass = function (id, x, y) {
    this.handle = _root.attachMovie("personMC", "person" id, personCounter);
    this.handle._y = y
    this.handle._x = x
    this.handle.name_txt.text = "test"
    personCounter  ;
};
personClass.prototype.updateName = function(newName) {
    this.handle.name_txt.text = newName;
}

Så du netop har en lokal reference til movieclippet og kan opdatere det...
Avatar billede barklund Nybegynder
15. juni 2003 - 00:06 #12
Tark for points :)
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