cc.Class({ extends: cc.BaseClass, properties: { m_GenderToggleContainer: cc.ToggleContainer, // 性别切换容器 //缓存节点引用 m_toggleNodes: [], // 缓存 Toggle 节点引用 m_genderIndex: null, // 缓存当前选中的性别索引 }, onLoad: function () { this.m_toggleNodes = []; for (var i = 0; i < 2; i++) { var toggleNode = this.$(`layout/${i}`)//获取两个节点 if (toggleNode) { this.m_toggleNodes.push(toggleNode);//将节点添加到数组中 toggleNode.on('toggle', this.onTogClicked, this);//为节点添加点击事件监听 } } }, start: function () { try { if (window.g_GlobalUserInfo) { var UserData = window.g_GlobalUserInfo.m_GlobalUserData if (UserData && UserData.cbGender != null) { // cbGender == 1 表示男性,cbGender == 0 表示女性 this.m_genderIndex = UserData.cbGender // 同时保存到设置中,下次直接使用 if (window.SaveSetting && window.SetKey_Gender) { window.SaveSetting(window.SetKey_Gender, this.m_genderIndex); // console.log("保存性别设置到本地:", this.m_genderIndex); } } } } catch (error) { console.error("获取用户性别信息失败:", error); this.m_genderIndex = 1; // 默认男性 } //设置toggle状态 var toggleComponent = this.m_toggleNodes[this.m_genderIndex].getComponent(cc.Toggle); toggleComponent.isChecked = true; // console.log("初始化时toggle选中状态:", (this.m_genderIndex == 1 ? "男" : "女")); }, onTogClicked: function (tog) { // console.log("点击了性别切换按钮:", `将先的性别${this.m_genderIndex}切换为${tog.node.name}`); var newGenderIndex = parseInt(tog.node.name); //更新本地缓存 this.m_genderIndex = newGenderIndex; // 同时保存到设置中,下次直接使用 if (window.SaveSetting && window.SetKey_Gender) { window.SaveSetting(window.SetKey_Gender, this.m_genderIndex); // console.log("保存性别设置到本地:", this.m_genderIndex); } // 发送网络请求修改性别(真正同步到服务器) var pGlobalUserData = window.g_GlobalUserInfo.GetGlobalUserData(); var webUrl = window.PHP_HOME + '/UserFunc.php?&GetMark=6&dwUserID=' + pGlobalUserData.dwUserID; webUrl += "&Sex=" + newGenderIndex; WebCenter.GetData(webUrl, null, function (data) { // 网络请求成功后更新本地数据 pGlobalUserData.cbGender = newGenderIndex; //toggle状态确保UI同步 this.UpdateToggleState(newGenderIndex); // console.log('性别修改成功并同步到服务器'); // 可以在这里添加成功提示 if (window.g_CurScene && window.g_CurScene.ShowTips) { window.g_CurScene.ShowTips('性别修改成功'); } }.bind(this)); }, //更新toggle状态 UpdateToggleState: function (newGenderIndex) { switch (newGenderIndex) { case 0: this.m_toggleNodes[0].getComponent(cc.Toggle).isChecked = true; // console.log("点击女时toggle选中状态:", (this.m_genderIndex == 1 ? "男" : "女")); break; case 1: this.m_toggleNodes[1].getComponent(cc.Toggle).isChecked = true; // console.log("点击男时toggle选中状态:", (this.m_genderIndex == 1 ? "男" : "女")); break; } } });