工程代碼_Egret開發筆記(二)基礎工程代碼閱讀

代碼目錄結構

f759eb35573a63f4e24da6514a32f0d9.png

在Egret Wing中打開上一節中我們創建的項目工程,查看代碼目錄結構,Forward在如下圖中標記了各個目錄的及關鍵文件的用途。

4d2289d460f9396f9698c7ca3c4bfc30.png

代碼閱讀理解

接下來我們從web入口一步一步閱讀初始代碼。首先打開index.html文件,我們看到index文件內容如下:

36f986c7d885ded14a6862520d0c9f7b.png
020b1acc78ec8569f3a62a6b26486fca.png

在上面的代碼中我們看到,在index中首先加載了一個manifest.json文件。

xhr.open('GET', './manifest.json?v=' + Math.random(), true);

好的,我們打開這個文件看看里面的內容。

eff64b19f45016fdc310911ee17b85b8.png

initial中的是egret庫對應的js文件,也就是我們在《Egret開發筆記(一)》中創建項目時勾選引入的引擎庫,如下圖:

f38f95f67e2a17614ae271d62b1d785a.png
10d1de865ad5b2762cf61818fca5ca12.png

而game模塊中定義的則是啟動程序后要加載的src目錄下ts文件經過編譯生成的js文件。

08d0e5cc7d067e28d6176e24e177fd59.png
225e612c8d55173b9600fa0e2ddf57d3.png
2132bb7638bc22abacbec5b306d959f3.png
7b1fd38abceb44ebd9206f1bc3737e2a.png

我們可以看出,在加載完manifest文件之后,將manifest文件initialgame拼接在一起作為一個list。然后通過loadScript開始加載list中所有文件。而每一個文件則是通過loadSingleScript來完成加載的。按照上面的定義首先加載的一定是egret.js,接下來是egret.web.js、game.js...

7ebf7168d9b7cbbc6855fa62cd2eac26.png

當所有預定義的文件加載進來之后,在加載完成的回調函數中,調用了egret的runEgret接口,這個接口做了什么呢?

4817f2412adb4b61e33373748ca60422.png
82194a6ef5914bbd0d40dddcc97ff47a.png

斷點調試可以看到,這個接口經過一系列參數設置后,通過document.querySelectorAll查找到一個egret-player并把它放在一個container中,這個egret-player就是在index.html中定義的body體,這個div中定義了data-entry-class一個Main類型,同時在這個div中定義了一系列這個body體顯示的一系列參數列表。

1a481ef072fe5ef3fe6ecf6f38c118e9.png

通過這個container以及前面傳遞過來一個參數集options,然后創建了一個web.webPlayer,而這個web.webPlayer的start接口就調起了我們src目錄下Main的一個對象。

這樣我們就應該明白egret項目是如何從index.htmlMain的調用的。

4c9929cf5c6502618bf3f1751b57ef19.png

在進入Main之后,構造函數中首先注冊了一個ADD_TO_STAGE事件,響應接口是onAddToStage,在這個接口中onPauseonResume,再執行runGame接口——

a9eda10cfd36a9d412cdaf4eb4159922.png

在這里先加載資源創建游戲場景、使用加載description_json文件啟動動畫、使用平臺登錄賬號、并且獲取平臺賬戶信息打印賬戶信息

0fe17ee185942883270fcc6ba46ba578.png

在loadResource中,首先創建了一個LoadingUI,就是一個加載頁面,然后開始加載default.res.json文件,文件路徑在resource目錄。加載頁面展示的進度則是default.res.json中preload分組的加載進度,當加載資源完成后,移除加載頁面。我們打開這個文件可以看到,實際上這個文件里面的groups中定義了預定義的分組資源,而在resources中定義了各個資源的名稱、類型和url。整個文件是一個json格式的資源配置文件,如下圖所示。

4f84928ba50755228441745853619c5d.png

在runGame中,當我們加載完預定義的資源后,就開始創建場景中的背景、對象、設置icon等,這些與具體想實現的功能有關,這里不做過多解釋,涉及到要創建的各種控件對象我們后續專門一章來學習。

