2014-06-24 2 views
1

컨트롤러 수가 많은 dat.gui 인스턴스가 있습니다. 내가 gui.__controllers 그들과 함께 목록을 얻을 수 있지만 그들의 유형 (드롭 다운, 슬라이더, 색상 선택기 등)을 보여주는 모든 속성을 볼 수 없습니다.dat.gui 컨트롤러 유형을 얻는 방법?

개체를 통해 어쩌면 유형을 얻을 수있는 방법이 있습니까?

답변

1

맞아요, 컨트롤러 유형을 나타내는 유형 속성이없는 것 같습니다. 그러나 dat.GUI 속성 객체에서 유형을 정의 할 때 유형이 무엇인지 (예 : 부울 값은 체크 박스 등) 분명히 이미 알고 있습니다. codepen 다음에서 볼 수 있듯이

당신은 비록 컨트롤러의 유형을 판별 할 수 있습니다 : 그들은 화면에 나타나는

http://codepen.io/BenSmith/pen/rHpzC

컨트롤러 유형 목록에 대한 디버그 콘솔을 참조하십시오.

유형을 판별하는 코드의 핵심 부분이다

for (var i in gui.__controllers) { 

var controller = gui.__controllers[i]; 

switch(controller.__li.className){ 
    case 'cr string': 
    if (controller.__select != null) { 
     console.log('dropdown'); 
    } 
    else { 
     console.log('input'); 
    } 
    break; 
    case 'cr number has-slider': 
    console.log('slider'); 
    break; 
    case 'cr boolean': 
    console.log('checkbox'); 
    break; 
    case 'cr object color': 
    console.log('color picker'); 
    break; 
    default: 
    console.log('Unrecognized controller!') 
    } 
}