需求:

勾上界面上多选框筛选出符合的道具

思路:

1. 使用组合数字让一个数字包含多这个搜索条件,比如2代表搜索衣服和武器, 数字按照2的n次幂的值递增,通过|,&,^运算符实现一个数字包含多个条件的情况

运算符的介绍: http://www.cnblogs.com/plateFace/p/4192351.html.

 

2. 拼接一长串字符代表搜索条件比如”武器_衣服_裤子", 通过_分割字符串知道这次搜索 武器, 衣服,裤子三样东西.

代码采用的是第一个思路

效果图

搜索代码:

  1. public class AuctionHouseManager
  2. {
  3. //其他省略...
  4.  
  5. //搜索代码
  6. public List<AuctionItem> SearchAuction(ulong condition)
  7. {
  8. List<AuctionItem> newItemList = new List<AuctionItem>();
  9.  
  10. if (condition == 0)
  11. {
  12. foreach (var item in m_autionItemList)
  13. {
  14. newItemList.Add(item);
  15. }
  16. return newItemList;
  17. }
  18.  
  19. AuctionItem auctionItem = null;
  20. int level = 0;
  21. bool isRowCondition = false;
  22. bool isComparison = false;
  23.  
  24. for (int i = 0; i < m_autionItemList.Count; i++)
  25. {
  26. auctionItem = m_autionItemList[i];
  27.  
  28. if ((condition & AuctionSearchOption.AttentionAll) > 0)
  29. {
  30. if (!m_autionItemList[i].IsAttention)
  31. continue;
  32. }
  33.  
  34. #region 等级
  35. isRowCondition = false;
  36. isComparison = false;
  37. level = auctionItem.Item.Cfg.requiredLevel;
  38. if ((condition & AuctionSearchOption.LvAll) > 0)
  39. {
  40.  
  41. if (level != 30
  42. && level != 60
  43. && level != 90
  44. && level != 120
  45. && level != 150
  46. && level != 180)
  47. {
  48. continue;
  49. }
  50. }
  51. else
  52. {
  53. if ((condition & AuctionSearchOption.Lv30) > 0 && !isRowCondition)
  54. {
  55. isRowCondition = level == 30;
  56. isComparison = true;
  57. }
  58. if ((condition & AuctionSearchOption.Lv60) > 0 && !isRowCondition)
  59. {
  60. isRowCondition = level == 60;
  61. isComparison = true;
  62. }
  63. if ((condition & AuctionSearchOption.Lv90) > 0 && !isRowCondition)
  64. {
  65. isRowCondition = level == 90;
  66. isComparison = true;
  67. }
  68. if ((condition & AuctionSearchOption.Lv120) > 0 && !isRowCondition)
  69. {
  70. isRowCondition = level == 120;
  71. isComparison = true;
  72. }
  73. if ((condition & AuctionSearchOption.Lv150) > 0 && !isRowCondition)
  74. {
  75. isRowCondition = level == 150;
  76. isComparison = true;
  77. }
  78. if ((condition & AuctionSearchOption.Lv180) > 0 && !isRowCondition)
  79. {
  80. isRowCondition = level == 180;
  81. isComparison = true;
  82. }
  83.  
  84. if (!isRowCondition && isComparison)
  85. continue;
  86.  
  87. }
  88.  
  89. #endregion
  90.  
  91. #region 升星条件
  92. //升星条件判断
  93. isRowCondition = false;
  94. isComparison = false;
  95. if ((condition & AuctionSearchOption.StarLvWhite) > 0 && !isRowCondition)
  96. {
  97. isRowCondition = auctionItem.Item.StarLevel == 0;
  98. isComparison = true;
  99. }
  100.  
  101. if ((condition & AuctionSearchOption.StarLvGreen) > 0 && !isRowCondition)
  102. {
  103. isRowCondition = auctionItem.Item.StarLevel == 1;
  104. isComparison = true;
  105. }
  106.  
  107. if ((condition & AuctionSearchOption.StarLvBlue) > 0 && !isRowCondition)
  108. {
  109. isRowCondition = auctionItem.Item.StarLevel == 2;
  110. isComparison = true;
  111. }
  112.  
  113. if ((condition & AuctionSearchOption.StarLvViolet) > 0 && !isRowCondition)
  114. {
  115. isRowCondition = auctionItem.Item.StarLevel == 3;
  116. isComparison = true;
  117. }
  118.  
  119. if ((condition & AuctionSearchOption.StarLvOrange) > 0 && !isRowCondition)
  120. {
  121. isRowCondition = auctionItem.Item.StarLevel == 4;
  122. isComparison = true;
  123. }
  124.  
  125. if ((condition & AuctionSearchOption.StarLvRed) > 0 && !isRowCondition)
  126. {
  127. isRowCondition = auctionItem.Item.StarLevel == 5;
  128. isComparison = true;
  129. }
  130.  
  131. if (!isRowCondition && isComparison)
  132. continue;
  133.  
  134. #endregion
  135.  
  136. #region 货币
  137. //货币
  138. isRowCondition = false;
  139. isComparison = false;
  140. if ((condition & AuctionSearchOption.MoneyCopper) > 0 && !isRowCondition)
  141. {
  142. isRowCondition = auctionItem.SellType == SellType.Copper;
  143. isComparison = true;
  144. }
  145. if ((condition & AuctionSearchOption.MoneyGold) > 0 && !isRowCondition)
  146. {
  147. isRowCondition = auctionItem.SellType == SellType.Gold;
  148. isComparison = true;
  149. }
  150.  
  151. if (!isRowCondition && isComparison)
  152. continue;
  153. #endregion
  154.  
  155. #region 职业
  156.  
  157. //职业
  158. isRowCondition = false;
  159. isComparison = false;
  160. if ((condition & AuctionSearchOption.JobWarrior) > 0 && !isRowCondition)
  161. {
  162. isRowCondition = auctionItem.Item.ClassType == RoleClass.Null || auctionItem.Item.ClassType == RoleClass.Warrior;
  163. isComparison = true;
  164. }
  165. if ((condition & AuctionSearchOption.JobMaster) > 0 && !isRowCondition)
  166. {
  167. isRowCondition = auctionItem.Item.ClassType == RoleClass.Null || auctionItem.Item.ClassType == RoleClass.Mage;
  168. isComparison = true;
  169. }
  170. if ((condition & AuctionSearchOption.JobPastor) > 0 && !isRowCondition)
  171. {
  172. isRowCondition = auctionItem.Item.ClassType == RoleClass.Null || auctionItem.Item.ClassType == RoleClass.Priest;
  173. isComparison = true;
  174. }
  175.  
  176. if (!isRowCondition && isComparison)
  177. continue;
  178.  
  179. #endregion
  180.  
  181. #region 技能和技能书
  182. //装备&技能书
  183. /*
  184. 道具功能类型:0
  185. 武器:0
  186. 衣服:1
  187. 裤子:2
  188. 鞋子:3
  189. 头盔:4
  190. 项链:5
  191. 戒指:6
  192. 拳套:7
  193. 防御宝物:8
  194. 攻击宝物:9
  195. */
  196.  
  197. isRowCondition = false; //是否符合条件
  198. isComparison = false; //道具已经比较过
  199.  
  200. int classType = auctionItem.Item.Cfg.classType;
  201. int equipType = auctionItem.Item.Cfg.v[0];
  202.  
  203. bool isClassType13 = (classType >= 1 && classType <= 3); //大类型是1-3
  204.  
  205. if ((condition & AuctionSearchOption.EquipAll) > 0)
  206. {
  207. //没有全部判断条件
  208. isComparison = true;
  209. if (isClassType13 && (equipType >= 0 && equipType <= 9))
  210. isRowCondition = true;
  211. }
  212. else
  213. {
  214. if ((condition & AuctionSearchOption.EquipWeapon) > 0 && !isRowCondition)
  215. {
  216. isRowCondition = isClassType13 && equipType == 0;
  217. isComparison = true;
  218. }
  219. if ((condition & AuctionSearchOption.EquipClothing) > 0 && !isRowCondition)
  220. {
  221. isRowCondition = isClassType13 && equipType == 1;
  222. isComparison = true;
  223. }
  224. if ((condition & AuctionSearchOption.EquipPants) > 0 && !isRowCondition)
  225. {
  226. isRowCondition = isClassType13 && equipType == 2;
  227. isComparison = true;
  228. }
  229. if ((condition & AuctionSearchOption.EquipShoes) > 0 && !isRowCondition)
  230. {
  231. isRowCondition = isClassType13 && equipType == 3;
  232. isComparison = true;
  233. }
  234. if ((condition & AuctionSearchOption.EquipHelmet) > 0 && !isRowCondition)
  235. {
  236. isRowCondition = isClassType13 && equipType == 4;
  237. isComparison = true;
  238. }
  239. if ((condition & AuctionSearchOption.EquipNecklace) > 0 && !isRowCondition)
  240. {
  241. isRowCondition = isClassType13 && equipType == 5;
  242. isComparison = true;
  243. }
  244. if ((condition & AuctionSearchOption.EquipRing) > 0 && !isRowCondition)
  245. {
  246. isRowCondition = isClassType13 && equipType == 6;
  247. isComparison = true;
  248. }
  249. if ((condition & AuctionSearchOption.EquipHandguard) > 0 && !isRowCondition)
  250. {
  251. isRowCondition = isClassType13 && equipType == 7;
  252. isComparison = true;
  253. }
  254. if ((condition & AuctionSearchOption.EquipMagicWeapon) > 0 && !isRowCondition)
  255. {
  256. isRowCondition = isClassType13 && (equipType == 8 || equipType == 9);
  257. isComparison = true;
  258. }
  259.  
  260. //if ((condition & AuctionSearchOption.EquipFashionable) > 0 && !isRowCondition)
  261. //{
  262. // isRowCondition = auctionItem.Item.Cfg.v[0] == 8 || auctionItem.Item.Cfg.v[0] == 9;
  263. //}
  264.  
  265. if ((condition & AuctionSearchOption.EquipSkill) > 0 && !isRowCondition)
  266. {
  267. isRowCondition = classType == 5;
  268. isComparison = true;
  269. }
  270. }
  271.  
  272. if (!isRowCondition && isComparison)
  273. continue;
  274.  
  275. #endregion
  276.  
  277. #region 消耗品,技能和技能书是一起的
  278. /*
  279. 装备道具:0
  280. 效果道具:1
  281. 材料道具:2
  282. 任务道具:3
  283. 宝石道具:4
  284. 技能书卷:5
  285. 技能宝物:6
  286. 货币道具:7
  287. 宝箱道具:8
  288. 虚拟货币:999
  289. */
  290.  
  291. if ((condition & AuctionSearchOption.ConsumeDrug) > 0 && !isRowCondition)
  292. {
  293. isRowCondition = auctionItem.Item.Cfg.type == 1 && auctionItem.Item.Cfg.v[0] == 0;
  294. isComparison = true;
  295. }
  296. if ((condition & AuctionSearchOption.ConsumeForgeMaterial) > 0 && !isRowCondition)
  297. {
  298. isRowCondition = auctionItem.Item.Cfg.type == 2 && (auctionItem.Item.Cfg.v[0] >= 1 && auctionItem.Item.Cfg.v[0] <= 6);
  299. isComparison = true;
  300. }
  301. if ((condition & AuctionSearchOption.ConsumeWayMasterial) > 0 && !isRowCondition)
  302. {
  303. isRowCondition = auctionItem.Item.Cfg.type == 2 && auctionItem.Item.Cfg.v[0] == 0;
  304. isComparison = true;
  305. }
  306. if ((condition & AuctionSearchOption.ConsumeGem) > 0 && !isRowCondition)
  307. {
  308. isRowCondition = auctionItem.Item.Cfg.type == 4;
  309. isComparison = true;
  310. }
  311. if ((condition & AuctionSearchOption.ConsumeReputation) > 0 && !isRowCondition)
  312. {
  313. isRowCondition = auctionItem.Item.Cfg.type == 7 && auctionItem.Item.Cfg.v[0] == 53;
  314. isComparison = true;
  315. }
  316. if ((condition & AuctionSearchOption.ConsumeSkillCheats) > 0 && !isRowCondition)
  317. {
  318. isRowCondition = auctionItem.Item.Cfg.type == 6;
  319. isComparison = true;
  320. }
  321.  
  322. if (!isRowCondition && isComparison)
  323. continue;
  324. #endregion
  325.  
  326. newItemList.Add(m_autionItemList[i]);
  327. }
  328.  
  329. return newItemList;
  330. }
  331.  
  332. }
  333.  
  334. public struct AuctionSearchOption
  335. {
  336. public const ulong None = 1;
  337. //关注
  338. public const ulong AttentionAll = 2;
  339. //等级
  340. public const ulong LvAll = 4;
  341. public const ulong Lv30 = 8;
  342. public const ulong Lv60 = 16;
  343. public const ulong Lv90 = 32;
  344. public const ulong Lv120 = 64;
  345. public const ulong Lv150 = 128;
  346. public const ulong Lv180 = 256;
  347. //品质
  348. public const ulong StarLvAll = 512;
  349. public const ulong StarLvWhite = 1024;
  350. public const ulong StarLvGreen = 2048;
  351. public const ulong StarLvBlue = 4096;
  352. public const ulong StarLvViolet = 8192;
  353. public const ulong StarLvOrange = 16384;
  354. public const ulong StarLvRed = 32768;
  355. //货币
  356. public const ulong MoneyAll = 65536;
  357. public const ulong MoneyGold = 131072;
  358. public const ulong MoneyCopper = 262144;
  359. //职业
  360. public const ulong JobAll = 524288;
  361. public const ulong JobWarrior = 1048576;
  362. public const ulong JobMaster = 2097152;
  363. public const ulong JobPastor = 4194304;
  364. //装备和技能书
  365. public const ulong EquipAll = 8388608;
  366. public const ulong EquipWeapon = 16777216;
  367. public const ulong EquipClothing = 33554432;
  368. public const ulong EquipPants = 67108864;
  369. public const ulong EquipShoes = 134217728;
  370. public const ulong EquipHelmet = 268435456;
  371. public const ulong EquipNecklace = 536870912;
  372. public const ulong EquipRing = 1073741824;
  373. public const ulong EquipHandguard = 2147483648;
  374. public const ulong EquipMagicWeapon = 4294967296;
  375. public const ulong EquipFashionable = 8589934592;
  376. public const ulong EquipSkill = 17179869184;
  377. //消耗品
  378. public const ulong ConsumeAll = 34359738368;
  379. public const ulong ConsumeDrug = 68719476736;
  380. public const ulong ConsumeForgeMaterial = 137438953472;
  381. public const ulong ConsumeWayMasterial = 274877906944;
  382. public const ulong ConsumeGem = 549755813888;
  383. public const ulong ConsumeReputation = 1099511627776;
  384. public const ulong ConsumeSkillCheats = 2199023255552;
  385. }

 

 