接下來,加載description_json文件,實際上是讀取了對應文件中的文字信息,并將加載的結果傳進startAnimation中啟動一個循環動畫

a247ffe14ba405e2fdba1bd13d868014.png
b31b225b986561d64fd0ea84ab5959e9.png
6fa7ae21d91b6549fc71ad4708f34dd5.png

最后調用平臺登錄接口,獲取平臺賬號信息并打印。至此,就完成Main對象中所有邏輯的處理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393803.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393803.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393803.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

知曉云助力小程序開發

小程序開發遇到瓶頸雖然騰訊提供了小程序解決方案,https://cloud.tencent.com/solution/la。但是對于普通開發者或者小企業的開發人員來說,購買域名,網站備案、部署SSL證書,安裝會話服務器。業務邏輯上要使用數據庫,緩…

leetcode131. 分割回文串(回溯)

給定一個字符串 s&#xff0c;將 s 分割成一些子串&#xff0c;使每個子串都是回文串。 返回 s 所有可能的分割方案。 示例: 輸入: “aab” 輸出: [ [“aa”,“b”], [“a”,“a”,“b”] ] 代碼 class Solution {List<List<String>> stringListnew ArrayList…

Cracer滲透-windows基礎(系統目錄,服務,端口,注冊表)

系統目錄C:\Windows\system32\config\SAM (保存系統密碼) 無法正常修改&#xff0c;可以進入PE系統進行修改&#xff08;先備份在清空&#xff09;利用結束后&#xff0c;再將之前備份的恢復C:\Windows\System32\drivers\hosts&#xff08;域名解析文件&#xff09;hosts欺騙&a…

java--xml文件讀取(SAX)

SAX解析原理&#xff1a; 使用Handler去逐個分析遇到的每一個節點 SAX方式解析步奏&#xff1a; 創建xml解析需要的handler&#xff08;parser.parse(file,handler)&#xff09; package com.imooc_xml.sax.handler;import java.util.ArrayList;import org.xml.sax.Attributes…

算法訓練營 重編碼_編碼訓練營之后該做什么-以及如何獲得成功

算法訓練營 重編碼by Anthony Morris安東尼莫里斯(Anthony Morris) 編碼訓練營之后該做什么-以及如何獲得成功 (What to do — and how to find success — after a coding bootcamp) It’s almost been two years since I graduated from the Lighthouse Labs Web Developmen…

leetcode860. 檸檬水找零(貪心)

在檸檬水攤上&#xff0c;每一杯檸檬水的售價為 5 美元。 顧客排隊購買你的產品&#xff0c;&#xff08;按賬單 bills 支付的順序&#xff09;一次購買一杯。 每位顧客只買一杯檸檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必須給每個顧客正確找零&#xff0…

linux防火墻開啟某端口命令行,linux上防火墻 開啟某個端口

linux下防火墻 開啟某個端口直接在/etc/sysconfig/iptables中增加一行&#xff1a;-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT注意添加位置:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT-A RH-Fi…

imp命令導入指定表_Sqoop 使用shell命令的各種參數的配置及使用方法

點擊上方藍色字體&#xff0c;選擇“設為星標”回復”資源“獲取更多資源本文作者&#xff1a;Sheep Sun本文鏈接&#xff1a;https://www.cnblogs.com/yangxusun9/p/12558683.html大數據技術與架構點擊右側關注&#xff0c;大數據開發領域最強公眾號&#xff01;暴走大數據點擊…

黑客頻繁來襲 關注云計算的安全與保障

本文講的是 : 黑客頻繁來襲 關注云計算的安全與保障 , 【IT168 資訊】日前&#xff0c;虎嗅網遭受網絡攻擊的事件&#xff0c;引起業內關注。2月27日晚&#xff0c;虎嗅網中斷訪問&#xff0c;虎嗅網新浪官方微博隨即發表聲明&#xff0c;表示網站受到惡意攻擊&#xff0c;隨…

51nod 1100:斜率最大

題目鏈接 斜率最大點對橫坐標必相鄰 #include <bits/stdc.h> using namespace std; const int maxn 1e4 100;struct point {int x, y, pos;bool operator < (const point& rhs)const{return x<rhs.x;} } a[maxn]; double xielv(point a, point b) {return (a…

