Donnez vie à vos documents numériques !
 

Couleurs personnalisées dans un bouton cliquable

abracadabraPDF Forums PDF – Général Couleurs personnalisées dans un bouton cliquable

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45608
    Artistyck
    Membre

    Bonjour,

    Tout d’abord je tiens à vous remercier pour vos posts et réponses qui m’aident au quotidien dans les formulaires  :extra: vous êtes au top !

    Sans transition aucune
    J’ai un javascript qui me permet de changer la couleur d’un même bouton, à chaque click. Je suis sur 4 couleurs : transparent > vert > orange > gris > transparent…

    Le script de base, que j’ai récupéré, est celui-ci…
    function switchColor(f){

    var f = this.getField(event.target.name);

    if (color.equal(f.fillColor, color.transparent))
            {f.fillColor = color.green;}
    else
    if (color.equal(f.fillColor, color.green))
            {f.fillColor = [“RGB”,1,0.6,0] ; orange = “1”;}
    else
    if (orange == “1”)
            {f.fillColor = color.gray ; orange = “0”;}
    else
    if (color.equal(f.fillColor, color.gray))
            {f.fillColor = color.transparent;}

    }

    … et  je dois adapter à mon besoin
    J’ai testé plusieurs options, sans succès, pour personnaliser les couleurs (qui ont un rendu trop criard et hétéroclite).
    J’ai tenté du {f.fillColor = [“RGB”,0.60,0.80,0.19] color.yellowgreen;} et du {f.fillColor = [“RGB”,0.60,0.80,0.19];} et du {f.fillColor = color.yellowgreen;} et que j’ai adapté à mes nouvelles couleurs, sur toutes les lignes concernées, mais sans succès, même minime !

    Comme de bien entendu, je ne pige pas grand chose au Javascript. D’ailleurs je cherche à me former au Javascript pour les formulaires PDF, à bon entendeur ^^
    Est-il possible de m’expliquer le script récupéré avec ses boucles, même si j’en devine bien les grandes lignes, et me dire comment je dois intégrer mes nouvelles couleurs, puisque mes tests ne fonctionnent pas.

    Je voudrai remplacer les couleurs, comme suit :
    green                                => yellowgreen [“RGB”,0.60,0.80,0.19]
    orange [“RGB”,1,0.6,0]      => marron [“RGB”,0.69,0.18,0.37]
    gray                                  => lightgray [“RGB”,0.82,0.82,0.82]

    Vous avez un fichier d’exemple joint.

    Merci d’avance de m’avoir lu et pour vos futures réponses !

    Bonne journée à tous :)

    Aline

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #62350
    bebarth
    Maître des clés

    bonjour,
    je n’ai pas beaucoup de temps à l’instant, mais voici une piste.
    si tu mets une couleur de champ en RGB,0.60,0.80,0.19 par exemple et que tu la relis pour la comparer, le résultat est :
    RGB,0.600006103515625,0.8000030517578125,0.19000244140625
    …les 2 couleurs n’ont donc pas les même valeurs.
    Il vaudrait peut-être arrondir les valeurs lues pour la comparaison.
    @+
    :bonjour:

    #62351
    Artistyck
    Membre

    Bonjour babarth,

    Merci pour ton retour rapide.

    Effectivement mes références RGB étaient trop longues.
    Il n’est accepté qu’un code court avec 1 décimale par canal, donc 0.0.

    Entre temps on m’a demandé de retirer une couleur de la boucle.
    J’ai réussi comme une grande !

    Merci à toi !  :extra: :bravo: :soleil:

    #62352
    bebarth
    Maître des clés

    bonjour,
    Je ne confirme pas qu’il ne faut qu’une décimale, car dans l’api reference il y a un exemple avec 2 décimales et je n’ai rien trouvé à ce sujet.
    Voici un code que tu aurais pu mettre en script d’action :

    Code:
    var f = this.getField(event.target.name);
    if (color.equal(f.fillColor, color.transparent)) {
    var colour=””;
    f.fillColor = [“RGB”,0.60,0.80,0.19];
    var colour=”vert”;
    } else {
    if (colour==”vert”) {
    f.fillColor = [“RGB”,0.69,0.18,0.37];
    var colour=”marron”;
    } else {
    if (colour==”marron”) {
    f.fillColor = [“RGB”,0.82,0.82,0.82];
    var colour=”gris”;
    } else {
    if (colour==”gris”) {
    f.fillColor = color.transparent;
    }
    }
    }
    }

    Vu que les couleurs tournent en boucles, il n’y a pas de raison d’analyser la couleur du champ. Une variable indique où on en est !!!
    Lorsqu’il y a plein de conditions (if) imbriquées, il vaut mieux essayer de les écrire correctement à l’aide d’un éditeur de codes, sinon on est vite perdu.
    @+
    :bonjour:

    #62353
    Artistyck
    Membre

    Bonjour Bebarth,

    Merci pour ton aide !
    Tout fonctionne nickel.

    Je te remercie vraiment pour ton aide !

    A une prochaine :)

    Aline

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.