界面代码:

  1. using UnityEngine;
  2. using System.Collections;
  3. using System;
  4. using System.Collections.Generic;
  5. using UnityEngine.UI;
  6. using AHM = AuctionHouseManager;
  7. using ASO = AuctionSearchOption;
  8.  
  9. public class AdvancedSearch1 : UI_Base
  10. {
  11.  
  12. public event Action CloseUIEvent;
  13. private List<AuctionItem> m_searchItemList;
  14.  
  15. [SerializeField]
  16. private UIButton m_BtnCancel;
  17.  
  18. [SerializeField]
  19. private UIToggle m_AttentionTo;
  20. [SerializeField]
  21. private UIToggle[] m_LvToggleList;
  22. [SerializeField]
  23. private UIToggle[] m_StarToggleList;
  24. [SerializeField]
  25. private UIToggle[] m_MoneyToggleList;
  26. [SerializeField]
  27. private UIToggle[] m_JobToggleList;
  28. [SerializeField]
  29. private UIToggle[] m_EquipToggleList;
  30. [SerializeField]
  31. private UIToggle[] m_ConsumeToggleList;
  32.  
  33. private bool isInit = false;
  34.  
  35. public List<AuctionItem> SearchItemList
  36. {
  37. get { return m_searchItemList; }
  38. set { m_searchItemList = value; }
  39. }
  40.  
  41. public void Awake()
  42. {
  43. //m_ToggleList = GetComponentsInChildren<Toggle>();
  44. m_BtnCancel.onClick.Add(new EventDelegate(Cancel));
  45.  
  46. m_AttentionTo.onChange.Clear();
  47. m_AttentionTo.onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(m_AttentionTo); }));
  48.  
  49. ulong value = 0;
  50. m_AttentionTo.Set((AHM.I.Condition & ASO.AttentionAll) > 0, false);
  51.  
  52. for (int i = 0; i < m_LvToggleList.Length; i++)
  53. {
  54. UIToggle t = m_LvToggleList[i];
  55. m_LvToggleList[i].onChange.Clear();
  56. m_LvToggleList[i].onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(t); }));
  57.  
  58. value = Convert.ToUInt64(m_LvToggleList[i].name);
  59. m_LvToggleList[i].Set((AHM.I.Condition & value) > 0 || ((AHM.I.Condition & ASO.LvAll) > 0 && value != ASO.LvAll), false);
  60. }
  61.  
  62. for (int i = 0; i < m_StarToggleList.Length; i++)
  63. {
  64. UIToggle t = m_StarToggleList[i];
  65. m_StarToggleList[i].onChange.Clear();
  66. m_StarToggleList[i].onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(t); }));
  67.  
  68. value = Convert.ToUInt64(m_StarToggleList[i].name);
  69. m_StarToggleList[i].Set((AHM.I.Condition & value) > 0 || ((AHM.I.Condition & ASO.StarLvAll) > 0 && value != ASO.StarLvAll), false);
  70. }
  71.  
  72. for (int i = 0; i < m_MoneyToggleList.Length; i++)
  73. {
  74. UIToggle t = m_MoneyToggleList[i];
  75. m_MoneyToggleList[i].onChange.Clear();
  76. m_MoneyToggleList[i].onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(t); }));
  77.  
  78. value = Convert.ToUInt64(m_MoneyToggleList[i].name);
  79. m_MoneyToggleList[i].Set((AHM.I.Condition & value) > 0 || ((AHM.I.Condition & ASO.MoneyAll) > 0 && value != ASO.MoneyAll), false);
  80. }
  81.  
  82. for (int i = 0; i < m_JobToggleList.Length; i++)
  83. {
  84. UIToggle t = m_JobToggleList[i];
  85. m_JobToggleList[i].onChange.Clear();
  86. m_JobToggleList[i].onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(t); }));
  87.  
  88. value = Convert.ToUInt64(m_JobToggleList[i].name);
  89. m_JobToggleList[i].Set((AHM.I.Condition & value) > 0 || ((AHM.I.Condition & ASO.JobAll) > 0 && value != ASO.JobAll), false);
  90. }
  91.  
  92. for (int i = 0; i < m_EquipToggleList.Length; i++)
  93. {
  94. UIToggle t = m_EquipToggleList[i];
  95. m_EquipToggleList[i].onChange.Clear();
  96. m_EquipToggleList[i].onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(t); }));
  97.  
  98. value = Convert.ToUInt64(m_EquipToggleList[i].name);
  99. m_EquipToggleList[i].Set((AHM.I.Condition & value) > 0 || ((AHM.I.Condition & ASO.EquipAll) > 0 && value != ASO.EquipAll), false);
  100. }
  101.  
  102. for (int i = 0; i < m_ConsumeToggleList.Length; i++)
  103. {
  104. UIToggle t = m_ConsumeToggleList[i];
  105. m_ConsumeToggleList[i].onChange.Clear();
  106. m_ConsumeToggleList[i].onChange.Add(new EventDelegate(delegate { AdvancedSearch_ChangeValueEvent(t); }));
  107.  
  108. value = Convert.ToUInt64(m_ConsumeToggleList[i].name);
  109. m_ConsumeToggleList[i].Set((AHM.I.Condition & value) > 0 || ((AHM.I.Condition & ASO.ConsumeAll) > 0 && value != ASO.ConsumeAll), false);
  110. }
  111. }
  112.  
  113. public void LateUpdate()
  114. {
  115. if (!isInit)
  116. {
  117. //AHM.I.Condition = 0;
  118. isInit = true;
  119. }
  120. }
  121.  
  122. public void AdvancedSearch_ChangeValueEvent(UIToggle obj)
  123. {
  124. if (!isInit)
  125. return;
  126.  
  127. //Debug.Log(obj.name + " - " + obj.value);
  128. //Debug.Log(isOn + " - " + row.TitleName + " - " + cell.Name + " - " + cell.Value);
  129. ulong value = Convert.ToUInt64(obj.name);
  130.  
  131. if (obj.value)
  132. {
  133. AHM.I.Condition |= value;
  134.  
  135. //如果勾选的是全部,全部勾选剩下的小选项
  136. switch (value)
  137. {
  138. case ASO.LvAll:
  139. for (int i = 1; i < m_LvToggleList.Length; i++)
  140. {
  141. m_LvToggleList[i].value = true;
  142. AHM.I.Condition |= Convert.ToUInt64(m_LvToggleList[i].name);
  143. }
  144. break;
  145. case ASO.StarLvAll:
  146. for (int i = 1; i < m_StarToggleList.Length; i++)
  147. {
  148. m_StarToggleList[i].value = true;
  149. AHM.I.Condition |= Convert.ToUInt64(m_StarToggleList[i].name);
  150. }
  151. break;
  152. case ASO.MoneyAll:
  153. for (int i = 1; i < m_MoneyToggleList.Length; i++)
  154. {
  155. m_MoneyToggleList[i].value = true;
  156. AHM.I.Condition |= Convert.ToUInt64(m_MoneyToggleList[i].name);
  157. }
  158. break;
  159. case ASO.JobAll:
  160. for (int i = 1; i < m_JobToggleList.Length; i++)
  161. {
  162. m_JobToggleList[i].value = true;
  163. AHM.I.Condition |= Convert.ToUInt64(m_JobToggleList[i].name);
  164. }
  165. break;
  166. case ASO.EquipAll:
  167. for (int i = 1; i < m_EquipToggleList.Length; i++)
  168. {
  169. m_EquipToggleList[i].value = true;
  170. AHM.I.Condition |= Convert.ToUInt64(m_EquipToggleList[i].name);
  171. }
  172. break;
  173. case ASO.ConsumeAll:
  174. for (int i = 1; i < m_ConsumeToggleList.Length; i++)
  175. {
  176. m_ConsumeToggleList[i].value = true;
  177. AHM.I.Condition |= Convert.ToUInt64(m_ConsumeToggleList[i].name);
  178. }
  179. break;
  180. }
  181. }
  182. else
  183. {
  184. AHM.I.Condition ^= value;
  185.  
  186. //Debugger.Log("等级值:" + (ASO.LvAll & value));
  187. if (value >= ASO.Lv30 && value <= ASO.Lv180)
  188. {
  189. m_LvToggleList[0].value = false;
  190. if ((AHM.I.Condition & ASO.LvAll) > 0)
  191. AHM.I.Condition ^= ASO.LvAll;
  192. }
  193. else if (value >= ASO.StarLvWhite && value <= ASO.StarLvRed)
  194. {
  195. m_StarToggleList[0].value = false;
  196. if ((AHM.I.Condition & ASO.StarLvAll) > 0)
  197. AHM.I.Condition ^= ASO.StarLvAll;
  198. }
  199. else if (value >= ASO.MoneyGold && value <= ASO.MoneyCopper)
  200. {
  201. m_MoneyToggleList[0].value = false;
  202. if ((AHM.I.Condition & ASO.MoneyAll) > 0)
  203. AHM.I.Condition ^= ASO.MoneyAll;
  204. }
  205. else if (value >= ASO.JobWarrior && value <= ASO.JobPastor)
  206. {
  207. m_JobToggleList[0].value = false;
  208. if ((AHM.I.Condition & ASO.JobAll) > 0)
  209. AHM.I.Condition ^= ASO.JobAll;
  210. }
  211. else if (value >= ASO.EquipWeapon && value <= ASO.EquipSkill)
  212. {
  213. m_EquipToggleList[0].value = false;
  214. if ((AHM.I.Condition & ASO.EquipAll) > 0)
  215. AHM.I.Condition ^= ASO.EquipAll;
  216. }
  217. else if (value >= ASO.ConsumeDrug && value <= ASO.ConsumeSkillCheats)
  218. {
  219. m_ConsumeToggleList[0].value = false;
  220. if ((AHM.I.Condition & ASO.ConsumeAll) > 0)
  221. AHM.I.Condition ^= ASO.ConsumeAll;
  222. }
  223.  
  224. switch (value)
  225. {
  226. case ASO.LvAll:
  227. for (int i = 1; i < m_LvToggleList.Length; i++)
  228. {
  229. m_LvToggleList[i].value = false;
  230. AHM.I.Condition ^= Convert.ToUInt64(m_LvToggleList[i].name);
  231. }
  232. break;
  233. case ASO.StarLvAll:
  234. for (int i = 1; i < m_StarToggleList.Length; i++)
  235. {
  236. m_StarToggleList[i].value = false;
  237. AHM.I.Condition ^= Convert.ToUInt64(m_StarToggleList[i].name);
  238. }
  239. break;
  240. case ASO.MoneyAll:
  241. for (int i = 1; i < m_MoneyToggleList.Length; i++)
  242. {
  243. m_MoneyToggleList[i].value = false;
  244. AHM.I.Condition ^= Convert.ToUInt64(m_MoneyToggleList[i].name);
  245. }
  246. break;
  247. case ASO.JobAll:
  248. for (int i = 1; i < m_JobToggleList.Length; i++)
  249. {
  250. m_JobToggleList[i].value = false;
  251. AHM.I.Condition ^= Convert.ToUInt64(m_JobToggleList[i].name);
  252. }
  253. break;
  254. case ASO.EquipAll:
  255. for (int i = 1; i < m_EquipToggleList.Length; i++)
  256. {
  257. m_EquipToggleList[i].value = false;
  258. AHM.I.Condition ^= Convert.ToUInt64(m_EquipToggleList[i].name);
  259. }
  260. break;
  261. case ASO.ConsumeAll:
  262. for (int i = 1; i < m_ConsumeToggleList.Length; i++)
  263. {
  264. m_ConsumeToggleList[i].value = false;
  265. AHM.I.Condition ^= Convert.ToUInt64(m_ConsumeToggleList[i].name);
  266. }
  267. break;
  268. }
  269. }
  270. }
  271.  
  272. public void Cancel()
  273. {
  274. UIManager.Instance.CloseUI(eUI.AuctionSearch);
  275. }
  276.  
  277. public override void OnClose()
  278. {
  279. SearchItemList = AHM.I.SearchAuction(AHM.I.Condition);
  280.  
  281. if (CloseUIEvent != null)
  282. CloseUIEvent();
  283. }
  284. }

