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 回答