hiHa: fade effekt, probleme mit hex/zahl-umwandlung

hi!

also, ich habe mir ein fadescript geschrieben. möchte aber nun, dass man den hex wert angibt und nicht die rgb farben. der hexwert ist ja:

0123456789ABCDEF

Jetzt habe ich also den Wert FF. Dieser muss aber in eine Zahl umgewandelt werden also F=16. Und FF (16*16) = 256. Aber wie kann ich dem script sagen, dass es anstatt F, 16 nehmen soll???

Und dann zum rückumwandeln wieder von 16 nach F?

Jetzt fragen sich manche, wozu dann das umwandeln, wenn es doch sowieso wieder umgewandelt wird. Antwort: Mit Buchstaben kann man schlecht rechnen, oder ;)

Mfg hi

  1. Hi hi

    0123456789ABCDEF

    Jetzt habe ich also den Wert FF. Dieser muss aber in eine Zahl umgewandelt werden also F=16. Und FF (16*16) = 256. Aber wie kann ich dem script sagen, dass es anstatt F, 16 nehmen soll???

    Ohh, da ist aber ein Fehler: F ist 15 und _nicht_ 16! Im Dezimalsystem haben wir ja auch 10 Ziffern, jedoch ist die höchste 9. Du diskriminierst also die Null ;-).

    Um dem JavaScript beizubringen, dass es F anstelle von 15 nehmen soll kannst du ein Array mit allen Ziffern des Hexadezimalsystems in aufsteigender Reienfolge nehmen. Wenn du dann die gesuchte Zahl im Index angibst erhälst du den Hex-Wert. Dies geht natürlich nur bis 15, danach musst du ein paar Rechenoperationen anwenden.

    Das umgekehrte sollte mit assoziativen Arrays klappen.

    MfG & HtH

    Tom2

  2. hi!

    Jetzt habe ich also den Wert FF. Dieser muss aber in eine Zahl umgewandelt werden also F=16. Und FF (16*16) = 256. Aber wie kann ich dem script sagen, dass es anstatt F, 16 nehmen soll???

    Und dann zum rückumwandeln wieder von 16 nach F?

    dafür gibts die JavaScript-Funktion parseInt() und die Methode toString() des Number-Objektes:

    http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int

    <script type="text/javascript">
    <!--
    var rotH="FF";
    var gruenH="1A";
    var blauH="A1";

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

    alert("rot:" + rotI + " gruen:" + gruenI + " blau:" + blauI);

    blauI+=10;

    var blauH = blauI.toString(16);

    alert("blau:" + blauH);

    //-->
    </script>

    Gruß

    Axel