JSL:スライダーボックス設定値皆さんこんにちは、
スライダーボックスを作成するためのスクリプトインデックスのコードは次のとおりです。
Names Default To Here( 1 );
sliderValue = .6;
New Window( "Example",
Panel Box( "Slider Box",
tb = Text Box( "Value: " || Char( sliderValue ) ),
sb = Slider Box(
0,
1,
sliderValue,
tb << Set Text( "Value: " || Char( sliderValue ) )
)
)
);
この例を実行する場合は、スライダーを右クリックして特定の値を設定できます。

これを0.8に設定したとしましょう。 移動するとスライダーは移動しますが、スライダーに関連付けられているスクリプトは実行されません。 つまり、スライダーの上のテキストボックスは更新されません。
質問1:なぜですか?
質問2:新しい値をテキストボックスに転送する別の方法はありますか? Set Functionメッセージを使用するようにコードを変換しようとしましたが、解決しませんでした。
プラットフォーム(カスタムプロファイラーなど)のスライダーを右クリックして、プラットフォームが正しく応答しているように見える値を設定すると(スライダーと関連するテキスト編集ボックスの両方が期待どおりに移動する)、何らかの方法があることがわかります。 JSLでこれを行うには。 私はそれが何であるかを知らないだけです。
Macで15.2.1Proを実行しています。
マイケル
スクリプティングRe:JSL:スライダーボックス設定値明確な例と質問を提供していただきありがとうございます。 これがJMP15(おそらく以前のバージョン)のバグであることを簡単に確認できました。 スライダーのコールバックは、設定値でトリガーされていません。
また、次のJMP16リリースで修正されたことを確認しました。
JSLでコーディングできるトリッキーな回避策があるかもしれませんが、組み込みプラットフォームで機能していることがわかる場合は、JSLを介して実行されていません。
Re:JSL:スライダーボックス設定値式を値の設定アクションに関連付ける方法がないため、回避策が表示されません。 これは元のスクリプトのバリエーションですが、スライダーを動かすと呼び出されるため、どちらも機能しません。
Names Default To Here( 1 );
sliderValue = .6;
New Window( "Example",
Panel Box( "Slider Box",
tb = Text Box( "Value: " || Char( sliderValue ) ),
Slider Box( 0, 1, sliderValue,
<< Set Function(
Function( { me },
tb << Set Text( "Value: " || Char( me << Get ) )
)
)
)
)
);Re:JSL:スライダーボックス設定値これは、スクリプトがトリガーされないことで特定した根本的な問題に対処していませんが、スライダーの値を設定するために、スクリプトでその値の横に数値編集ボックスを配置することがよくあります。そうすれば、誰かが値を設定したい場合、テキスト編集ボックスをクリックする方が簡単なので、スライダーを右クリックすることはほとんどありません。スライダーが移動したとき、または新しい値が入力されたときに関数を実行しながら、両方を含める1つの方法を次に示します。

Names Default To Here( 1 );
sliderValue = .6;
//Function that is called when either slider is moved or new value is typed in
dothisonchange = Function({val}, tb << Set Text( "Value: " || Char( val) ) );
New Window( "Example",
Panel Box( "Slider Box",
tb = Text Box( "Value: " || Char( sliderValue ) ),
h list box(
sb = Slider Box(
0,
1,
sliderValue,
//Set the number edit box and call the other function
neb << Set( sliderValue );
dothisonchange(sliderValue);
),
neb = Number Edit Box(
sliderValue,
3,
<< Set function( Function( {this},
sliderValue = this << Get;
//Set the slider and call the other function
sb << Set( sliderValue );
dothisonchange(sliderValue);
) )
)
)
)
);Re:JSL:スライダーボックス設定値このアプローチを使用することもできます結合および接続された番号編集ボックスとスライダーボックス