game_font.ts 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. import { _decorator, assetManager, Component, ImageAsset, instantiate, Layout, Node, Prefab, Sprite, SpriteFrame, Texture2D } from 'cc';
  2. import { font_item } from './font_item';
  3. import { http } from './http';
  4. import { level_list } from './level_list';
  5. import { page } from './page';
  6. const { ccclass, property } = _decorator;
  7. @ccclass('game_font')
  8. export class game_font extends page {
  9. @property(level_list) level_list;
  10. @property(Node) btn_cancel;
  11. @property(Node) btn_save;
  12. @property(Node) btn_select_level;
  13. @property(Node) grid_list;
  14. @property(Node) insert_spr;
  15. @property(Prefab) item_prefab;
  16. @property(SpriteFrame) sf_1;
  17. @property(SpriteFrame) sf_2;
  18. private m_cur_edit_data:any = null;
  19. private category_id:number = 2;
  20. private item_list:any[];
  21. private count:number = 0;
  22. /*protected start(): void {
  23. this.btn_back.on(Node.EventType.TOUCH_END,()=>{
  24. this.node.active = false;
  25. this.level_list.active = true;
  26. this.game_edit_list.active = true;
  27. },this.btn_back);
  28. this.btn_level_select.on(Node.EventType.TOUCH_END,()=>{
  29. this.level_list.active = true;
  30. },this.btn_level_select);
  31. this.btn_level_select.on(Node.EventType.TOUCH_END,()=>{},this.btn_level_select);
  32. this.btn_save.on(Node.EventType.TOUCH_END,()=>{
  33. this.send_msg_save();
  34. },this.btn_save);
  35. // this.show_level(data_list);
  36. this.send_msg();
  37. }*/
  38. send_msg(){
  39. var formData = new FormData();
  40. formData.append("category_id", this.category_id+"");
  41. formData.append("limit", this.limit+"");
  42. formData.append("page", this.page+"");
  43. http.post("/vary/levels",formData,(err,data)=>{
  44. if(!err){
  45. console.log("send_msg::levels",data);
  46. let temp_list = JSON.parse(data).content;
  47. console.log(temp_list);
  48. if(temp_list.length<=0){
  49. this.page = this.page-1;
  50. this.maxPageNumber = this.page;
  51. }else{
  52. this.item_list = temp_list;
  53. this.level_list.getComponent(level_list).initView(this.item_list);
  54. }
  55. }
  56. });
  57. }
  58. show_level(data){
  59. this.grid_list.getComponent(Layout).constraintNum = data.col;
  60. this.count = 0;
  61. this.m_cur_edit_data = data;
  62. this.grid_list.removeAllChildren()
  63. assetManager.loadRemote<ImageAsset>(data.default_img, (err, imageAsset) => {
  64. if (!err && imageAsset) {
  65. const texture = new Texture2D();
  66. texture.image = imageAsset;
  67. let spFrame = new SpriteFrame();
  68. spFrame.texture = texture;
  69. this.sf_1 = spFrame;
  70. this.count+=1;
  71. this.showView();
  72. }
  73. });
  74. assetManager.loadRemote<ImageAsset>(data.find_img, (err, imageAsset) => {
  75. if (!err && imageAsset) {
  76. const texture = new Texture2D();
  77. texture.image = imageAsset;
  78. let spFrame = new SpriteFrame();
  79. spFrame.texture = texture;
  80. this.sf_2 = spFrame;
  81. this.count+=1;
  82. this.showView();
  83. }
  84. });
  85. }
  86. showView(){
  87. if(this.count>=2){
  88. this.count = 0;
  89. // var data_list = {row:11,col:11,default_img:"",find_img:"",name:"第一关",id:1}
  90. if(this.m_cur_edit_data.content===""){
  91. this.m_cur_edit_data.is_edit = 0;
  92. }
  93. let list:any[] =this.m_cur_edit_data.is_edit==0?[]:JSON.parse(this.m_cur_edit_data.content);
  94. this.insert_spr.getComponent(Sprite).spriteFrame = this.sf_2;
  95. for (let index = 0; index <this.m_cur_edit_data.col*this.m_cur_edit_data.row; index++) {
  96. let col = index%this.m_cur_edit_data.col;
  97. let row = Math.floor(index/this.m_cur_edit_data.col);
  98. let item = instantiate(this.item_prefab);
  99. let isSelect = false;
  100. for (let index = 0; index < list.length; index++) {
  101. const element = list[index];
  102. let __row = element.row;
  103. let __col = element.col;
  104. if(row==__row&&col==__col){
  105. isSelect = true;
  106. break;
  107. }
  108. }
  109. item.getComponent(font_item).initView(this.sf_1,this.sf_2,row,col,isSelect);
  110. item.parent = this.grid_list;
  111. }
  112. }
  113. }
  114. public getCurPage(){
  115. return this.page;
  116. }
  117. /*public upper(){
  118. if(this.page>1){
  119. this.page-=1;
  120. this.send_msg();
  121. }
  122. }
  123. public next(){
  124. if(this.page<this.maxPageNumber){
  125. this.page+=1;
  126. this.send_msg();
  127. }
  128. }*/
  129. send_msg_save(){
  130. if(this.m_cur_edit_data==null){
  131. return;
  132. }
  133. let data = [];
  134. let _index = 0;
  135. for (let index = 0; index < this.grid_list.children.length; index++) {
  136. const element:Node = this.grid_list.children[index];
  137. if(element.getComponent(font_item).IsSelect()==true){
  138. let obj = {"row":element.getComponent(font_item).getRow(),"col":element.getComponent(font_item).getCol()};
  139. data[_index] = obj;
  140. _index++;
  141. }
  142. }
  143. let content = JSON.stringify(data);
  144. var formData = new FormData();
  145. formData.append("id", this.m_cur_edit_data.id+"");
  146. formData.append("content", content);
  147. console.log("content",content);
  148. this.m_cur_edit_data.content = content;
  149. this.m_cur_edit_data.is_edit = 1;
  150. http.post("/vary/save",formData,(err,data)=>{
  151. if(!err){
  152. console.log("send_msg_save::",data);
  153. }
  154. });
  155. this.updateInfoById(this.m_cur_edit_data.id,this.m_cur_edit_data);
  156. }
  157. updateInfoById(id:string,data:any){
  158. this.level_list.getComponent(level_list).updateUI(id,data);
  159. for (let index = 0; index < this.item_list.length; index++) {
  160. const element = this.item_list[index];
  161. if(element.id==id){
  162. this.item_list[index] = data;
  163. break;
  164. }
  165. }
  166. }
  167. public toPage(page:number){
  168. var formData = new FormData();
  169. formData.append("category_id", this.category_id+"");
  170. formData.append("limit", this.limit+"");
  171. formData.append("page", page+"");
  172. http.post("/vary/levels",formData,(err,data)=>{
  173. if(!err){
  174. console.log("send_msg::",data);
  175. let temp_list = JSON.parse(data).content;
  176. if(temp_list.length<=0){
  177. }else{
  178. this.item_list = temp_list;
  179. this.page = page
  180. this.level_list.getComponent(level_list).initView(this.item_list);
  181. }
  182. if(this.on_page_change != null) this.on_page_change(this.page);
  183. }
  184. });
  185. }
  186. }