1.ÃüÃû Îļþ¡¢±äÁ¿ÃüÃûʹÓÃСд£¬²¢Ê¹Óá°_¡±·Ö¸î º¯ÊýÃüÃû²ÉÓÃÍÕ·åÐÎʽÃüÃû 2.×é¼þ½çÃæÃüÃû ÔÚ¶¨Òå½çÃæ»ò×é¼þµÄʱºò£¬½¨Òé¸ù¾ÝʹÓÃÀàÐ͵IJ»Í¬£¬·½±ãʹÓÃÊ±Çø·ÖÒÔ¼°Î¬»¤£¬¼ÓÉϲ»Í¬µÄºó׺£¬¹æ·¶ÈçÏÂ: Îı¾¿ò(Label): _lb ¸»Îı¾(RichText): _rt ½Úµã(Node): _nd °´Å¥(Button): _btn ¾«Áé(Sprite): _sp ¸´Ñ¡¿ò(CheckBox): _cb ÊÓͼ(ScrollView): _sv ·­Ò³(PageView): _pv »¬¶¯Ìõ(Slider): _sd ¼ÓÔØÌõ(LoadingBar): _lb Ãæ°å(Layout): _ly ±êÇ©×é(ToggleContainer): _tc ±êÇ©Ïî(Toggle): _tg Àý£º ÔÚʹÓÃÒ»¸öhead_icon£¬ÐèÒªNode½øÐÐλÖÿØÖÆ£¬Í¬Ê±ÓÖÐèÒªSprite½øÐÐÉèÖÃÍ·Ïñ£¬ÃüÃû ÈçÏ£º this.head_icon_nd = this.seekChild("heand_icon"); this.head_icon_sp = this.seekChild("heand_icon", cc.Sprite); 3.JS ¶ÔÏó¹ÜÀí (1) ËùÓÐnew³öÀ´µÄJS¶ÔÏó£¬×îºó±ØÐëͨ¹ýdelete»òÕß½«ÆäÒýÓñäÁ¿ÖÿÕÀ´À´´ï µ½À¬»ø»ØÊÕµÄÄ¿µÄ£» (2) ¼Ì³Ð×ÔbaseviewµÄ¶ÔÏó£¬Ïú»ÙʱҪÏȵ÷ÓÃclose·½·¨£¬ÔÙ½«ÒýÓÃÖÿգ» (3) ¼Ì³Ð×Ôviewclass¡¢basepanelµÄ¶ÔÏó£¬Ïú»ÙʱҪÏȵ÷ÓÃdeleteMe£¬ÔÙ½«ÒýÓà Öÿգ» (4) ͨ¹ý new cc.Node() ´´½¨³öÀ´µÄ½Úµã£¬ÔÚ²»ÓõÄʱºòÒªµ÷ÓÃNodeµÄdestroy ·½·¨Ïú»Ù£¬È»ºóÖÿգ» 4.ÊÓͼÀàʹÓà ËùÓеÄÊÓͼÀà¿ÉÓÉ viewclass¡¢baseview¡¢basepanel¼Ì³Ð¶øÀ´£¬¾ßÌåÇø±ðÈçÏ£º (1) viewclassÊÇËùÓÐÊÓͼÀàµÄ»ùÀ࣬·â×°ÁËʼþ¹ÜÀí¡¢×ÊÔ´¼ÓÔØÊÍ·Å¡¢¼ÆÊ±Æ÷¹Ü Àí¡£baseview¡¢basepanel¾ù¼Ì³ÐÓÚ´Ë£¬Í¬Ê±Ò»Ð©Ð¡µÄitemÒ²¿ÉÒÔÖ±½Ó¼Ì³Ð×Ô viewclass (2) baseviewÊÇËùÓд°¿ÚÀàµÄ»ùÀ࣬ÀïÃæ·â×°Á˲㼶¹ÜÀí¡¢ÊÓͼ»º´æµÈ£» (3) basepanelÊÇÃæ°åÀàµÄ»ùÀ࣬ÀïÃæÊµÏÖÁËÊÓͼµÄÏÔÒþ²Ø£» ×¢Ò⣺ ֮ǰcommon_scrollviewÖеÄitem±ØÐëÒªÇóÊǼ̳Ð×Ôbasepanel£¬×îеİ汾¼æÈÝ Á˼̳Ð×ÔviewclassµÄÊÓͼ£¬Ê¹Æä¿ÉÒÔÕý³£µÄcommon_scrollviewÖÐÏÔʾ¡£ 5. ¹ØÓÚ¼ÆÊ±Æ÷ºÍ·ÖÖ¡¼ÓÔØµÄʹÓà viewclassÖÐÐÂÔöÁËstartUpdageº¯Êý£¬ÓÐÈçÏÂÁ½ÖÖʹÓ÷½Ê½£º (1) Ö±½Óµ÷ÓÃthis.startUpdage() º¯Êý£¬ÖØÐ´updateº¯Êý£¬¾Í»á¿ªÆôupdateº¯Êý µ÷Ó㬲¢ÇÒÔÚ²ÎÊýÖзµ»ØÊ±¼ä¼ä¸ô£¬ÊÓͼÏú»Ù¸Ä¶¨Ê±Æ÷×Ô¶¯Ïú»Ù¡£´Ë·½·¨Ö÷Òª ÓÃÓÚµ¹¼ÆÊ±µÄ¸üУ¬·ÖÖ¡ÓÅ»¯Ò²¿ÉÒÔ¡£ (2) ʹÓÃthis.startUpdage(times, callback), ´«Èë×ܹ²ÐèÒª¸üеĴÎÊýºÍ»Ùµô º¯Êý£¬viewclass»á¿ªÆôµ÷Ó㬲¢ÇÒÔڻص÷º¯ÊýÖзµ»Øµ÷ÓôÎÊý£¬µ÷ÓôÎÊýÍê±Ï×Ô¶¯ Ïú»Ù¶¨Ê±Æ÷£¬²¢ÇÒ¶à¸ö¼ÆÊ±Æ÷,Ö÷ÒªÓÃÓÚ·ÖÖ¡´´½¨¡£ ËùÓмÆÊ±Æ÷¾ù¿ÉÊÖ¶¯Ïú»Ù£» Àý£º // µ¹¼ÆÊ±¸üРctor: function() { var main_loop_handler = this.startUpdage() // Í£Ö¹ this.stopUpdate(main_loop_handler); }, update: function(dt) { this.free_call_time -= dt; }, // ·ÖÖ¡´´½¨30¸öitem ctor: function() { var create_hanlder = this.startUpdage(30, this.creatItem.bind(this)); // Í£Ö¹¸üРthis.stopUpdate(create_hanlder); }, creatItem: function(index) { this.item_list[index] = new TestItem(this.item_data[index]); }, 6.×ÊÔ´·ÖÀà -- prefab ½çÃæÔ¤ÖÆ -- res ¶¯Ì¬icon -- sound ÉùÒô -- spine spien¶¯»­ -- ui_res ½çÃæicon (1) ËùÓм¯³É×ÔviewclassµÄÀàʹÓÃthis.loadRes()´«Èë·¾¶»ñÈ¡×ÊÔ´£» (2) ËùÓе÷ÓÃLoaderManager.loadRes×ÊÔ´£¬ÒªÊ¹ÓÃLoaderManager.releasResÊÍ ·Å 7.½çÃæºÍicon×ÊԴʹÓà (1) ²»ÔÙʹÓüÓÔØÍ¼¼¯µÄ·½Ê½È¥¼ÓÔØ×ÊÔ´£¬getResFrame¡¢getPlistPath£¬ÒѾ­·Ï Æú£¬¾É½Ó¿ÚÒѾ­È«²¿Ìæ»»£¬²¿·ÖÄ£¿éÓÐÎÊÌâµÄ»°×ÔÐмì²é¡£ÐÂÄÚÈÝ£¬È«²¿Ê¹ ÓüÓÔØÉ¢Í¼µÄ·½Ê½È¥¼ÓÔØ¡££¨ÒѼæÈÝ·¢²¼ºóµÄºÏͼ£© (2) ¶¯Ì¬¼ÓÔØicon×ÊÔ´ÈçÏ£º var icon_path = PathTool.getIconPath("skillicon", res_name); this.loadRes(icon_path, function(skill_item, sf_obj){ skill_item_sp.spriteFrame = sf_obj; }); (3) ¶¯Ì¬¼ÓÔØ½çÃæicon×ÊÔ´ÈçÏ£º var icon_path = PathTool.getUIIconPath("friend", "friend_" + 5) this.loadRes(icon_path, function(sf_obj){ this.img.spriteFrame = sf_obj; }.bind(this)) (4) ½çÃæÉÏʹÓõÄ×ÊÔ´ºÍ¶¯Ì¬icon×ÊÔ´Ö»ËùÒÔ·Ö¿ª½Ó¿Ú£¬Ö÷ÒªÊÇΪÁ˹æ±Ü×Ô¶¯Í¼ ¼¯¿ÉÄÜ´æÔÚµÄһЩ¿ÓÐèÒªµ¥¶À´¦Àí¡£ (5) ÐÂ×ÊÔ´µÄprefabÈ«²¿Êǽű¾Ìæ»»×ÊÔ´µÄ£¬ÈçloadPrefab¼ÓÔØÊ§°Ü£¬ÊÖ¶¯´ò¿ª Ò»´Î£¬µã±£´æ£¬ÖØÐÂÔËÐм´¿É¡£ 8.¸»Îı¾Ê¹ÓÃ: (1) ͼÎÄ»ìÅÅʹÓ㺠ºÏͼʹÓòο¼¹Ù·½Îĵµ Ð޸ĺóµÄ¸»Îı¾Í¬Ê±Ö§³ÖºÏͼºÍɢͼ£º this.test_rich = this.test_rt_nd.getComponent(cc.RichText); this.test_rich.string = ""£» // 666ΪɢͼÃû³Æ£» cc.loader.loadRes("test/6666", cc.SpriteFrame, function(err, test_sf) { this.test_rich.addSpriteFrame(test_sf); // Ïò¸»Îı¾Ìí¼Óɢͼ }.bind(this)); (2) Ϊ¸»Îı¾Ìí¼Óµã»÷ʼþºÍ²ÎÊý // paramΪ²ÎÊý handlerΪ¾ä±ú±êʶ this.test_rich.string = " click me! " // onClickItem Ϊ»Øµ÷º¯Êý this.test_rich.addTouchHandler("handler", this.onClickItem.bind(this)); (3) Ϊ¸»Îı¾Ìí¼Ó±íÇé this.test_rich.string = "" cc.loader.loadRes("test/E61526/action", sp.SkeletonData, function(err, test_sf) { this.test_rich.addEmojiAtlas(test_sf, "E61526"); }.bind(this));