Axel Richter: fadescript funzt net!

Beitrag lesen

Hallo,

Leute, jetzt seid doch mal net so Scheiße drauf!

Nö, war doch als Scherz gemeint.

Ich mag schon einfache Lösungen, aber ich würde gerne mal den Weg wissen, den ihr gewählt habt. Denn bei parseInt steht in selfHTML nichts über HexaCode. Also, eine kleine Erklärung zum Code wäre nicht schlecht gewesen.

http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int
...
Beachten Sie:
Die Methode parseInt() erlaubt einen zweiten, optionalen Parameter radix. Dieser Parameter enthält die Basis des verwendeten Zahlensystems. Der Aufruf parseInt(string,radix) ermittelt aus dem String, der eine Zahl eines anderen Zahlensystems darstellt, die dazugehörige Dezimalzahl. Die Methode parseInt() kann damit gleichzeitig als Umrechner von Zahlen anderer Zahlensysteme in das dezimale Zahlensystem verwendet werden. So ergibt z.B. der Aufruf parseInt("11111",2) die Zahl 31. Der optionale Parameter kann Werte zwischen 2 und 36 annehmen. Mit der Methode  toString() des  Number-Objektes können Sie umgekehrt Dezimalzahlen in Zeichenketten von Zahlen anderer Zahlensysteme konvertieren. Dabei ist - im Gegensatz zur Methode parseInt() - auch das Umwandeln von Kommazahlen möglich.

Naja, hexadezimale Zahlen sind nicht extra erwähnt. Aber hexadezimal bedeutet, dass die Zahlen auf der Basis 16 aufbauen. Dezimale Zahlen (z.B. Integerzahlen im JavaScript) bauen auf der Basis 10 auf.

parseInt("A",16) ergibt den Integer-Wert 10
parseInt("B",16) ergibt den Integer-Wert 11
...
parseInt("F",16) ergibt den Integer-Wert 15

Wenn Du eine Farbwert (FF7D7B) in seine Teile zerlegt hast:

var rotH="FF";
var gruenH="7D";
var blauH="7B";

kannst Du mit:

var rotI = parseInt(rotH,16);
var gruenI = parseInt(gruenH,16);
var blauI = parseInt(blauH,16);

die dezimalen Integer-Werte ermitteln.

Diese kannst Du dann verrechnen, um einen neuen Farbwert zu bekommen:
z.B. für blau:

blauI = blauI + 10;

und mit:

blauH = blauI.toString(16);

wieder nach Hexadezimal zurückwandeln.

Gruß

Axel