14. juli 2002 - 15:22Der er
6 kommentarer og 1 løsning
Robert Penner
// tint an object with a color just like Effect panel // r, g, b between 0 and 255; amount between 0 and 100 Color.prototype.setTint = function (r, g, b, amount) { var trans = new Object(); trans.ra = trans.ga = trans.ba = 100 - amount; var ratio = amount / 100; trans.rb = r * ratio; trans.gb = g * ratio; trans.bb = b * ratio; this.setTransform(trans); }
Color er et af Flash's indbyggede objekter. Color-objektet er defineret i Flash som en funktion med nogle lokale metoder. Disse kan kaldes på Color-objekter - altså instanser af Color-funktionen. Skal man lave et nyt Color-objekt, skal det laves som:
myColor = new Color();
Den skal så initialiseres med det movieclip, som man vil skifte farve på:
myColor = new Color(someClip);
På myColor kan man så kalde nogle metoder. Disse er defineret i Color-objektet generelt, men hvis de lå som funktioner defineret direkte i Color som fx:
Color.setTransform = function() { // stuff };
Så ville alle objekter af klassen Color indeholde denne funktion og dermed ville den funktion være defineret i hver eneste objekt - hvilket jo er spild af plads. For at den kun defineres et sted, så lægges det op i prototypen til Color-objektet. For har man et objekt og kalder en metode på dette, så leder Flash først i objektet selv, og hvis det ikke findes her, så leder den op igennem prototyperne af hvilke objektet er udledt. Color-objektet er selv udledt af Object-objektet.
Hvis du vil kunne bruge den fra et movieclip, så kan vi jo passende definere en ny funktion, der kan kaldes fra et movieclip. Når man er inden i et movieclip, så kan man bruge funktionerne, der er defineret i prototypen for Movieclip-objektet:
Movieclip.prototype.setTint = function(r,g,b,a) { (new Color(this)).setTint(r,g,b,a); }
Smart, hva'?
Sig til, hvis du skal forklares yderligere. Har Penner ikke selv en lang introduktion til OOP (Object-Oriented Programming) i Flash på sin side? Det kan også være, at det er Debrueil (som jeg ikke kan stave til)...
OK, tror at jeg fundet ud af lidt mere! det er sku lidt indviklet, DER er helt sikkert mere på vej fra mig, har forstået en del mere efter jeg er begyndt at læse bøger!
TeleMuzen
Synes godt om
Ny brugerNybegynder
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.