ButtonListener 按钮事件监听器提供了按钮基础功能,它可以添加到任何一个节点上,所以它可以让一段文字或者一个精灵变成按钮。
例如,下面的代码创建了一个点击后退出游戏的按钮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   | 
  auto callback = [](ButtonEvent evt) {     if (evt == ButtonEvent::Clicked)     {                  Game::quit();     } };
 
  auto lis = gcnew ButtonListener(callback); sprite->addListener(lis);
 
  lis->ignoreGamePaused();
 
  | 
 
ButtonEvent 是按钮相关事件,它的定义如下
1 2 3 4 5 6 7 8
   |  enum class ButtonEvent { 	MouseEntered,   	MouseExited,    	Pressed,        	Clicked,        };
 
  | 
 
开关按钮
开关按钮用来实现有 “开” 和 “关” 两种状态的按钮,例如背景音乐的开关等,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();
 
  |