道具搜索框(|=, & , ^=)实现的列子的更多相关文章

  1. HTML5轻松实现搜索框提示文字点击消失---及placeholder颜色的设置

    在做搜索框的时候无意间发现html5的input里有个placeholder属性能轻松实现提示文字点击消失功能,之前还傻傻的在用js来实现类似功能... 示例 <form action=&quo ...

  2. WPF 自定义搜索框

      控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1.先定义一个Rectangle作为背景 2. ...

  3. weui 搜索框

    点击搜索,会显示关键字取消按钮,输入文字,会在搜索框下,有相应的列表显示. HTML: <!DOCTYPE html> <html> <head> <meta ...

  4. 搜索框(Thinkphp5.0)

    1.普通关键词搜索框 模板部分代码: <form name='searchform' action='/index.php/module/controller/search' method='g ...

  5. IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)

    ********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...

  6. 用jsonp实现搜索框功能

    用jsonp实现搜索框功能 前面的话: 在上周本来想发一篇模仿必应搜索的界面.但是在准备写文章之前突然想到前面学习了ajax技术,在这里我也让我的页面有一种不需要手动刷新就能获取到数据.但是发现用前面 ...

  7. 淘宝购物车页面 智能搜索框Ajax异步加载数据

    如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...

  8. jQuery+HTML5弹出创意搜索框层

    效果体验:http://hovertree.com/texiao/jquery/26/ 本效果适用于移动设备,可以使用手机等浏览效果. 代码下载:http://hovertree.com/h/bjaf ...

  9. iOS之搜索框UISearchController的使用(iOS8.0以后替代UISearchBar+display)

    在iOS 8.0以上版本中, 我们可以使用UISearchController来非常方便地在UITableView中添加搜索框. 而在之前版本中, 我们还是必须使用UISearchBar + UISe ...

