2014-06-24 48 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!') 
    } 
} 
相關問題