[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Slider SUI | GanzeZahlen | Gleitkommazahlen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Slider SUI | GanzeZahlen | Gleitkommazahlen

ea sy
Beiträge gesamt: 4

11. Mai 2016, 14:48
Beitrag # 1 von 3
Bewertung:
(1336 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich würde gerne einen Slider basteln, der mir die Zahlen im edittext als integer anzeigt.
Ich würde gerne Beispiel02 verwenden, ABER...

Besipiel 01:
textEdit wird mir als integer angezeigt.
Beispiel 02:
Setzte ich den Slider jedoch wie in Beispiel02 um, wird mir das textEdit als "float" in Indesign angezeigt. Ich will aber einen integer :o ?!

Code
//Beispiel01 
var w = new Window ("dialog");
var e = w.add("edittext", undefined, 50);
var slider = w.add ("slider", undefined, 50,0,100);
slider.onChanging = function (){e.text = slider.value;};
w.show();


//Beispiel02
var w = new Window ("dialog");
var value = w.add('edittext{text: 5, characters: 3, justify:"center", active: true}');
var slider = w.add ('slider{minvalue:0, maxvalue:10, value:5}');
slider.onChanging = function(){value.text=slider.value}
value.onChanging = function() {slider.value = Number (value.text)}
w.show();


Ich komme einfach nicht dahiner ^^
Muss ich vielleicht noch einen zusätzlichen Wert/Value in den Slider schreiben, der einen integer aus dem float macht?

(Dieser Beitrag wurde von ea sy am 11. Mai 2016, 14:52 geändert)
X

Slider SUI | GanzeZahlen | Gleitkommazahlen

Peter Kahrel
Beiträge gesamt: 182

11. Mai 2016, 21:16
Beitrag # 2 von 3
Beitrag ID: #549591
Bewertung:
(1251 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
In example 01 it only looks as if the result is shown as an integer because the edittext is too narrow to show the decimals. If you make the edittext control wide enough you'll see it. Add this line after the second line in ex. 01:

e.characters = 10

and you'll see the result. You need to round the slider value, e.g. as follows:

Code
slider.onChanging = function() {value.text = Math.round(slider.value)} 


No need for "value.onChanging = . . .", by the way.

Peter


als Antwort auf: [#549574]

Slider SUI | GanzeZahlen | Gleitkommazahlen

ea sy
Beiträge gesamt: 4

12. Mai 2016, 17:47
Beitrag # 3 von 3
Beitrag ID: #549632
Bewertung:
(1147 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
thanks. your answer is helpful :)

Further helpful comment of my friend:
Deine Verwirrung liegt nicht direkt an etwas in deinem Code, sondern an Javascript/der doofen ExtendScript Implementation an sich. In Javascript sind ALLE Zahlen Gleitkommazahlen. Der Grund warum du unterschiedliche Werte bei den zwei Beispielen beobachtest ist das du für diese unterschiedliche Ranges festgelegt hast (der eine geht von 0 bis 100 und der andere von 0 bis 10) und das Textfeld für unterschiedliche Bereiche unterschiedliche Standardanzeigemodi bereitstellt.
Bei gleichen Werten solltest du das gleiche Ergebnis erhalten. Wenn du auch kleinere Ranges als "integer" angezeigt haben möchtest runde den Wert einfach mittels Math.round(value).


als Antwort auf: [#549591]