{"id":730,"date":"2020-10-07T16:49:40","date_gmt":"2020-10-07T08:49:40","guid":{"rendered":"http:\/\/blog.xrhoujie.com\/?p=730"},"modified":"2020-09-02T17:04:19","modified_gmt":"2020-09-02T09:04:19","slug":"egret%e6%88%90%e8%af%ad%e5%a4%a7%e6%8c%91%e6%88%98-%e5%9c%ba%e6%99%af%e5%85%b3%e5%8d%a1%e7%ad%89%e7%ba%a7%e9%80%bb%e8%be%91%e4%b8%89","status":"publish","type":"post","link":"http:\/\/blog.xrhoujie.com\/?p=730","title":{"rendered":"Egret\u6210\u8bed\u5927\u6311\u6218-\u573a\u666f\u5173\u5361\u7b49\u7ea7\u903b\u8f91(\u4e09)"},"content":{"rendered":"<p><code><br \/>\nclass SceneLevel extends eui.Component implements eui.UIComponent {<br \/>\npublic btn_back: eui.Button;<br \/>\npublic sc_level: eui.Scroller;<br \/>\npublic gp_level: eui.Group;<br \/>\npublic img_arrow: eui.Image; \/\/\u7bad\u5934<br \/>\n\/\/ \u58f0\u660e\u6570\u7ec4 \u5b58\u653e\u5173\u5361\u6309\u94ae<br \/>\nprivate levelIcons: LevelIcon[] = [];<br \/>\n\/\/ \u5f53\u524d\u9009\u62e9\u7684\u5173\u5361<br \/>\nprivate sel_levle: number;<\/code><\/p>\n<p>private static shared: SceneLevel;<br \/>\npublic static getInstance() {<br \/>\nif (!SceneLevel.shared) {<br \/>\nSceneLevel.shared = new SceneLevel();<br \/>\n}<br \/>\nreturn SceneLevel.shared;<br \/>\n}<\/p>\n<p>public constructor() {<br \/>\nsuper();<br \/>\n}<\/p>\n<p>protected partAdded(partName: string, instance: any): void {<br \/>\nsuper.partAdded(partName, instance);<br \/>\n}<\/p>\n<p>protected childrenCreated(): void {<br \/>\nsuper.childrenCreated();<br \/>\nthis.init();<br \/>\n}<\/p>\n<p>private init() {<br \/>\nthis.btn_back.addEventListener(egret.TouchEvent.TOUCH_TAP, this.backCallBack, this);<br \/>\n\/\/ scroller \u5173\u95ed\u6c34\u5e73\u65b9\u5411\u6eda\u52a8<br \/>\nthis.sc_level.scrollPolicyH = eui.ScrollPolicy.OFF;<br \/>\n\/\/20\u884c*10\u5217<br \/>\nlet col = 10;<br \/>\nlet row = 20;<br \/>\nlet icon_width = this.width \/ col;<br \/>\nlet icon_height = this.height \/ row;<\/p>\n<p>\/\/\u521b\u5efaicon\u7684group\u6dfb\u52a0\u5230scroller\u4e0a<br \/>\nlet group: eui.Group = new eui.Group();<br \/>\nthis.gp_level.addChild(group);<br \/>\ngroup.width = this.width;<br \/>\n\/\/ \u6bcf\u4e2aicon\u7684\u9ad8\u5ea6 * \u603b\u5173\u5361\u6570<br \/>\ngroup.height = icon_height * LevelDataManager.getInstance().totalLevels;<\/p>\n<p>\/\/ \u586b\u5145\u80cc\u666f\u56fe<br \/>\nfor (let i: number = 0; i &lt; group.height \/ this.height; i++) {<br \/>\nlet img_bg: eui.Image = new eui.Image(&#8220;GameBG2_jpg&#8221;);<br \/>\nimg_bg.y = i * this.height;<br \/>\nthis.gp_level.addChildAt(img_bg, 0);<br \/>\n}<br \/>\n\/\/\u83b7\u53d6\u5f53\u524d\u6e38\u620f\u7684\u8fdb\u5ea6<br \/>\nlet milestrone: number = LevelDataManager.getInstance().Milestone;<\/p>\n<p>\/\/\u8bbe\u7f6e\u5173\u5361icon<br \/>\nfor (let i: number = 0; i &lt; LevelDataManager.getInstance().totalLevels; i++) {<br \/>\nlet icon: LevelIcon = new LevelIcon();<br \/>\ngroup.addChild(icon);<br \/>\nicon.Level = i + 1;<br \/>\nicon.x = Math.sin(icon_height * i \/ 2 \/ 180 * Math.PI) * 200 + group.width \/ 2;<br \/>\nicon.y = group.height &#8211; icon_height * i &#8211; icon.height;<br \/>\n\/\/\u7ed9\u6309\u94ae\u6dfb\u52a0\u70b9\u51fb\u4e8b\u4ef6\u56de\u8c03<br \/>\nicon.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTapIcon, this);<br \/>\n\/\/\u8bbe\u7f6e\u5173\u5361\u6309\u94ae\u7684\u72b6\u6001 \u662f\u5426\u53ef\u4ee5\u70b9\u51fb<br \/>\nicon.enabled = i &lt; milestrone; \/\/ \u628a\u5173\u5361\u6309\u94ae\u5b58\u5165\u6570\u7ec4 this.levelIcons.push(icon); } \/\/scroller\u6eda\u52a8\u5230\u5e95\u90e8 this.gp_level.scrollV = group.height &#8211; this.height; \/\/\u8ba9\u76ee\u524d\u8fdb\u5ea6\u5904\u4e8e\u5c4f\u5e55\u6700\u4e0a\u7aef\uff08\u5047\u8bbe\uff0c\u6211\u73a9\u5230\u4e8625\u5173\uff0c\u8ba925\u5173\u51fa\u73b0\u5728\u6700\u9876\u5c42\uff09 if (milestrone &gt; 20) {<br \/>\nthis.gp_level.scrollV = group.height &#8211; milestrone * icon_height;<br \/>\n}<br \/>\n\/\/\u8bbe\u7f6e\u7bad\u5934\u4f4d\u7f6e<br \/>\nthis.img_arrow.anchorOffsetX = this.img_arrow.width \/ 2;<br \/>\nthis.img_arrow.anchorOffsetY = this.img_arrow.height;<\/p>\n<p>let curretIcon: LevelIcon = this.levelIcons[milestrone &#8211; 1];<br \/>\nthis.img_arrow.x = curretIcon.x + curretIcon.width \/ 2;<br \/>\nthis.img_arrow.y = curretIcon.y;<br \/>\n\/\/\u5c06\u7bad\u5934\u663e\u793a\u5728\u6700\u4e0a\u5c42<br \/>\nthis.gp_level.addChild(this.img_arrow);<\/p>\n<p>\/\/\u8bbe\u7f6e\u5f53\u524d\u9009\u62e9\u7684\u5173\u5361<br \/>\nthis.sel_levle = milestrone;<\/p>\n<p>}<\/p>\n<p>private backCallBack() {<br \/>\nSoundManage.getInstance().playClick();<br \/>\nthis.parent.addChild(SceneBegin.getInstance());<br \/>\nthis.parent.removeChild(this);<\/p>\n<p>}<\/p>\n<p>\/**<br \/>\n* \u70b9\u51fb\u5173\u5361\u6309\u94ae<br \/>\n*\/<\/p>\n<p>private onTapIcon(event) {<br \/>\n\/\/ \u64ad\u653e\u70b9\u51fb\u97f3\u6548<br \/>\nSoundManage.getInstance().playClick();<br \/>\n\/\/ \u83b7\u53d6\u5f53\u524d\u70b9\u51fb\u7684\u5173\u5361<br \/>\nlet tg_icon: LevelIcon = event.currentTarget;<br \/>\nthis.sel_levle = tg_icon.Level;<\/p>\n<p>\/\/ let currentLevel = LevelDataManager.getInstance().Milestone;<\/p>\n<p>\/\/ \u8bbe\u7f6e\u7bad\u5934\u7684\u4f4d\u7f6e\u4e3a\u5f53\u524d\u70b9\u51fb\u5173\u5361\u7684\u4f4d\u7f6e<br \/>\nthis.img_arrow.x = tg_icon.x + tg_icon.width \/ 2;<br \/>\nthis.img_arrow.y = tg_icon.y;<\/p>\n<p>\/\/ \u8df3\u8f6c\u573a\u666f<br \/>\nthis.parent.addChild( SceneGame.getInstance() );<br \/>\nthis.parent.removeChild(this);<br \/>\nSceneGame.getInstance().initLevelData(tg_icon.Level);<\/p>\n<p>}<\/p>\n<p>public setMileStoneLevel(level: number) {<\/p>\n<p>var icon = this.levelIcons[level &#8211; 1];<br \/>\nicon.enabled = true;<br \/>\nthis.img_arrow.x = icon.x + icon.width \/ 2;<br \/>\nthis.img_arrow.y = icon.y;<\/p>\n<p>if (level &gt; LevelDataManager.getInstance().Milestone) {<br \/>\nLevelDataManager.getInstance().Milestone = level;<br \/>\n}<br \/>\n}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-721\" src=\"http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/7-820x1024.png\" alt=\"\" width=\"660\" height=\"824\" srcset=\"http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/7-820x1024.png 820w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/7-240x300.png 240w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/7-768x959.png 768w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/7-624x779.png 624w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/7.png 1432w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>class SceneLevel extends eui.Component implements eui.U [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[15],"_links":{"self":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/730"}],"collection":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=730"}],"version-history":[{"count":2,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/730\/revisions"}],"predecessor-version":[{"id":735,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/730\/revisions\/735"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/media\/469"}],"wp:attachment":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=730"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}