随机推荐

  1. STL心得

    熟悉c++版算法竞赛程序框架 理解变量引用的原理 熟练掌握string和stringstream 熟练掌握c++结构体的定义和使用,包括构造函数和静态成员变量 了解常见的可重载运算符,包括四则运算,赋 ...

  2. 用户点击行为实时分析系统spark

    系统设计技术有:Hadoop2.xZookeeperFlumeHiveHbaseKafkaSpark2.xSpark StreamingStructured StreamingMySQLHueJava ...

  3. codevs 方格取数

    1043 方格取数 2000年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Descri ...

  4. 设计模式-工厂模式(Factory Pattern)

    本文由@呆代待殆原创,转载请注明出处. 工厂模式遵循的设计原则之一:找出代码中常变化的部分,并把这一部分分离出来.(Dependency Inversion Principle) 工厂模式简述 当我们 ...

  5. POJ 2226 Muddy Fields (二分图匹配)

    [题目链接] http://poj.org/problem?id=2226 [题目大意] 给出一张图,上面有泥和草地,有泥的地方需要用1*k的木板覆盖, 有草地的地方不希望被覆盖,问在此条件下需要的最 ...

  6. 【模拟】洛谷 P1328 NOIP2014提高组 day1 T1 生活大爆炸版石头剪刀布

    把所有情况打表,然后随便暴力. #include<cstdio> using namespace std; int n,an,bn,p1,p2; ],b[]; ][]; int ans1, ...

  7. Idea下Android的配置

    (1) 下载安装好Intellij Idea和Android SDK. (2) Android SDK设置 ,在FIle –> Other Settings –> Default Proj ...

  8. Matlab中向量场的绘制

    % quiver(x,y,u,v) % x,y是包含坐标位置的矩阵,而u和v则是包含偏导数的矩阵. % 例如绘制f(x,y)=y-3x-2x^2-3xy-3y^2的方法: % 先用gradient函数 ...

  9. oracle 11g jdbc jar包在哪个文件目录

    一. 如果装了oracle数据库的话, 大致是这样的目录:    D:\oracle\product\11.2.0\client_1\oui\jlib\classes12.jar 或者    D:\o ...

  10. 一些常用JS 函数总结

    搜索url参数 /** * 搜索url参数 * @param {String} name 参数键名 * @return {String} 对应值 */ function getQueryVariabl ...