0

パラメータブロックとそれに関連するロールアウトを定義するsimpleObjectスクリプトプラグインがあります。

rollout mainParamsRollout "Main Properties"
(
    group "Group1"
    (
        dropdownlist ddl1 "ddl1" items:#("A", "B") height:4
        on ddl1  selected i do
        (
            ddl2.enabled = false    
        )
    )

    group "Group2"
    (
        dropdownlist ddl2 "ddl2" items:#("C", "D") height:4
    )   
)

ddl1で特定の選択が行われた後にddl2を無効にしようとすると、maxscriptはddl2が未定義であることを示す例外をスローします。

mainParamsRollout.controls [5]を介してddl2にアクセスできることは知っていますが、もっと良い方法があるかどうか疑問に思っています。スクリプトプラグインの上部にあるローカル変数を次のように定義してみました。

local ddl2

どこでも利用できるようにしますが、これもうまくいかないようです。何か案は?ありがとう

4

2 に答える 2

1

ddl2のイベントハンドラで呼び出す前に宣言する必要があります。ddl1次のようにコードを注文できます。

rollout mainParamsRollout "Main Properties"
(
    group "Group1"
    (
        dropdownlist ddl1 "ddl1" items:#("A", "B") height:4 
    )

    group "Group2"
    (
        dropdownlist ddl2 "ddl2" items:#("C", "D") height:4
    )   

    on ddl1 selected i do
    (
        ddl2.enabled = false    
    )
)
于 2012-02-24T05:58:30.703 に答える
0

または、コントロールの前にロールアウトを追加します。

mainParamsRollout.ddl.enabled = false

次に、コントロールをどこで呼び出すかは重要ではありません。

-ヨハン

于 2012-03-06T16:10:18.660 に答える