Avatar billede telemuzen Nybegynder
14. juli 2002 - 15:22 Der 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);
}

Hvordan kan man bruge den?
hvilke objekter?
Avatar billede telemuzen Nybegynder
14. juli 2002 - 15:25 #1
Hvad bruger man "return" til?
Avatar billede barklund Nybegynder
15. juli 2002 - 13:04 #2
Som:

var myColor = new Color(myMovieClip);
var red = 100;
var blue = 0;
var green = 255;
var amount = 50;
myColor.setTint(red,green,blue,amount);

Eller kortere:

(new Color(myMovieClip)).setTint(100,0,255,50);

Og hvorfor spørger du om "return", som jeg ikke kan se i funktionen...

/Barklund
Avatar billede telemuzen Nybegynder
15. juli 2002 - 13:14 #3
ENDELIG, kan det ikke passe at man kan kalde den (function) fra et movieclip?
eks.
onClipEvent(enterFrame) {
setTint(100,0,255,50)
}
Avatar billede telemuzen Nybegynder
15. juli 2002 - 13:15 #4
hvad betyder Color.prototype.setTint, helt præsist?
setTint er navnet på functionen?
hva med Color/prototype?
Avatar billede telemuzen Nybegynder
15. juli 2002 - 13:33 #5
Jeg bliver sku nødt til at have noget hjælp, jeg er lige ved at have fattet syntaxen!
TeleMuzen
Avatar billede barklund Nybegynder
15. juli 2002 - 13:55 #6
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)...

/Barklund
Avatar billede telemuzen Nybegynder
15. juli 2002 - 14:16 #7
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
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

IT-JOB