2012-02-23 3 views
0

I는 simpleObject는 스크립트가 플러그 I는 파라미터 블록과 연관된 롤아웃 정의MAXscript가 : 롤아웃 다른 그룹 안에 나중에 정의 (플러그인 스크립팅)되는 UI 컨트롤에 액세스하기

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가 정의되지 않는다는 예외를 throw합니다.

mainParamsRollout.controls [5]에도 불구하고 ddl2에 액세스하는 것이 가능하다는 것을 알고 있지만 더 좋은 방법이 있는지 궁금합니다. 나는 같은 스크립트 플러그인의 상단에 로컬 변수를 정의하는 시도 :

local ddl2 

어디서나 사용할 수 있도록하지만,이 중 하나가 작동하지 않는 것 같습니다. 어떤 아이디어? 감사

답변

1

ddl2ddl1의 이벤트 핸들러를 호출하기 전에 를 선언해야합니다.

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

그건 속임수 였어! – younesouhbi

0

을 또는 당신이 컨트롤을 호출 할 경우 다음 그것은 중요하지 않습니다

mainParamsRollout.ddl.enabled = false 

처럼 제어하기 전에 롤아웃을 추가 : 당신은 같은 코드를 주문할 수 있습니다.

-Johan