sh0x
Erfahrenes Mitglied
Hallo Leute,
Ich habe ja einen Newsfader geschrieben und habe folgende Funktion:
Damit möchte ich überprüfen, ob beim Farbdimmen für jede Farbkomponente R, G und B die Zielfarbe erreicht wird oder sogar übertroffen. Ist dies der Fall, nämlich dass sie übertroffen wird, wird sie gleich der Zielfarbe gesetzt.
Sven, du müsstest mich verstehen ;-)
Bei meinem bisherigen Newsfader bestand nämlich das Problem, dass beim Farbaufhellen zum Beispiel zum Teil je nach Faktor mehr als 255 für eine Farbe erreicht wurde. Das will ich ändern, damit das keine eventuellen Browserbugs auslöst.
Mit der obigen Lösung funktioniert es zwar. Habe aber das Gefühl, dass das auch einfacher gehen müsste, oder?
Das ist nochmal die gesamte Funktion:
Ich habe ja einen Newsfader geschrieben und habe folgende Funktion:
Code:
if (kopier > zielr) {
kopier = (kopier - schrittr);
if (kopier < zielr) kopier = zielr;
}
else if (kopier < zielr) {
kopier = (kopier + schrittr);
if (kopier > zielr) kopier = zielr;
}
if (kopieg > zielg) {
kopieg = (kopieg - schrittg);
if (kopieg < zielg) kopieg = zielg;
}
else if (kopieg < zielg) {
kopieg = (kopieg + schrittg);
if (kopieg > zielg) kopieg = zielg;
}
if (kopieb > zielb) {
kopieb = (kopieb - schrittb);
if (kopieb < zielb) kopieb = zielb;
}
else if (kopieb < zielb) {
kopieb = (kopieb + schrittb);
if (kopieb > zielb) kopieb = zielb;
}
Damit möchte ich überprüfen, ob beim Farbdimmen für jede Farbkomponente R, G und B die Zielfarbe erreicht wird oder sogar übertroffen. Ist dies der Fall, nämlich dass sie übertroffen wird, wird sie gleich der Zielfarbe gesetzt.
Sven, du müsstest mich verstehen ;-)
Bei meinem bisherigen Newsfader bestand nämlich das Problem, dass beim Farbaufhellen zum Beispiel zum Teil je nach Faktor mehr als 255 für eine Farbe erreicht wurde. Das will ich ändern, damit das keine eventuellen Browserbugs auslöst.
Mit der obigen Lösung funktioniert es zwar. Habe aber das Gefühl, dass das auch einfacher gehen müsste, oder?
Das ist nochmal die gesamte Funktion:
Code:
function FarbDimmen() {
if (kopier > zielr) {
kopier = (kopier - schrittr);
if (kopier < zielr) kopier = zielr;
}
else if (kopier < zielr) {
kopier = (kopier + schrittr);
if (kopier > zielr) kopier = zielr;
}
if (kopieg > zielg) {
kopieg = (kopieg - schrittg);
if (kopieg < zielg) kopieg = zielg;
}
else if (kopieg < zielg) {
kopieg = (kopieg + schrittg);
if (kopieg > zielg) kopieg = zielg;
}
if (kopieb > zielb) {
kopieb = (kopieb - schrittb);
if (kopieb < zielb) kopieb = zielb;
}
else if (kopieb < zielb) {
kopieb = (kopieb + schrittb);
if (kopieb > zielb) kopieb = zielb;
}
if (w3cdom && !docall) {
LieferObjekt('bastiticker').firstChild.href = A_Links[(i-1)]; // Link ändern
LieferObjekt('bastiticker').firstChild.style.color="rgb("+kopier+","+kopieg+","+kopieb+")";
}
else {
LieferObjekt('bastiticker').innerHTML='<a style="color:rgb('+Math.round(kopier)+','+Math.round(kopieg)+','+Math.round(kopieb)+')" href="'+A_Links[(i-1)]+'">'+StartTag+A_Tickertext[(i-1)]+EndTag+'</a>';
alert("KopieROT: "+kopier+" KopieGRÜN: "+kopieg+" KopieBLAU: "+kopieb+" Zähler J: "+j+" Faktor: "+faktor);
}
if (j<faktor && zielr != kopier ) {
setTimeout('FarbDimmen()',dimmschaltzeit);
j++;
}
else {
j=0;
FarbeSetzen();
}
return true;
}