Notifications
Clear all

[Closed] Slider on change Event + Math + Logical Question

I am using a slider where I set the range on the fly (through a variable)

myLayers = #(1,2,3,4,5,6,.....n) -- (This is calculated when the script runs)
mySlider.range = [0, myLayers.Count*5, 0]
mySlider.ticks = 5

Now lets say myLayers.count = 6. In this case the range will be 6*5 = 30… And with Ticks = 5 it will take 6 ticks to reach the range which is equal to myLayers.count.

In the “on Slider Changed Val” event I want play with each myLayers element visibility… So when the value of spinner is between 0-5 I want to increase the visibility of 1st element of myLayers from 0 to 100… when the value of spinner is betweek 5-10 I want to increase the visibility of Second element from 0 to 100… and so on.

This is what I cant quite put down correctly… any help will probably save me tons of hours. thanks

3 Replies

Here is a quick example:


try (destroyDialog rollname) catch ()
rollout rollname "rollout"
(	
	spinner spNumLayers "num layers:" type:#integer range:[1,20,6]
	slider slTest "test"
	spinner spCurrentLayer "current layer:" enabled:false type:#integer range:[1,20,1]
	spinner spVis "visibility:" enabled:false range:[0,100,0]

	fn setTickes =
	(
		slTest.ticks = spNumLayers.value
	)
	
	fn getCurrentLayer =
	(
		spCurrentLayer.value = if slTest.value < 100 then
			1 + spNumLayers.value * slTest.value / 100 as integer
		else
			spNumLayers.value
	)
	
	fn getVisibility =
	(
		local part = 100.0 / spNumLayers.value
		spVis.value = if slTest.value < 100 then
			100 * (mod slTest.value part) / part
		else
			100
	)
	
	fn updateUI =
	(
		getCurrentLayer()
		getVisibility()
	)

	fn init =
	(
		setTickes()
	)

-- Event Handlers
------------------------------------------
	
	on spNumLayers changed val do setTickes()
	on slTest changed val do updateUI()
	on rollname open do init()

) -- end of rollout

createDialog rollname width:200

thanks man. i think this will work… will get this working and post and update soon…

EDIT: Its Perfect. thankyou…

i have run into a problem… although my script now works but its behaving in a wierd way

The visibility wont update on all objects when I am looking at only a Shaded View in viewport i.e. without wireframes… But if I have wireframe + shaded it works fine…

How can I fix that?