原 ToggleButton
类已弃用,下面介绍开关按钮功能的实现方法。
开关按钮用来实现有 “开” 和 “关” 两种状态的按钮,例如背景音乐的开关等,ToggleButtonListener
开关按钮事件监听器提供了开关按钮功能,它可以添加到任何一个节点上。
例如,下面的代码创建了一个可以控制音乐的播放与停止的按钮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
auto callback = [](ButtonEvent evt, bool state) { if (evt == ButtonEvent::Clicked) { if (state) { MusicPlayer::resume("music.wav"); } else { MusicPlayer::pause("music.wav"); } } };
auto lis = gcnew ToggleButtonListener(true , callback); sprite->addListener(lis);
lis->ignoreGamePaused();
|
下面的代码创建了一个可以控制音乐的播放与停止的按钮
1 2 3 4 5 6 7 8 9 10 11 12
| auto btnTextOn = gcnew Text("开"); auto btnTextOff = gcnew Text("关"); auto button = gcnew ToggleButton(btnTextOn, btnTextOff);
button->setClickFunc([=]() { if (button->getState()) { MusicPlayer::resume("music.wav"); } else { MusicPlayer::pause("music.wav"); } });
|
使用ToggleButton::setState
函数可以切换开关的 “开” 和 “关” 状态。
1 2
| button->setState(false);
|
使用ToggleButton::getState
函数可以获取开关的 “开” 和 “关” 状态。
1
| bool state = button->getState();
|