Avatar billede f5 Nybegynder
13. oktober 2004 - 09:36 Der er 3 kommentarer og
1 løsning

Omdefinere en metode med prototype

Hey,

Jeg er ved at lave et tegneværktøj. Hver gang min "Drawer" klasse (som ligger på MC'en paper)laver et kald til lineTo funktionen, vil jeg gerne have at der samtidig bliver lavet et kald til min Recorder klasse (myRecorder).

Jeg arbejder i FLash MX og forestiller mig at jeg vil overskrive lintTo functionens prototype. Jeg gemmer først en henvisning til lineTo functionen i min drawer class (linje 1), og omdefinere så lineTo functionene(myRecorder er et instans af Recorder classen):

1.  this.paper.__lineTo=MovieClip.prototype.lineTo
2.  MovieClip.prototype.lineTo=function(x,y){
3.    this.__lineTo(x,y)
4.    myRecorder.addCommand()
5.  }

Er dette den mest hensigtsmæssige måde at gøre det på - jeg syndes det virker lidt rodet...

/Michael
Avatar billede pyroman Nybegynder
13. oktober 2004 - 11:20 #1
Hvorfor laver du ikke bare en ny funktion med et nyt navn istedet for?

MovieClip.prototype.drawLineTo = function(x,y){
  this.lineTo(x,y);
  myRecorder.addCommand();
}

Så slipper du for at rode rundt med de forskellige navne og komme til at bruge lineTo() hvor du egentlig skulle have brugt __lineTo()
Avatar billede f5 Nybegynder
14. oktober 2004 - 09:04 #2
hey,

Ja, det er egentlig også det jeg endte med at gøre hvilket også er det smarteste da der er gange jeg skal tegne uden at optage. Men hvis du smider et svar får du dig nogle hurtige point ... ;-)
Avatar billede pyroman Nybegynder
14. oktober 2004 - 11:40 #3
oki :)
Avatar billede f5 Nybegynder
14. oktober 2004 - 12:22 #4
tak
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