Avatar billede paask Nybegynder
05. september 2002 - 12:31 Der er 4 kommentarer og
1 løsning

Prototyping af _parent.

Jeg undrer mig over, at det ikke er muligt at prototype _parent ?!

Ved at skrive dette:

Mcp = Movieclip.prototype;
Mcp.r = _root;
Mcp.rb = r.ball;
Mcp.p = _parent.

Så er _root nedarvet til Movieclippet som r, dvs. man kan referere alle steder fra blot gennem r og ikke _root. På samme måde kan man forkorte henvisninger til clips, som her med ball og rb. Det virker fint og herligt og forkorter koden betydeligt.

Ligeledes ville jeg gøre det samme med _parent, men det virker blot ikke. Det ville nu være fedt hvis jeg kunne henvise til et andet clip som _parent._parent.box ved blot at skrive ppbox eller lign. Håber I kan følge mig...

Er der nogen der har en grund til dette? Jeg er egenlig bare nysgerrig da det undrer mig meget...
Avatar billede barklund Nybegynder
05. september 2002 - 15:02 #1
Når du ligger din kode på prototypen, så ligger du jo en statisk variabel til _root (der aldrig ændrer sig og ikke vil virke, i en movie, du loader ind i _level1, der nemlig læser r som _root af _level0 og ikke _level1) og det samme med ball, men parent skal jo bestemmes dynamisk, så den kan ikke defineres således...

Har du mx, for så kan det gøres med getter/setter eller watch men ellers må det blive en funktion:

Mcp.p = function() {
    return this._parent;
}

Så kan du istedet for:

_parent._parent.box

Skrive:

p().p().box

/Barklund
Avatar billede paask Nybegynder
05. september 2002 - 17:21 #2
Det har du selvfølgelig ret i Barklund, det er jo lige dér hunden ligger begravet ;0)

Idéen med funktionen er jo helt god nok, men så skal det gøres på samtlige clips og ikke bare i roden. Så er det næsten ligeså nemt bare at bruge _parent, selvom linierne bliver lidt kortere. Jeg bruger mx, så måske jeg lige skulle se på noget getter/setter værk?!

Alt andet lige, takker for input, det giver lidt mere mening nu. Smider du lige et svar?
Avatar billede barklund Nybegynder
06. september 2002 - 11:29 #3
Kan lige prøve med en getter/setter (og der er jo ingen setter, da den en read-only):

Movieclip.prototype.addProperty("p", function() { return this._parent }, null);

Er ikke helt sikker på syntaksen... Prøv en gang :o)


Mht. at det skal gøres på samtlige clips som du skriver kan jeg ikke forstå... Når du ligger det i prototypen, så findes den netop på samtlige clips... Og skal kun defineres i prototypen som jeg har gjort ovenfor - prøv selv!


Og et svar... :o)

/Barklund
Avatar billede paask Nybegynder
06. september 2002 - 15:16 #4
Hej igen barklund.

Du har da helt ret, as usual! Det er vel lige det med at læse ordenlig efter... Jeg tænkte på blot at definere p som en function på clippet, og ikke prototype funktionen, men det ville jo ikke være så smart ;0)

Jeg sidder ikke ved en maskine med Flash nu, men jeg vil prøve din syntax så snart jeg kan. Det ser ret smart ud på den måde - håber det virker.

Tak for hjælpen og forklaringen :0)

mvh
paask
Avatar billede barklund Nybegynder
06. september 2002 - 15:36 #5
...og tak for point...
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