我有老式的编程背景,但对 Ruby 很陌生:对于 Hangman 游戏,我通过 FXDataTarget 连接了 A..Z 按钮(设置为 -1,这样第一个按钮就不会自动选择)。在播放过程中,当每个按钮被按下时,它就会被禁用。为了初始化一个新游戏,我重新启用了每个按钮。一切都很好,只是上一个游戏的最后一个按钮被突出显示,因此不可用(直到按下不同的按钮)。我显然希望所有按钮都设置为加载时。
我尝试过更改属性(buttonStyle 和 State);我试过killFocus;我什至尝试过重新创建 FXDataTarget。这些都没有任何效果。
@letterSel =FXDataTarget.new(-1)
letterBtns = {}
("A".."Z").each_with_index do |ltr, x|
letterBtns[x] = FXButton.new(matrix, ltr, opts:FRAME_RAISED, target:@letterSel, selector:FXDataTarget::ID_OPTION+(x))
end
@letterSel.connect(SEL_COMMAND) do |sender, sel, data|
ltr = letterBtns[data].text
letterBtns[data].disable
end
newGameBtn.connect(SEL_COMMAND) do |sender, sel, data|
matrix.each_child do |btn|
btn.enable
# And here is where I try manipulating the button's appearance/functionality
end
end