我具体代码是这样的 关键看红色字体
bool SoundSetScene::init()
{
Layer* uiLayer = Layer::create();
GUIReader* guireader = cocostudio::GUIReader::getInstance();
Widget* widget = guireader->widgetFromJsonFile(“SoundSet/SoundSet_1.json”);
Layout* uiLayout =(Layout*)widget;
uiLayer->addChild(uiLayout);
this->addChild(uiLayer);
Button* back_button = dynamic_cast <Button *>(uiLayout->getChildByName( "Button_back"));
back_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::menuCloseCallback_back));
//初始化声音设置按钮位置
bool b_PlayMusic=UserDefault::getInstance()->getBoolForKey("playMusic");
Button* music_button = dynamic_cast <Button*>(uiLayout->getChildByName("Button_music"));
music_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::musicSetting));
if(!b_PlayMusic)
{
music_button->setPosition(Point(music_button->getPositionX()-209,music_button->getPositionY()));//这边调试的时候确实进到了这里,但button的位置没变,没有左移209 log("%lf",music_button->getPositionX());
log("%lf",music_button->getPositionY());
log("off");
}else{
music_button->setPosition(Point(music_button->getPositionX(),music_button->getPositionY()));
log("%lf",music_button->getPositionX());
log("%lf",music_button->getPositionY());
log("on");
}
Button* sound_button = dynamic_cast <Button *>(uiLayout->getChildByName("Button_effect"));
sound_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::soundeffectSetting));
return true;
}
void SoundSetScene::musicSetting(Object* pSender,EventTouch::EventCode type){
Button* musicButton=static_cast<Button*>(pSender);
bool bPlayMusic=UserDefault::getInstance()->getBoolForKey(“playMusic”);
if (type == EventTouch::EventCode::ENDED) {
if(bPlayMusic)
{
//停止背景音乐
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true);
musicButton->setPosition(Point(musicButton->getPositionX()-209,musicButton->getPositionY()));//这边运行的效果,button确实左移了209 UserDefault::getInstance()->setBoolForKey(“playMusic”,false);
}else
{
//播放背景音乐
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(“bg_music/danlansebodian_BG.mp3”,true);
musicButton->setPosition(Point(musicButton->getPositionX()+209,musicButton->getPositionY()));
UserDefault::getInstance()->setBoolForKey(“playMusic”,true);
}
}
UserDefault::getInstance()->flush();
}