[FIXED] Verbundfunktion während des Kontrollkästchens des Unverteidigers – Skript CS6 64 Bit Photoshop – Fehler

Ausgabe

Geben Sie hier die Bildbeschreibung ein

Ich habe Funktionalität, wenn Sie das Kontrollkästchen “Gleiche Höhe und Breite” aktiviert haben, um Werte von Höhe zu Breite und umgekehrt zu var constrainsProportionsbewältigen , wenn Sie einen Wert übergeben. Dies wird in bzw. aufgerufen . Und es funktioniert .

Auch wenn Sie das Kontrollkästchen aktivieren, werden die höchsten Werte verwendet und an den zweiten weitergegeben.

Dies wird in Bedingung aufgerufen
Und es funktioniert auch .
Ein Fehler tritt auf, wenn Sie beim Übergeben von Werten
(Sie drücken nicht die Eingabe- oder Bearbeitungstaste) auf das Kontrollkästchen klicken. Es nimmt wieder den höchsten Wert und gibt ihn an den zweiten weiter.
Es sollte nicht funktionieren . Kein Wert sollte geändert werden.
Auch wenn Sie das Kontrollkästchen zum zweiten Mal drücken. Und
grpHeight.numbgrpWidth.numb

grpWidth.numb.onChange = function()grpHeight.numb.onChange = function()

Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein


if (constrainsProportions.value == true)

Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein

edittext

Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein

constrainsProportions.value falsegrpWidth.numb.onChange()sonst grpHeight.numb.onChangein dieser Bedingung sollte nicht aufgerufen werden.

Nicht sicher, wo der Fehler ist.

Code

#target photoshop

var mainWindow = new Window("dialog", "dynamic changing values");

var grpUnitVal = mainWindow.add("group")

var constrainsProportions = grpUnitVal.add("checkbox", undefined, "Same Height and Width");

//Edittext: Height
var grpHeight = mainWindow.add("group")
grpHeight.text = grpHeight.add("statictext", undefined, "Height: ");
grpHeight.numb =  grpHeight.add("edittext", undefined, 0);
grpHeight.numb.characters = 9;

//Edittext: Width
var grpWidth = mainWindow.add("group")
grpWidth.text = grpWidth.add("statictext", undefined, "Width:  ");
grpWidth.numb =  grpWidth.add("edittext", undefined, 0);
grpWidth.numb.characters = 9;

//Edittext: Width; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpWidth.numb.onChange = function() {
    if (constrainsProportions.value == true){
        grpHeight.numb.text = grpWidth.numb.text;}
    }

//Edittext: Height; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpHeight.numb.onChange = function() {
    if (constrainsProportions.value == true){
        grpWidth.numb.text = grpHeight.numb.text;}
    }

constrainsProportions.onClick = function() {

    //Set the same heighest value in Height and Width
    alert(constrainsProportions.value);
    if (constrainsProportions.value == true){
        if (parseInt(grpWidth.numb.text, 10) > parseInt(grpHeight.numb.text, 10)) {
             grpWidth.numb.onChange();} 
        else {
            grpHeight.numb.onChange();}
            }
}


mainWindow.show();

Danke im Voraus.

Lösung

Dies geschieht, weil das onChange()Ereignis gesendet wird, wenn das Steuerelement den Fokus verliert, nicht wenn Sie etwas eingeben, sodass der Code eine frühere Version dessen erhält, was Sie auf dem Bedienfeld sehen. Verwenden Sie onChangingstattdessen:

#target photoshop

var mainWindow = new Window("dialog", "dynamic changing values");

var grpUnitVal = mainWindow.add("group")

var constrainsProportions = grpUnitVal.add("checkbox", undefined, "Same Height and Width");

//Edittext: Height
var grpHeight = mainWindow.add("group")
grpHeight.text = grpHeight.add("statictext", undefined, "Height: ");
grpHeight.numb =  grpHeight.add("edittext", undefined, 0);
grpHeight.numb.characters = 9;

//Edittext: Width
var grpWidth = mainWindow.add("group")
grpWidth.text = grpWidth.add("statictext", undefined, "Width:  ");
grpWidth.numb =  grpWidth.add("edittext", undefined, 0);
grpWidth.numb.characters = 9;

//Edittext: Width; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpWidth.numb.onChanging = function() {
    if (constrainsProportions.value){
        grpHeight.numb.text = this.text;}
    }

//Edittext: Height; if "constrains proportion" is checked, Heigth and Width values are changed in the same time
grpHeight.numb.onChanging = function() {
    if (constrainsProportions.value){
        grpWidth.numb.text = this.text;}
    }

constrainsProportions.onClick = function() {

    //Set the same heighest value in Height and Width
    // alert(constrainsProportions.value);
    if (this.value){
        if (parseInt(grpWidth.numb.text, 10) > parseInt(grpHeight.numb.text, 10)) {
             grpHeight.numb.text = grpWidth.numb.text;} 
        else {
            grpWidth.numb.text = grpHeight.numb.text;}
            }
}


mainWindow.show();


Beantwortet von –
Sergey Kritskiy


Antwort geprüft von –
Marilyn (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like