Maxscript: как получить доступ к элементам управления пользовательского интерфейса, которые будут определены позже внутри других групп в развертывании (подключаемый модуль со сценариями) - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть подключаемый модуль со скриптом 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
    )   
)

Когда я пытаюсь отключить ddl2 после того, как определенный выбор произойдет на ddl1, maxscript выдает исключениеговоря, что ddl2 не определено.

Я знаю, что можно получить доступ к ddl2 через mainParamsRollout.controls [5], но мне интересно, есть ли лучший способ.Я попытался определить локальную переменную в верхней части скриптового плагина следующим образом:

local ddl2

, чтобы сделать его доступным где-либо, но, похоже, это тоже не работает.Есть идеи?Спасибо

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

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    
    )
)
0 голосов
/ 06 марта 2012

Или просто добавьте свиток перед элементом управления, как

mainParamsRollout.ddl.enabled = false

Тогда не имеет значения, где вы вызываете элемент управления.

-Джохан

...