ProgressBar UI コントロール

progressBar コントロール は、ロールアウトに進行状況バーを配置するために使用します。

構文は次のようになります。

progressBar <name> [value:<number>] [color:<color>] [orient:<name>]     

progressBar 項目の位置合わせの既定値は、#left です。

パラメータ

value:   

進行状況のパーセント値(0 - 100)の初期値です。既定値は 0 です。この値は整数で指定します。

color:

進行状況バーのカラーです。既定のカラー値は[30,10,190]です。

orient:

進行状況バーを左から右へ表示するか(orient:#horizontal)、下から上へ表示するか(orient:#vertical)を返します。既定値は #horizontal です。

プロパティ

<progressbar>.value Integer

進行状況バーの完了したパーセント値 (0 - 100) です。

<progressbar>.color Color

進行状況バーのカラーです。

<progressbar>.orient Name

進行状況バーの塗り潰しの方向: #horizontal - 左から右。#vertical - 下から上。

例:

    --define a rollout
    rollout progressTest "Progress Test"
    (
    button doit "Process Scene" -- button to start processing
    progressbar doit_prog color:red -- a red progress bar
    on doit pressed do -- when the button is pressed...
    (
    objArray = geometry as array -- get all geometry objects into array
    for i = 1 to objArray.count do -- and iterate through all of them
    (
    -- update the progress bar percentage
    -- for example, if there are 20 geometry objects
    -- and i is currently 1, you have 100.0*1/20 = 5%
    -- when i is 2 you have 100.0*2/20 = 10% etc...
    doit_prog.value = 100.*i/objArray.count
    -- do something with the objects, like printing their names
    print objArray[i].name
    )-- end i loop
    doit_prog.value = 0 -- when ready, reset the progress bar to 0%
    )
    )
    createDialog progressTest 200 60 -- create a dialog to test
注:

.value プロパティには、0 ~ 100 の範囲の整数を指定する必要があります。現在の整数値と整数値の合計からパーセントを計算するときは、値の乗算と除算の順番が重要になります。****

これらの値を最初に割ってから 100.0 を掛けると、常に 0.0 が返されます。整数を整数で割った結果も整数でなければなりませんが、ゼロより小さいため、四捨五入されて計算結果はゼロになります。

1/20*100.0 -> 0*100.0 -> 0.02/20*100.0 -> 0*100.0 -> 0.03/20*100.0 -> 0*100.0 -> 0.0

ただし

100.0*1/20 -> 100.0/20 -> 5.0100.0*2/20 -> 200.0/20 -> 10.0100.0*3/20 -> 300.0/20 -> 15.0

浮動小数点値 100.0 を使用すると、結果は暗黙的に浮動小数点に変換されます。浮動小数点値と整数を掛けた場合は浮動小数点値が返され、浮動小数点値を整数で割った場合も浮動小数値が返されるためです。浮動小数点値は、.value プロパティに割り当てると、内部的に整数に変換されます。

イベント

on <progressbar> clicked <arg> do <expr>

ユーザが進行状況バーをクリックすると呼び出されます。<arg> 引数には、クリックされた位置のパーセント値が含まれます。

このイベント ハンドラにより、進行状況バーがインタラクティブな UI コントロールになります。スライダの代わりとしての進行状況バーの使用例については、チュートリアル - フローティング コントロールによるモーファー モディファイヤの拡張を参照してください。

on <progressbar> rightClick do <expr>

ユーザが 進行状況バー コントロールを右クリックしたときに呼び出されます。

3ds Max 2010以降で使用可能です。