ik分詞和jieba分詞哪個好_Pubseg:一種單雙字串的BiLSTM中文分詞工具

中文分詞是中文自然語言處理中的重要的步驟&#xff0c;有一個更高精度的中文分詞模型會顯著提升文檔分類、情感預測、社交媒體處理等任務的效果[1]。Pubseg是基于BiLSTM中文分詞工具&#xff0c;基于ICWS2005PKU語料訓練集訓練而成&#xff0c;其優點在于在ICWS2005-PKU語料下…

freecodecamp_freeCodeCamp.org隱私權政策:問題與解答

freecodecampWe take your privacy seriously. And we give you full control over your data.我們把你的隱私當回事。 而且&#xff0c;我們可以完全控制您的數據。 freeCodeCamp doesnt show you ads or sell your data to anyone. Our nonprofit is instead supported by t…

leetcode1029. 兩地調度(貪心算法)

公司計劃面試 2N 人。第 i 人飛往 A 市的費用為 costs[i][0]&#xff0c;飛往 B 市的費用為 costs[i][1]。 返回將每個人都飛到某座城市的最低費用&#xff0c;要求每個城市都有 N 人抵達。 示例&#xff1a; 輸入&#xff1a;[[10,20],[30,200],[400,50],[30,20]] 輸出&…

第一階段沖刺4

1、我昨天的成就&#xff1a;看相關android開發視頻&#xff0c;上網尋找如何實現app動畫效果2、遇到什么困難&#xff1a;網上的用的很高級&#xff0c;看不懂別人如何實現的&#xff0c;搬過來實現不了。3、今天的任務&#xff1a;繼續實現動畫效果。 轉載于:https://www.cnb…

小白做淘客店鋪新玩法

微信淘客在朋友圈刷了將近兩個月。有些大咖賺得盆滿缽滿&#xff0c;有些小白交了不少學費。有人日入幾千幾萬&#xff0c;也有入不敷出。在此咖妹并沒有褒貶之意&#xff0c;只是提醒大家&#xff0c;不光淘客如此&#xff0c;其他項目亦是如此&#xff0c;別人能做成功的項目…

局域網中實現linux與windows文件共享,使用samba組建Linux與Windows局域網實現文件共享...

使用samba&#xff0c;可以組建Windows與Linux的局域網&#xff0c;Linux我用的是Fedora Core 6。Samba軟件的最新版本可以從網站免費獲得。共可下得5個rpm&#xff0c;分別為&#xff1a;samba-3.0.24-1.i386.rpm&#xff1a;服務器端&#xff1b;samba-client-3.0.24-1.i386.…

python sum函數numpy_如何用numba加速python?

我把寫好的markdown導入進來&#xff0c;但是沒想到知乎的排版如此感人。如果對知乎排版不滿想要看高清清爽版&#xff0c;請移步微信公眾號原文 如何用numba加速python&#xff1f;同時歡迎關注前言說道現在最流行的語言&#xff0c;就不得不提python。可是python雖然容易上手…

服務概述

Android中的服務Service&#xff0c;和Activity不同的是不能與用戶交互的&#xff0c;不能自己啟動&#xff0c;系統的后臺運行&#xff0c;當程序退出時&#xff0c;我們沒有顯示的調用停止服務&#xff0c;那么這個Service就沒有結束&#xff0c;它仍然在后臺運行。Service和…

[ZJOI2019]麻將

Luogu5279 , LOJ3042題意&#xff1a;給出初始13張手牌&#xff0c;求理論可以和牌的最小輪數的期望&#xff0e;定義和牌為&#xff1a;4句話1對亂將&#xff0c;不能有杠&#xff1b;七對 原始題解-shadowice 寫得很好的題解 首先分析期望&#xff1a;\(<--\)所有和牌的步…

二進制搜索算法_二進制搜索的一個扭曲故事

二進制搜索算法by Divya Godayal通過Divya Godayal 二進制搜索的一個扭曲故事 (A twisted tale of Binary Search) Awesome. That’s how I feel right now. Writing my first solo tech article.太棒了 那就是我現在的感覺。 寫我的第一篇個人技術文章。 I must say I have …