代码目录结构

在Egret Wing中打开上一节中我们创建的项目工程,查看代码目录结构,Forward在如下图中标记了各个目录的及关键文件的用途。

代码阅读理解

接下来我们从web入口一步一步阅读初始代码。首先打开index.html文件,我们看到index文件内容如下:

在上面的代码中我们看到,在index中首先加载了一个manifest.json文件。

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

好的,我们打开这个文件看看里面的内容。

initial中的是egret库对应的js文件,也就是我们在《Egret开发笔记(一)》中创建项目时勾选引入的引擎库,如下图:

而game模块中定义的则是启动程序后要加载的src目录下ts文件经过编译生成的js文件。

我们可以看出,在加载完manifest文件之后,将manifest文件initialgame拼接在一起作为一个list。然后通过loadScript开始加载list中所有文件。而每一个文件则是通过loadSingleScript来完成加载的。按照上面的定义首先加载的一定是egret.js,接下来是egret.web.js、game.js...

当所有预定义的文件加载进来之后,在加载完成的回调函数中,调用了egret的runEgret接口,这个接口做了什么呢?

断点调试可以看到,这个接口经过一系列参数设置后,通过document.querySelectorAll查找到一个egret-player并把它放在一个container中,这个egret-player就是在index.html中定义的body体,这个div中定义了data-entry-class一个Main类型,同时在这个div中定义了一系列这个body体显示的一系列参数列表。

通过这个container以及前面传递过来一个参数集options,然后创建了一个web.webPlayer,而这个web.webPlayer的start接口就调起了我们src目录下Main的一个对象。

这样我们就应该明白egret项目是如何从index.htmlMain的调用的。

在进入Main之后,构造函数中首先注册了一个ADD_TO_STAGE事件,响应接口是onAddToStage,在这个接口中onPauseonResume,再执行runGame接口——

在这里先加载资源创建游戏场景、使用加载description_json文件启动动画、使用平台登录账号、并且获取平台账户信息打印账户信息

在loadResource中,首先创建了一个LoadingUI,就是一个加载页面,然后开始加载default.res.json文件,文件路径在resource目录。加载页面展示的进度则是default.res.json中preload分组的加载进度,当加载资源完成后,移除加载页面。我们打开这个文件可以看到,实际上这个文件里面的groups中定义了预定义的分组资源,而在resources中定义了各个资源的名称、类型和url。整个文件是一个json格式的资源配置文件,如下图所示。

在runGame中,当我们加载完预定义的资源后,就开始创建场景中的背景、对象、设置icon等,这些与具体想实现的功能有关,这里不做过多解释,涉及到要创建的各种控件对象我们后续专门一章来学习。

接下来,加载description_json文件,实际上是读取了对应文件中的文字信息,并将加载的结果传进startAnimation中启动一个循环动画

最后调用平台登录接口,获取平台账号信息并打印。至此,就完成Main对象中所有逻辑的处理。

工程代码_Egret开发笔记(二)基础工程代码阅读相关推荐

  1. JNI开发笔记(二)--创建JNI基础工程并运行

    创建JNI基础工程并运行 引 1. 创建JNI工程 2. 添加虚拟手机设备 3. 运行JNI基础工程 引 JNI开发笔记(一)–Android Studio安装与环境搭建 1. 创建JNI工程 And ...

  2. iOS工程开发笔记二

    iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...

  3. JNI开发笔记(三)--JNI工程的框架分析

    JNI工程的框架分析 引 1. JNI工程的组成部分 2. 各个部分之间的关系 引 JNI开发笔记(一)–Android Studio安装与环境搭建 JNI开发笔记(二)–创建JNI基础工程并运行 1 ...

  4. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模 五 粒子系统模拟 二

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  5. 【Visual C++】游戏开发笔记二十三 游戏基础物理建模(五) 粒子系统模拟(二)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7607916 作者:毛星云    邮箱: h ...

  6. [安卓开发笔记二]android Studio通过jni调用C++代码

    [安卓开发笔记二]android Studio通过jni调用C++代码 16/12/11 更新 此博客基于安卓android studio 1.5所写,现在已经有了android studio2.2的 ...

  7. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  8. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7707628 作者:毛星云 邮箱: happ ...

  9. Bootstrap响应式Web开发笔记01——基础入门

    Bootstrap响应式Web开发笔记01--基础入门 Bootstrap响应式Web开发笔记02--移动端页面布局 Bootstrap响应式Web开发笔记03--Bootstrap栅格系统 Boot ...

最新文章

  1. AJAX (异步 javascript 和 xml)
  2. asp.net接受表单验证格式后再提交数据_创建一个注册界面,并记录到数据库中...
  3. LeetCode Insert Delete GetRandom O(1)
  4. [深入浅出Cocoa]iOS网络编程之NSStream
  5. 浮点加法器计算机组成原理,计算机组成原理 第二章运算方法与运算器
  6. 字符流的抽象类 java
  7. 关于程序员面试时的智力题集锦
  8. java多线程基础(synchronize关键字)
  9. 机器视觉经典案例-表面划伤检测案例
  10. 谷歌翻译api小尝试
  11. 一对一高清直播系统解决方案
  12. 2021年美容师(中级)考试题及美容师(中级)模拟考试
  13. 论“无常,苦、无我”
  14. java程序员必备英语词汇_java程序员常用英文单词整理
  15. python全栈构图_Python全栈 Web(边框、盒模型、背景)
  16. 考研词汇测试软件,考研有哪些好用的背单词APP神器
  17. 让你高效工作的7大工具类网站
  18. 车主必看,2021年车险改革内容,2022年车险改革
  19. 百度网盘限速的2个解决小办法
  20. 唯美手绘美女 性感蝴蝶天使 仙女 金发女郎

热门文章

  1. 带你利用一句话完成转场动画
  2. 《Node应用程序构建——使用MongoDB和Backbone》一第 1 章 介绍与总览1.1 打造一个社交网络...
  3. Cocos2d-x 3.2:通过ClippingNode实现一个功能完善的跑马灯公告(1)
  4. 从零开始学习Hadoop--第1章 Hadoop的安装
  5. 基于beego一键创建RESTFul应用
  6. 创建弹出窗口的图片展示
  7. 比赛,幸福度_幸福与生活满意度
  8. mongdb 群集_群集文档的文本摘要
  9. leetcode1296. 划分数组为连续数字的集合(贪心算法)
  10. Diffie-Hellman:安全网络通信背后的天才算法