Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Bug nella conversione di colori

    Salve, sono sempre quello degli oggetti "color".
    All'apparenza c'è un bug nel metodo "ConvertToHex" che ho scritto perché non mi compare nessun alert come invece mi auspico. Il metodo si appoggia a sua volta ad una funzione "Translate(P)" che traduce P, uno dei parametri del mio colore (R, G o B) in esadecimale. Ma lascio che il codice si spieghi da solo:

    ===(inizio script)===

    function color(R,G,B)
    {
    this.R = R || 0;
    this.G = G || 0;
    this.B = B || 0;
    // eccetera...
    this.ConvertToHex = function()
    {
    var sR,sG,sB;
    sR = Translate(this.R);
    sG = Translate(this.G);
    sB = Translate(this.B);
    alert(sR+sG+sB);
    }
    }

    function Translate(P)
    {
    var S;
    if (parseInt(P/16,10)<=9) S=(parseInt(P/16,10)*10);
    else if (parseInt(P/16,10)==10) S="a";
    else if (parseInt(P/16,10)==11) S="b";
    else if (parseInt(P/16,10)==12) S="c";
    else if (parseInt(P/16,10)==13) S="d";
    else if (parseInt(P/16,10)==14) S="e";
    else if (parseInt(P/16,10)==15) S="f";
    if (P%16<=9) S+=(P%16);
    else if (P%16==10) S+="a";
    else if (P%16==11) S+="b";
    else if (P%16==12) S+="c";
    else if (P%16==13) S+="d";
    else if (P%16==14) S+="e";
    else if (P%16==15) S+="f";
    return S;
    }

    ===(fine script)===

    Come vedete, alla fine dovrebbe eseguire alert(sR+sG+sB); ma non ci arriva mai. Né mi dà messaggi di errore. Non capisco come mai. Come si fa a vedere i "passi" che lo script svolge per fare un debug? Oppure, qualcuno di voi ha scovato l'errore a occhio?
    Help!!!

    Andrea
    Don't know what I want, but I know how to get it...

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    usa questa funzione per fare la conversione

    codice:
    function Dec2Hex(Dec) { 
        var hexChars = "0123456789ABCDEF";
        var a = Dec % 16; 
        var b = (Dec - a)/16; 
        hex = hexChars.charAt(b) + hexChars.charAt(a); 
        return hex; 
    }
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Grazie! Provo!
    Eppure ero un po' affezionato alla mia funzione, chissà perché non funziona...

    Andrea
    Don't know what I want, but I know how to get it...

  4. #4
    Che pirla, chiamavo il metodo "ConvertToHex" così:

    color1.ConvertToHex;

    invece che così:

    color1.ConvertToHex();

    ma si può?
    Grazie lo stesso.

    Andrea
    Don't know what I want, but I know how to get it...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.