| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 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;
- }
- }
- });
|