2012-11-15 97 views
3

執行單選按鈕時出現問題。我知道CS2中的單選按鈕可能存在問題,但我不確定我出錯的位置。我懷疑我在錯誤的地方有一個括號或逗號;但看不到它。謝謝。javascript UI中的UI UI單選按鈕

var dlg = 
"dialog {text:'Script Interface',bounds:[100,100,300,260]," + 
"info: Group { orientation: 'column', alignChildren: 'center'," + 
"radiobutton0:RadioButton {bounds:[50,30,150,40] , text:'layerName0', alignment: 'left' }," + 
"radiobutton1:RadioButton {bounds:[50,50,150,90] , text:'layerName1', alignment: 'left' }}" + 
"cancelBTN:Button{bounds:[110,130,190,150] , text:'Cancel' },"+ 
"processBTN:Button{bounds:[10,130,90,150] , text:'Ok' }}"; 
var win = new Window(dlg,"radio buttons"); 
win.radiobutton0.value = true; 
win.center(); 
win.show(); 

另一件事:有沒有寫UI元素,這種格式相當醜陋的更好的方法。

這是裸露的骨骼代碼的作品。 var dialogBox = 「dialog {orientation:'column',alignChildren:'center',\ info:Group {orientation:'column',alignChildren:'center',\ rbtn1:RadioButton {text:'Radio Button 1 ',align:'left'},\ rbtn2:RadioButton {text:'Radio Button 2',align:'left'},},},\ }};

win = new Window (dialogBox); 
win.center(); 
win.show(); 

我想的單選按鈕肘節是由3行註釋出來停止單選按鈕正常工作控制。

回答

3

當我運行代碼時,它在此行上拋出錯誤win.radiobutton0.value = true;對象未定義。這是因爲您使用對話框構造按鈕的方式是窗口內的info組的一部分。該行應爲

win.info.radiobutton0.value = true; 

這應該在開始時切換radiobutton0。

如果不需要,您不必使用資源字符串來製作對話框。

var w = new Window ("dialog"); 
w.alignChildren = "left"; 
var radio1 = w.add ("radiobutton", undefined, "Radio Button 1"); 
var radio2 = w.add ("radiobutton", undefined, "Radio Button 2"); 
radio1.value = true; 
w.show(); 

This is the most thorough reference on ScriptUI that I've found.

+0

您提供的腳本不會切換單選按鈕;這正是我所希望的。 –

+0

我在問題中沒有看到。切換的意思是什麼?單選按鈕的默認行爲(選擇一個切換所有其他按鈕)應自動應用於同一分組內的所有按鈕。你有沒有別的想法? – pdizz

+0

對不起,我認爲這很明顯。我爲最初的問題添加了另一個代碼示例。 –

0

這裏的一個更好的添加劑版本:各個元件可以通過創建到窗口對象的引用(或到pallate或面板),並使用.add()

例如被添加帶有單選按鈕的對話框按我希望的方式工作。

var w = new Window ("dialog"); 
w.alignChildren = "left"; 
var myButtonGroup = w.add ("group"); 
myButtonGroup.orientation = "column"; 
myButtonGroup.alignment = "left"; 
var radio1 = myButtonGroup.add ("radiobutton", undefined, "Radio Button 1"); 
var radio2 = myButtonGroup.add ("radiobutton", undefined, "Radio Button 2"); 
myButtonGroup.add ("button", undefined, "OK"); 
myButtonGroup.add ("button", undefined, "Cancel"); 
radio1.value = true; 
w.center(); 
// w.show(); 

if (w.show() == 1) 
{ 
    alert("You picked " + youSelected(myButtonGroup)) 
} 

function youSelected(rButtons) 
{ 
    if (radio1.value == true) 
    // radio1 selected 
    return radio1.text 
    else 
    // radio2 selected 
    return radio2.text 
}