diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 00000000..8d6ed81d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,3 @@
+
diff --git a/README-DEV.md b/README-DEV.md
index 0a29b2dd..d4ac4fa7 100644
--- a/README-DEV.md
+++ b/README-DEV.md
@@ -32,7 +32,7 @@
### 准备压缩包
1.将对 engine 的改动整合到 Git Patch,然后将 Patch 按相应的引擎目录放置在仓库的 `patches` 目录中,并放在压缩包根目录内。
-2.将引擎按照官方文档进行编译,并放到压缩包根目录内,包括类型提示文件。
+2.将引擎放到压缩包根目录内(需保证去除了忽略文件),包括类型提示文件。
3.将 `service-pack-support` 目录放在压缩包根目录内。
4.更新文档的更新日志。
@@ -40,3 +40,11 @@
1.上传压缩包到 Github 的 Release,修改文档内所有下载地址。
2.将文档分出当前版本,并发布新版本文档。
+
+## 版本计划
+
+- Spine 组件使用多纹理材质时支持 useTint 选项
+- Char 模式因为 bleed 问题只能复用完全相同宽高的区域,试着增加一个选项,能够先用空纹理覆盖,之所以做选项是不知道性能消耗大不大
+- 补充原理文档
+- 适配原生平台
+- 新增静态合批:在一个节点树的根节点挂上一个组件,该组件会快照这个节点树并显示为一张图片,然后只接管渲染,不影响其它逻辑,也可以选择直接删除掉被快照的所有节点
diff --git a/README.md b/README.md
index c2557b12..99614c0c 100644
--- a/README.md
+++ b/README.md
@@ -62,7 +62,7 @@
服务包通过自定义引擎的方式来修改引擎代码,你可以:
- 通过我们发布的引擎扩展一键安装
-- 下载源码包,使用里面的 Git Patch 文件进行安装
+- 下载源码包进行手动安装
具体教程可以参考 [安装指南](https://smallmain.github.io/cocos-service-pack/docs/installation-guide/installation-intro)。
diff --git a/demo/README.md b/demo/README.md
index 060c4be9..a8f3389b 100755
--- a/demo/README.md
+++ b/demo/README.md
@@ -7,13 +7,3 @@
1. 将项目克隆下来之后,根据文档中的 [安装指南](https://smallmain.github.io/cocos-service-pack/docs/installation-guide/installation-intro) 安装服务包。
2. 重启编辑器后运行项目的 `main.fire` 场景。
-
-// 注意:序列帧动画的性能下降(具体多少待测试)
-// 注意:使用多纹理材质并且使用 Spine 缓存模式时,useTint 会强制关闭。
-
-// 之后:
-// Char 模式只能复用完全相同宽高的 Char,试一下加一个开关,能先用空纹理写一遍,覆盖掉旧的避免 bleed 问题
-// 查找所有 TODO
-// 插件适配两个版本:最新版与 2.4.6 版本
-// 适配原生平台
-// 新增静态合批:在一个节点树的根节点挂上一个组件,该组件会快照这个节点树并显示为一张图片,然后只接管渲染,不影响其它逻辑
diff --git a/docs/docs/installation-guide/installation-manual.md b/docs/docs/installation-guide/installation-manual.md
index d8c5a3da..dcaf54c0 100644
--- a/docs/docs/installation-guide/installation-manual.md
+++ b/docs/docs/installation-guide/installation-manual.md
@@ -7,7 +7,7 @@ description: "需掌握一定的自定义引擎知识。"
## Service Pack v1.0.0
-适配 Cocos Creator v2.4.9 版本,[点此下载服务包](pathname://TODO)
+适配 Cocos Creator v2.4.9 版本,[点此下载服务包](https://github.com/smallmain/cocos-service-pack/releases/tag/v1.0.0-alpha)
---
## 标准安装
diff --git a/docs/docs/intro.md b/docs/docs/intro.md
index 154f414e..3bf0169e 100644
--- a/docs/docs/intro.md
+++ b/docs/docs/intro.md
@@ -49,7 +49,7 @@ Service Pack 暂时只适配 Cocos Creator 2.x 版本,Cocos Creator 3.x 正在
服务包通过自定义引擎的方式来修改引擎代码,你可以:
- 通过我们发布的引擎扩展一键安装
-- 下载源码包,使用里面的 Git Patch 文件进行安装
+- 下载源码包进行手动安装
具体教程可以参考 [安装指南](./installation-guide/installation-intro.mdx)。
diff --git a/docs/docs/update-log.md b/docs/docs/update-log.md
index e6aa440d..5e44902a 100644
--- a/docs/docs/update-log.md
+++ b/docs/docs/update-log.md
@@ -7,7 +7,7 @@ sidebar_position: 7
---
## Service Pack v1.0.0
-适配 Cocos Creator v2.4.9 版本,[点此下载服务包](pathname://TODO)
+适配 Cocos Creator v2.4.9 版本,[点此下载服务包](https://github.com/smallmain/cocos-service-pack/releases/tag/v1.0.0-alpha)
- **[新特性] 支持多纹理渲染**
- **[新特性] 重构动态图集,支持多个新特性**
diff --git a/docs/docs/user-guide/multi-render/multi-material.md b/docs/docs/user-guide/multi-render/multi-material.md
index a4dafaa7..17007f8d 100644
--- a/docs/docs/user-guide/multi-render/multi-material.md
+++ b/docs/docs/user-guide/multi-render/multi-material.md
@@ -44,7 +44,7 @@ toc_max_heading_level: 5
Spine 组件使用多纹理材质时会强制勾选 `enableBatch`,因为不开启就不能合批,那也就没必要使用多纹理材质。
-并且暂时不支持染色效果,会强制关闭 `useTint` 选项。
+并且使用多纹理材质时暂时不支持染色效果,会强制关闭 `useTint` 选项。
:::
diff --git a/docs/static/demo/web-desktop/assets/home/config.ae706.json b/docs/static/demo/web-desktop/assets/home/config.72e22.json
similarity index 100%
rename from docs/static/demo/web-desktop/assets/home/config.ae706.json
rename to docs/static/demo/web-desktop/assets/home/config.72e22.json
index 5fceabb2..7c260e2c 100644
--- a/docs/static/demo/web-desktop/assets/home/config.ae706.json
+++ b/docs/static/demo/web-desktop/assets/home/config.72e22.json
@@ -20,8 +20,8 @@
"5f5dyqtRNNxaFmVzYns6FZ",
"a2MjXRFdtLlYQ5ouAFv/+R",
"02kcE0s9pAmLe145ftvpR/",
- "56fc2Ai/RFNYpaMT8crweK",
"71VhFCTINJM6/Ky3oX9nBT",
+ "56fc2Ai/RFNYpaMT8crweK",
"d2kHe6FidKcpV5e1aiNTQM",
"73oJA92A5OPKpn+ZlUPAj1"
],
diff --git a/docs/static/demo/web-desktop/assets/home/index.ae706.js b/docs/static/demo/web-desktop/assets/home/index.72e22.js
similarity index 100%
rename from docs/static/demo/web-desktop/assets/home/index.ae706.js
rename to docs/static/demo/web-desktop/assets/home/index.72e22.js
diff --git a/docs/static/demo/web-mobile/assets/main/config.f3bf0.json b/docs/static/demo/web-desktop/assets/main/config.ffc79.json
similarity index 94%
rename from docs/static/demo/web-mobile/assets/main/config.f3bf0.json
rename to docs/static/demo/web-desktop/assets/main/config.ffc79.json
index ec6abcf8..02bcb2ff 100644
--- a/docs/static/demo/web-mobile/assets/main/config.f3bf0.json
+++ b/docs/static/demo/web-desktop/assets/main/config.ffc79.json
@@ -7,8 +7,8 @@
"5cO7kybDxGj4ipyMYdRYZB",
"5f5dyqtRNNxaFmVzYns6FZ",
"02delMVqdBD70a/HSD99FK",
- "d608qFRoFHwbXd0Dap056i",
- "61cyPdEfRN047sDK9rO0W5"
+ "61cyPdEfRN047sDK9rO0W5",
+ "d608qFRoFHwbXd0Dap056i"
],
"scenes": {
"db://assets/main.fire": "catK9m3HRBtYgmebOjC6ma"
diff --git a/docs/static/demo/web-desktop/assets/main/index.f3bf0.js b/docs/static/demo/web-desktop/assets/main/index.ffc79.js
similarity index 100%
rename from docs/static/demo/web-desktop/assets/main/index.f3bf0.js
rename to docs/static/demo/web-desktop/assets/main/index.ffc79.js
diff --git a/docs/static/demo/web-mobile/assets/multi-render/config.67d3d.json b/docs/static/demo/web-desktop/assets/multi-render/config.67d3d.json
similarity index 100%
rename from docs/static/demo/web-mobile/assets/multi-render/config.67d3d.json
rename to docs/static/demo/web-desktop/assets/multi-render/config.67d3d.json
diff --git a/docs/static/demo/web-mobile/assets/multi-render/index.67d3d.js b/docs/static/demo/web-desktop/assets/multi-render/index.67d3d.js
similarity index 100%
rename from docs/static/demo/web-mobile/assets/multi-render/index.67d3d.js
rename to docs/static/demo/web-desktop/assets/multi-render/index.67d3d.js
diff --git a/docs/static/demo/web-mobile/assets/spine/config.6066d.json b/docs/static/demo/web-desktop/assets/spine/config.2adf8.json
similarity index 100%
rename from docs/static/demo/web-mobile/assets/spine/config.6066d.json
rename to docs/static/demo/web-desktop/assets/spine/config.2adf8.json
index 6e8243d8..9198aac6 100644
--- a/docs/static/demo/web-mobile/assets/spine/config.6066d.json
+++ b/docs/static/demo/web-desktop/assets/spine/config.2adf8.json
@@ -12,18 +12,18 @@
"uuids": [
"76ZjeTsCNJMYn7/rwRXCpD",
"03EprhmOVCZKUbb5XyPXQq",
+ "ecpdLyjvZBwrvm+cedCcQy",
+ "a7ZscqX+JCIZRS157bMyhq",
"7a/QZLET9IDreTiBfRn2PD",
"93dM6KrkZCf5dgNpQwf7T6",
- "ecpdLyjvZBwrvm+cedCcQy",
- "f0BIwQ8D5Ml7nTNQbh1YlS",
- "e97GVMl6JHh5Ml5qEDdSGa",
- "29FYIk+N1GYaeWH/q1NxQO",
+ "85yTK+9shIo7RQfQ1TDEUi",
+ "09o3P/9gBP/Yc7AnxUBZ+Q",
"5cO7kybDxGj4ipyMYdRYZB",
"5f5dyqtRNNxaFmVzYns6FZ",
"a2MjXRFdtLlYQ5ouAFv/+R",
- "a7ZscqX+JCIZRS157bMyhq",
- "85yTK+9shIo7RQfQ1TDEUi",
- "09o3P/9gBP/Yc7AnxUBZ+Q",
+ "f0BIwQ8D5Ml7nTNQbh1YlS",
+ "e97GVMl6JHh5Ml5qEDdSGa",
+ "29FYIk+N1GYaeWH/q1NxQO",
"70VXjGE0JMUqGli0jmCmTF",
"87/8ZHBEVIkKeNxmalrn9r",
"d0Bu8c2MBCKJc+mKBWzjsJ",
@@ -33,24 +33,24 @@
],
"scenes": {},
"redirect": [
+ "ecpdLyjvZBwrvm+cedCcQy",
+ 0,
+ "a7ZscqX+JCIZRS157bMyhq",
+ 1,
"7a/QZLET9IDreTiBfRn2PD",
0,
"93dM6KrkZCf5dgNpQwf7T6",
1,
- "ecpdLyjvZBwrvm+cedCcQy",
- 0,
+ "85yTK+9shIo7RQfQ1TDEUi",
+ 1,
+ "09o3P/9gBP/Yc7AnxUBZ+Q",
+ 1,
"5cO7kybDxGj4ipyMYdRYZB",
2,
"5f5dyqtRNNxaFmVzYns6FZ",
2,
"a2MjXRFdtLlYQ5ouAFv/+R",
2,
- "a7ZscqX+JCIZRS157bMyhq",
- 1,
- "85yTK+9shIo7RQfQ1TDEUi",
- 1,
- "09o3P/9gBP/Yc7AnxUBZ+Q",
- 1,
"70VXjGE0JMUqGli0jmCmTF",
1,
"87/8ZHBEVIkKeNxmalrn9r",
diff --git a/docs/static/demo/web-desktop/assets/spine/index.5b7f8.js b/docs/static/demo/web-desktop/assets/spine/index.2adf8.js
similarity index 100%
rename from docs/static/demo/web-desktop/assets/spine/index.5b7f8.js
rename to docs/static/demo/web-desktop/assets/spine/index.2adf8.js
diff --git a/docs/static/demo/web-mobile/cocos2d-js.a0714.js b/docs/static/demo/web-desktop/cocos2d-js.76b90.js
similarity index 99%
rename from docs/static/demo/web-mobile/cocos2d-js.a0714.js
rename to docs/static/demo/web-desktop/cocos2d-js.76b90.js
index 19a3f869..bcfa36fa 100644
--- a/docs/static/demo/web-mobile/cocos2d-js.a0714.js
+++ b/docs/static/demo/web-desktop/cocos2d-js.76b90.js
@@ -16140,7 +16140,7 @@
tooltip: false,
notify: function notify(oldValue) {
if (this.cacheMode === oldValue) return;
- oldValue !== CacheMode.BITMAP || this.font instanceof cc.BitmapFont || this._frame && this._frame._resetDynamicAtlasFrame();
+ oldValue !== CacheMode.BITMAP || this.font instanceof cc.BitmapFont || deleteFromDynamicAtlas(this, this._frame);
if (oldValue === CacheMode.CHAR) {
this._ttfTexture = null;
var material = this._materials[0];
@@ -16257,9 +16257,11 @@
this._assemblerData = null;
this._letterTexture = null;
if (this._ttfTexture) {
+ this._ttfTexture._packable = false;
this._ttfTexture.destroy();
this._ttfTexture = null;
}
+ this._resetFrame();
this._super();
},
_nodeSizeChanged: function _nodeSizeChanged() {
@@ -16334,7 +16336,7 @@
this._ttfTexture.initWithElement(this._assemblerData.canvas);
}
if (this.cacheMode !== CacheMode.CHAR) {
- this._frame._resetDynamicAtlasFrame();
+ deleteFromDynamicAtlas(this, this._frame);
this._frame._refreshTexture(this._ttfTexture);
this._srcBlendFactor === cc.macro.BlendFactor.ONE && true && this._ttfTexture.setPremultiplyAlpha(true);
}
@@ -25756,7 +25758,7 @@
preprocessed = version.preprocessed;
version = version.version;
}
- if (version < 1) throw new Error(cc.debug.getError(5304, version));
+ if (version < SUPPORT_MIN_FORMAT_VERSION) throw new Error(cc.debug.getError(5304, version));
options._version = version;
options.result = details;
data[0] = options;
@@ -25779,7 +25781,7 @@
this.version = version;
};
function unpackJSONs(data, classFinder) {
- if (data[0] < 1) throw new Error(cc.debug.getError(5304, data[0]));
+ if (data[0] < SUPPORT_MIN_FORMAT_VERSION) throw new Error(cc.debug.getError(5304, data[0]));
lookupClasses(data, true, classFinder);
cacheMasks(data);
var version = new FileInfo(data[0]);
@@ -25792,7 +25794,7 @@
return sections;
}
function packCustomObjData(type, data, hasNativeDep) {
- return [ 1, EMPTY_PLACEHOLDER, EMPTY_PLACEHOLDER, [ type ], EMPTY_PLACEHOLDER, hasNativeDep ? [ data, -1 ] : [ data ], [ 0 ], EMPTY_PLACEHOLDER, [], [], [] ];
+ return [ SUPPORT_MIN_FORMAT_VERSION, EMPTY_PLACEHOLDER, EMPTY_PLACEHOLDER, [ type ], EMPTY_PLACEHOLDER, hasNativeDep ? [ data, -1 ] : [ data ], [ 0 ], EMPTY_PLACEHOLDER, [], [], [] ];
}
function hasNativeDep(data) {
var instances = data[5];
@@ -28927,6 +28929,7 @@
this._texture.handleLoadedTexture();
},
destroy: function destroy() {
+ this._texture._packable = false;
this._texture.destroy();
this._texture = null;
Label._canvasPool.put(this._data);
diff --git a/docs/static/demo/web-desktop/cocos2d-js.js.d053c.map b/docs/static/demo/web-desktop/cocos2d-js.js.d053c.map
new file mode 100644
index 00000000..c461e141
--- /dev/null
+++ b/docs/static/demo/web-desktop/cocos2d-js.js.d053c.map
@@ -0,0 +1 @@
+{"version":3,"sources":["Users/smallmain/Documents/Work/cocos-service-pack-src/engine/gulp/browserify_prelude.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/DebugInfos.json","cocos2d-js.76b90.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/CCAction.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/CCActionCatmullRom.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/CCActionEase.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/CCActionInstant.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/CCActionInterval.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/CCActionManager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/actions/tween.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/animation-animator.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/animation-clip.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/animation-curves.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/animation-manager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/animation-state.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/bezier.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/easing.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/motion-path-helper.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/playable.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/animation/types.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCDebug.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCDirector.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCGame.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCNode.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCPrivateNode.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCScene.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/CCScheduler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/CCAssetManager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/builtins.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/bundle.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/cache.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/config.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/depend-util.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/deprecated.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/deserialize.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/download-dom-audio.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/download-dom-image.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/download-file.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/download-script.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/downloader.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/factory.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/fetch.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/font-loader.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/helper.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/load.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/pack-manager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/parser.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/pipeline.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/preprocess.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/releaseManager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/request-item.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/shared.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/task.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/urlTransformer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/asset-manager/utilities.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCAudioClip.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCBitmapFont.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCBufferAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCFont.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCJsonAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCLabelAtlas.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCPrefab.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCRenderTexture.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCSceneAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCScripts.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCSpriteAtlas.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCSpriteFrame.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCTTFFont.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCTextAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/CCTexture2D.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/CCEffectAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/CCMaterial.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/effect-base.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/effect-parser.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/effect-variant.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/effect.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/material-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/material-variant.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/assets/material/utils.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/base-ui/CCWidgetManager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/camera/CCCamera.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/component-scheduler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCAnimation.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCBlockInputEvents.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCButton.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCCanvas.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCComponent.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCComponentEventHandler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCLabel.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCLabelOutline.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCLabelShadow.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCLayout.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCMask.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCMotionStreak.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCRenderComponent.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCRichText.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCScrollBar.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCScrollView.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCSlider.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCSprite.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCToggle.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCToggleContainer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCToggleGroup.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCViewGroup.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/CCWidget.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/components/missing-script.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event-manager/CCEvent.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event-manager/CCEventListener.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event-manager/CCEventManager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event-manager/CCTouch.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event-manager/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event/event-listeners.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event/event-target.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event/event.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/event/system-event.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/graphics/graphics.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/graphics/helper.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/graphics/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/graphics/types.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/node-activator.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCClass.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCClassDecorator.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCEnum.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCInputExtension.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCInputManager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCMacro.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCObject.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCSAXParser.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCScreen.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCSys.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCView.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/CCVisibleRect.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/attribute.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/callbacks-invoker.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/compiler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/deserialize-compiled.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/deserialize.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/id-generater.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/instantiate-jit.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/instantiate.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/js.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/preprocess-class.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/requiring-frame.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/platform/utils.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/predefine.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/assembler-2d.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/assembler-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/assembler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/canvas/Device.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/canvas/Texture2D.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/render-flow.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/dynamic-atlas/manager.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/dynamic-atlas/reusable-atlas.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/label/bmfont.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/label/label-frame.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/label/letter-font.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/label/ttf.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/utils/utils.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/graphics/earcut.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/graphics/impl.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/graphics/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/2d-multi/bmfont.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/2d-multi/ttf.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/2d/bmfont.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/2d/letter.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/2d/nativeTTF.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/2d/ttf.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/label/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/mask-assembler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/motion-streak-multi.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/motion-streak.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d-multi/bar-filled.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d-multi/mesh.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d-multi/radial-filled.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d-multi/simple.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d-multi/sliced.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d-multi/tiled.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d/bar-filled.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d/mesh.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d/radial-filled.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d/simple.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d/sliced.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/2d/tiled.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/assemblers/sprite/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/flex-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/mesh-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/model-batcher.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/quad-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/render-data.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/spine-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/renderer/webgl/vertex-format.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/sp/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/sp/multi-batcher.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/sp/multi-handler.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/sp/sp.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/CCPath.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/affine-transform.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/base-node.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/binary-search.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/blend-func.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/decode-uuid.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/find.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/gray-sprite-state.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/html-text-parser.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/misc.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/mutable-forward-iterator.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/prefab-helper.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/profiler/CCProfiler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/profiler/counter.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/profiler/perf-counter.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/text-utils.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/texture-util.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/trans-pool/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/trans-pool/mem-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/trans-pool/node-mem-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/trans-pool/node-unit.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/utils/trans-pool/unit-base.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/color.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/index.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/mat3.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/mat4.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/quat.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/rect.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/size.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/trs.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/utils.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/value-type.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/vec2.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/vec3.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/core/value-types/vec4.ts","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/deprecated.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/particle/CCParticleAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/build/mappings/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/core/base-renderer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/core/input-assembler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/core/pass.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/core/program-lib.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/core/technique.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/core/view.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/enums.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/device.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/enums.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/frame-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/index-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/misc.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/program.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/render-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/state.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/texture-2d.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/texture-cube.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/texture.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/vertex-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/gfx/vertex-format.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/circular-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/fixed-array.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/linked-array.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/recycle-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/timsort.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/memop/typed-array-pool.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/murmurhash2_gc.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/renderers/forward-renderer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/scene/camera.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/scene/model.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/scene/scene.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/renderer/types.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/cocos2d/tilemap/CCTiledMapAsset.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extends.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/AttachUtil.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/Skeleton.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/lib/spine.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/skeleton-cache.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/skeleton-data.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/skeleton-texture.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/spine-assembler.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/track-entry-listeners.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/extensions/spine/vertex-effect-delegate.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/index.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/array-buffer.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/array.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/misc.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/number.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/object.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/string.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/polyfill/typescript.js","Users/smallmain/Documents/Work/cocos-service-pack-src/engine/predefine.js"],"names":["outer","modules","cache","entry","newRequire","name","jumped","module","moduleData","exports","x","i","length","1","require","1001","1002","1003","1004","1005","1006","1007","1008","1009","1010","1011","1012","1013","1014","1015","1016","1019","1020","1021","1022","1023","1024","1025","1026","1027","1028","1029","1030","1031","1100","1101","1200","1201","1203","1204","1205","1206","1207","1208","1209","1210","1211","1212","1213","1214","1215","1216","1300","1400","1404","1405","1406","1408","1502","1503","1504","1505","1506","1507","1508","1509","1510","1511","1513","1605","1606","1610","1612","1613","1617","1618","1619","1620","1623","1624","1625","1626","1627","1632","1633","1634","1635","1636","1637","1638","1639","1800","1801","1802","1803","1900","2000","2200","2201","2300","2400","2602","2603","2606","2607","2608","2609","2610","2614","2616","2617","2618","2619","2623","2625","2626","2627","2628","2712","3005","3006","3007","3103","3112","3113","3116","3117","3119","3120","3121","3300","3400","3401","3500","3501","3502","3503","3504","3505","3506","3507","3508","3509","3510","3511","3600","3601","3602","3603","3604","3605","3606","3607","3608","3609","3610","3611","3612","3613","3614","3615","3616","3617","3618","3619","3620","3621","3622","3623","3624","3625","3626","3627","3628","3633","3634","3635","3636","3637","3638","3639","3640","3641","3642","3643","3644","3645","3646","3647","3648","3649","3651","3652","3653","3654","3655","3700","3701","3800","3801","3802","3803","3804","3805","3806","3807","3808","3809","3810","3811","3812","3813","3814","3815","3816","3817","3818","3819","3820","3821","3900","3901","3902","3903","3904","3905","3906","3907","3912","4003","4004","4011","4012","4013","4200","4201","4202","4300","4400","4600","4700","4800","4901","4902","4914","4915","4916","4921","4922","4923","4924","4925","4926","4927","4928","4929","4930","4932","4933","5000","5001","5100","5200","5201","5202","5300","5301","5302","5303","5304","5402","5403","5404","5405","5406","5500","5501","5507","5508","5510","5511","5512","5513","5514","5515","5516","5517","5601","5602","5603","5700","5800","5801","5802","5900","5901","5902","6000","6001","6017","6018","6019","6020","6021","6022","6023","6024","6025","6026","6027","6028","6029","6030","6031","6032","6400","6402","6500","6600","6601","6700","6800","6801","6900","6901","6902","6903","6904","6905","7100","7101","7200","7201","7202","7203","7210","7211","7215","7216","7217","7218","7219","7221","7222","7236","7237","7238","7239","7240","7241","7401","7402","7501","7502","7503","7504","7506","7507","7508","7509","7510","7600","7601","7602","7603","7604","7605","7700","7701","7702","7800","7801","7802","7803","7804","7805","7900","7901","7902","7903","7904","7905","7906","7907","7908","7909","8000","8001","8002","8003","8103","8104","8105","8106","8107","8108","8109","8200","8300","8301","8400","8401","9000","9001","9100","9101","9102","9103","9104","9105","9106","9107","9200","0100","2","misc","cc","Action","Class","ctor","this","originalTarget","target","tag","TAG_INVALID","clone","action","isDone","startWithTarget","stop","step","dt","logID","update","getTarget","setTarget","getOriginalTarget","setOriginalTarget","getTag","setTag","retain","release","FiniteTimeAction","extends","_duration","getDuration","_timesForRepeat","setDuration","duration","reverse","Speed","speed","_speed","_innerAction","initWithAction","getSpeed","setSpeed","errorID","prototype","call","setInnerAction","getInnerAction","Follow","followedNode","rect","_followedNode","_boundarySet","_boundaryFullyCovered","_halfScreenSize","_fullScreenSize","leftBoundary","rightBoundary","topBoundary","bottomBoundary","_worldRect","initWithTarget","locRect","Rect","y","width","height","isBoundarySet","setBoudarySet","value","_this","winSize","v2","mul","targetWorldPos","convertToWorldSpaceAR","Vec2","ZERO","followedWorldPos","delta","sub","tempPos","parent","convertToNodeSpaceAR","add","setPosition","clampf","activeInHierarchy","follow","../core/platform/CCClass","../core/utils/misc","3","cardinalSplineAt","p0","p1","p2","p3","tension","t","t2","t3","s","b1","b2","b3","b4","getControlPointAt","controlPoints","pos","p","Math","min","max","reverseControlPoints","newArray","push","cloneControlPoints","CardinalSplineTo","ActionInterval","points","_points","_deltaT","_tension","_previousPosition","_accumulatedDiff","undefined","initWithDuration","setPoints","_computeEaseTime","lt","ps","locDT","newPos","macro","ENABLE_STACKABLE_ACTIONS","tempX","tempY","locAccDiff","updatePosition","reversePoints","cardinalSplineTo","getPoints","CardinalSplineBy","_startPosition","copyConfig","slice","current","reverseArray","pop","unshift","cardinalSplineBy","posX","posY","a","CatmullRomTo","catmullRomTo","CatmullRomBy","catmullRomBy","4","easeIn","rate","_rate","easing","pow","easeOut","easeInOut","_easeExponentialInObj","_easeExponentialOutObj","easeExponentialIn","easeExponentialOut","_easeExponentialInOutObj","easeExponentialInOut","_easeSineInObj","cos","PI","_easeSineOutObj","easeSineIn","sin","easeSineOut","_easeSineInOutObj","easeSineInOut","_easeElasticInObj","_easeElasticOutObj","easeElasticIn","period","_period","easeElasticOut","easeElasticInOut","newT","locPeriod","_bounceTime","time1","_easeBounceInObj","_easeBounceOutObj","easeBounceIn","easeBounceOut","_easeBounceInOutObj","easeBounceInOut","_easeBackInObj","overshoot","_easeBackOutObj","easeBackIn","easeBackOut","_easeBackInOutObj","easeBackInOut","easeBezierAction","b","c","d","_easeQuadraticActionIn","time","easeQuadraticActionIn","_easeQuadraticActionOut","easeQuadraticActionOut","_easeQuadraticActionInOut","resultTime","easeQuadraticActionInOut","_easeQuarticActionIn","easeQuarticActionIn","_easeQuarticActionOut","easeQuarticActionOut","_easeQuarticActionInOut","easeQuarticActionInOut","_easeQuinticActionIn","easeQuinticActionIn","_easeQuinticActionOut","easeQuinticActionOut","_easeQuinticActionInOut","easeQuinticActionInOut","_easeCircleActionIn","sqrt","easeCircleActionIn","_easeCircleActionOut","easeCircleActionOut","_easeCircleActionInOut","easeCircleActionInOut","_easeCubicActionIn","easeCubicActionIn","_easeCubicActionOut","easeCubicActionOut","_easeCubicActionInOut","easeCubicActionInOut","5","ActionInstant","Show","_renderComps","getComponentsInChildren","RenderComponent","render","enabled","Hide","show","hide","ToggleVisibility","toggleVisibility","RemoveSelf","isNeedCleanUp","_isNeedCleanUp","init","removeFromParent","removeSelf","DestroySelf","destroy","destroySelf","FlipX","flip","_flippedX","initWithFlipX","scaleX","abs","flipX","FlipY","_flippedY","initWithFlipY","scaleY","flipY","Place","_x","_y","initWithPosition","place","CallFunc","selector","selectorTarget","data","_selectorTarget","_function","_data","initWithFunction","execute","getTargetCallback","setTargetCallback","sel","callFunc","6","MAX_VALUE","_elapsed","_firstTick","_easeList","_repeatForever","_repeatMethod","_speedMethod","getElapsed","FLT_EPSILON","_cloneDecoration","_reverseEaseList","easeObj","arguments","locList","n","setAmplitudeRate","amp","getAmplitudeRate","repeat","times","round","isNaN","repeatForever","actionInterval","Sequence","tempArray","_actions","_split","_last","_reversed","paramArray","Array","last","prev","action1","_actionOneTwo","initWithTwoActions","actionOne","actionTwo","durationOne","durationTwo","new_t","found","locSplit","locActions","locLast","actionFound","sequence","result","Repeat","_times","_total","_nextDt","_actionInstant","locInnerAction","locDuration","locTimes","locNextDt","RepeatForever","Spawn","_one","_two","action2","ret","d1","d2","delayTime","spawn","pSpawn","RotateTo","statics","_reverse","dstAngle","_startAngle","_dstAngle","_angle","startAngle","angle","rotateTo","RotateBy","deltaAngle","_deltaAngle","rotateBy","MoveBy","deltaPos","deltaY","_positionDelta","position","locPosX","locPosY","locStartPosition","targetX","targetY","locPreviousPosition","moveBy","MoveTo","_endPosition","moveTo","SkewTo","sx","sy","_skewX","_skewY","_startSkewX","_startSkewY","_endSkewX","_endSkewY","_deltaX","_deltaY","skewX","skewY","skewTo","SkewBy","deltaSkewX","deltaSkewY","skewBy","JumpBy","jumps","_delta","_height","_jumps","frac","jumpBy","JumpTo","jumpTo","bezierAt","BezierBy","_config","newConfigs","selConf","locConfig","xa","xb","xc","xd","ya","yb","yc","yd","x0","y0","x1","y1","x2","y2","r","bezierBy","BezierTo","_toConfig","locStartPos","locToConfig","bezierTo","ScaleTo","_scaleX","_scaleY","_startScaleX","_startScaleY","_endScaleX","_endScaleY","scaleTo","ScaleBy","scaleBy","Blink","blinks","_originalState","m","opacity","blink","FadeTo","_toOpacity","_fromOpacity","fromOpacity","fadeTo","FadeIn","_reverseAction","FadeOut","fadeIn","fadeOut","TintTo","red","green","blue","_to","color","_from","Color","g","locTo","locFrom","tintTo","TintBy","deltaRed","deltaGreen","deltaBlue","_deltaR","_deltaG","_deltaB","_fromR","_fromG","_fromB","tintBy","DelayTime","ReverseTime","_other","reverseTime","TargetedAction","_action","_forcedTarget","getForcedTarget","setForcedTarget","forcedTarget","targetedAction","7","js","HashElement","actions","actionIndex","currentAction","paused","lock","ActionManager","_hashTargets","createMap","_arrayTargets","_currentTarget","director","_scheduler","enableForTarget","constructor","_elementPool","_searchElementByTarget","arr","k","_getElement","element","_putElement","addAction","_id","removeAllActions","locTargets","removeAllActionsFromTarget","forceDelete","_deleteHashElement","removeAction","splice","_removeActionByTag","l","_removeActionAtIndex","removeActionByTag","hashTargets","_element","getActionByTag","getNumberOfRunningActionsInTarget","pauseTarget","resumeTarget","pauseAllRunningActions","idsWithActions","resumeTargets","targetsToResume","pauseTargets","targetsToPause","purgeSharedManager","getScheduler","unscheduleUpdate","index","targets","locCurrTarget","elt","CC_TEST","../core/platform/js","8","./CCAction","./CCActionCatmullRom","./CCActionEase","./CCActionInstant","./CCActionInterval","./CCActionManager","./tween","9","_bezier","_tweenID","TweenAction","props","opts","_opts","Object","create","_props","progress","easingName","warnID","relative","isNumber","lerp","warn","prop","_originProps","start","end","easingTime","onUpdate","SetAction","Tween","_finalAction","_target","_tag","stopAll","getActionManager","stopAllByTag","stopAllByTarget","then","other","_union","isValid","tween","union","assign","c1","c2","to","c0x","c0y","c1x","c1y","bezier","by","_this2","tmp_args","wrapAction","arg","apply","set","delay","parallel","previousAsInputActions","keys","_loop","key","_loop2","_i","args","_i2","../animation/bezier","10","Playable","_require","EventAnimCurve","EventInfo","WrapModeMask","binarySearch","binarySearchEpsilon","AnimationAnimator","animation","_anims","array","MutableForwardIterator","extend","playState","state","startTime","clip","curveLoaded","initClipData","animator","play","setTime","stopStatesExcept","iterator","anim","stopState","addAnimation","indexOf","_setEventTarget","removeAnimation","fastRemoveAt","sample","pauseState","pause","resumeState","resume","isPaused","setStateTime","onStop","onPause","onResume","_reloadClip","createBatchedProperty","propPath","firstDotIndex","mainValue","animValue","nextValue","leftIndex","rightIndex","nextName","lastPropName","root","wrapMode","frameRate","Loop","repeatCount","Infinity","curves","createCurves","events","curve","eventData","ratio","frame","eventInfo","ratios","func","params","../core/utils/binary-search","./animation-curves","./playable","./types","11","WrapMode","DynamicAnimCurve","quickFindIndex","sampleMotionPaths","AnimationClip","Asset","properties","default","type","Float","get","Normal","curveData","visible","createWithSpriteFrames","spriteFrames","isArray","frames","comps","cc.Sprite","spriteFrame","onLoad","Number","parseFloat","parseInt","createPropCurve","keyframes","motionPaths","isMotionPathProp","Node","keyframe","motionPath","curveValue","values","curveTypes","types","Linear","Bezier","currRatioDif","lastRatioDif","canOptimize","EPSILON","_l","_findFrameIndex","firstValue","_lerp","_lerpNumber","Quat","_lerpQuat","_lerpVector2","Vec3","_lerpVector3","_lerpObject","createTargetCurves","propsData","compsData","compName","comp","getComponent","compData","_propPath","_curve","childrenCurveDatas","paths","namePath","find","childCurveDatas","./motion-path-helper","12","bezierByTime","WrappedInfo","computeRatioByType","AnimCurve","onTimeChangedManually","eachLength","floorIndex","_cachedIndex","from","out","quat","v3","frameCount","shoudRefind","cachedIndex","_fromRatio","_toRatio","fromVal","fromRatio","toRatio","ratioBetweenFrames","toVal","_wrappedInfo","_default","_lastWrappedInfo","_ignoreIndex","NaN","_wrapIterations","iterations","currentWrappedInfo","getWrappedInfo","direction","currentIndex","frameIndex","_fireEvent","currentIterations","lastWrappedInfo","lastIterations","lastIndex","lastDirection","interationsChanged","PingPong","getAnimationManager","pushDelayEvent","components","_components","event","funcName","j","component","info","./bezier","13","AnimationManager","_delayEvents","_isPlaying","_isPaused","destruct","14","Types","AnimationState","_currentFramePlayed","_delay","_delayTime","_process","process","_clip","_name","_lastframeEventOn","emit","proto","_emit","on","callback","once","self","off","hasEventListener","onPlay","lastInfo","stopped","simpleProcess","len","_lastIterations","_needRevers","needRevers","isEnd","isOddIteration","Reverse","tempRatio","tempTime","shouldWrap","_wrapMode","ShouldWrap","obsolete","getset","CC_EDITOR","_repeatCount","15","C1","C2","C3","C4","t1","acos","pi","tau","crt","v","cardano","pa","pb","pc","pd","pa3","pb3","pc3","rd","r3","a3","q","q2","discriminant","u1","v1","x3","mp3","mp33","cosphi","phi","crtr","sd","percent","p1y","p2y","16","constant","linear","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","quartIn","quartOut","quartInOut","quintIn","quintOut","quintInOut","sineIn","sineOut","sineInOut","expoIn","expoOut","expoInOut","circIn","circOut","circInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","smooth","fade","_makeOutIn","fnIn","fnOut","quadOutIn","cubicOutIn","quartOutIn","quintOutIn","sineOutIn","expoOutIn","circOutIn","backOutIn","bounceOutIn","17","./animation-animator","./animation-clip","./animation-manager","./animation-state","./easing","18","Curve","beziers","progresses","computeBeziers","startPoint","endPoint","startCtrlPoint","endCtrlPoint","getLength","getPointAt","u","getUtoTmapping","getPoint","lengths","getLengths","divisions","__arcLengthDivisions","cacheArcLengths","vector","sum","mag","distance","arcLengths","il","targetArcLength","low","high","comparison","floor","lengthBefore","lengthAfter","segmentLength","segmentFraction","checkMotionPath","controls","fps","createControlPoints","in","map","motionPathValid","_motionPath","newValues","newTypes","newRatios","addNewDatas","startRatioOffset","newType","nextRatio","betweenRatio","results","finalProgress","l2","normal","normalize","bezierIndex","newRatio","19","debug","_stepOnce","virtual","onError","getError","../core/CCDebug","20","Enum","Default","LoopReverse","PingPongReverse","21","utils","debugInfos","ERROR_MAP_URL","logList","log","error","assert","console","bind","resetDebugSetting","mode","DebugMode","NONE","ERROR","logToWebPage","msg","game","canvas","logDiv","document","createElement","setAttribute","logDivStyle","style","zIndex","top","left","logListStyle","backgroundColor","borderBottom","borderTopWidth","borderLeftWidth","borderRightWidth","borderTopStyle","borderLeftStyle","borderRightStyle","padding","margin","appendChild","parentNode","scrollTop","scrollHeight","formatStr","cond","shiftArguments","ERROR_FOR_WEB_PAGE","INFO_FOR_WEB_PAGE","CC_JSB","CC_DEV","Error","INFO","CC_RUNTIME","_throw","callInNextTick","getTypedFormatter","id","argsArray","concat","logFormatter","warnFormatter","errorFormatter","assertFormatter","assertID","WARN","WARN_FOR_WEB_PAGE","_resetDebugSetting","isDisplayStats","profiler","isShowingStats","setDisplayStats","displayStats","renderType","RENDER_TYPE_CANVAS","showStats","hideStats","config","showFPS","../../DebugInfos","./platform/utils","22","EventTarget","ComponentScheduler","NodeActivator","Obj","renderer","eventManager","Scheduler","Director","_paused","_purgeDirectorInNextLoop","_winSizeInPoints","_scene","_loadingScene","_totalFrames","_lastUpdate","_deltaTime","_startTime","_maxParticleDeltaTime","_compScheduler","_nodeActivator","_actionManager","EVENT_SHOW","performance","now","EVENT_ENGINE_INITED","size","scheduleUpdate","PRIORITY_SYSTEM","sharedInit","setEnabled","_animationManager","CollisionManager","_collisionManager","PhysicsManager","_physicsManager","Physics3DManager","CC_PHYSICS_BUILTIN","CC_PHYSICS_CANNON","_physics3DManager","_widgetManager","calculateDeltaTime","CC_DEBUG","convertToGL","uiPoint","container","view","box","getBoundingClientRect","window","pageXOffset","clientLeft","pageYOffset","clientTop","_devicePixelRatio","_isRotated","_viewportRect","convertToUI","glPoint","getWinSize","getWinSizeInPixels","purgeCachedData","assetManager","releaseAll","purgeDirector","unscheduleAll","reset","clear","builtins","runSceneImmediate","scene","onBeforeLoadScene","onLaunched","Scene","SceneAsset","CC_BUILD","_load","timeEnd","persistNodeList","_persistRootNodes","node","existNode","getChildByUuid","uuid","getSiblingIndex","_destroyImmediate","insertChild","oldScene","_releaseManager","_autoRelease","_deferredDestroy","EVENT_BEFORE_SCENE_LAUNCH","_activate","EVENT_AFTER_SCENE_LAUNCH","runScene","EVENT_AFTER_DRAW","loadScene","sceneName","_onUnloaded","bundle","bundles","getSceneInfo","EVENT_BEFORE_SCENE_LOADING","err","preloadScene","onProgress","onLoaded","setDepthTest","Camera","main","depth","setClearColor","clearColor","getRunningScene","getScene","getAnimationInterval","getFrameRate","setAnimationInterval","setFrameRate","getDeltaTime","getTotalTime","getTotalFrames","setScheduler","scheduler","setActionManager","actionManager","getCollisionManager","getPhysicsManager","getPhysics3DManager","startAnimation","stopAnimation","_resetDeltaTime","mainLoop","EVENT_BEFORE_UPDATE","startPhase","updatePhase","lateUpdatePhase","EVENT_AFTER_UPDATE","EVENT_BEFORE_DRAW","frameUpdateListeners","__fastOn","__fastOff","addon","EVENT_PROJECTION_CHANGED","EVENT_BEFORE_VISIT","EVENT_AFTER_VISIT","PROJECTION_2D","PROJECTION_3D","PROJECTION_CUSTOM","PROJECTION_DEFAULT","EVENT_BEFORE_PHYSICS","EVENT_AFTER_PHYSICS","./CCGame","./CCScheduler","./component-scheduler","./event-manager","./event/event-target","./node-activator","./platform/CCObject","./renderer","23","dynamicAtlasManager","EVENT_HIDE","EVENT_RESTART","EVENT_GAME_INITED","EVENT_RENDERER_INITED","RENDER_TYPE_WEBGL","RENDER_TYPE_OPENGL","_configLoaded","_isCloning","_prepared","_rendererInitialized","_renderContext","_intervalId","_lastTime","_frameTime","onStart","cancelAnimFrame","_setAnimFrame","_runMainLoop","audioEngine","_break","_restore","restart","removePersistRootNode","uncacheAll","close","_initEngine","_initRenderer","_initEvents","_loadPreviewScript","cb","CC_PREVIEW","_prepareFinished","ENGINE_VERSION","eventTargetOn","eventTargetOnce","prepare","run","_initConfig","addPersistRootNode","isNode","_persistNode","_addPersistNodeRef","_removePersistNodeRef","isPersistRootNode","rAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","requestAnimFrame","_stTimeWithRAF","_stTime","_ctTime","cancelAnimationFrame","cancelRequestAnimationFrame","msCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","webkitCancelRequestAnimationFrame","msCancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","oCancelAnimationFrame","currTime","timeToCall","setTimeout","clearTimeout","_callback","skip","debugMode","exposeClassName","renderMode","registerSystemEvent","collisionMatrix","groupList","_determineRenderType","userRenderMode","supportRender","sys","capabilities","el","localCanvas","localContainer","addClass","hasClass","className","HTMLElement","querySelector","tagName","insertBefore","clientWidth","clientHeight","body","documentElement","stencil","antialias","ENABLE_WEBGL_ANTIALIAS","alpha","ENABLE_TRANSPARENT_CANVAS","initWebGL","device","_gl","CLEANUP_IMAGE_CACHE","initCanvas","_ctx","oncontextmenu","_isContextMenuEnable","win","hiddenPropName","internal","inputManager","hidden","mozHidden","msHidden","webkitHidden","onHidden","onShown","arg0","arg1","arg2","arg3","arg4","changeList","addEventListener","navigator","userAgent","onfocus","../audio/CCAudioEngine","../core/renderer/utils/dynamic-atlas/manager","./CCDebug","./renderer/index.js","24","_valueTypes","BaseNode","PrefabHelper","nodeMemPool","NodeMemPool","AffineTrans","Event","RenderFlow","Flags","Destroying","ERR_INVALID_NUMBER","ONE_DEGREE","ActionManagerExist","emptyFunc","_gwpVec3","_gwpQuat","_tpVec3a","_tpVec3b","_tpQuata","_tpQuatb","_swpVec3","_gwsVec3","_swsVec3","_gwrtVec3a","_gwrtVec3b","_gwrtQuata","_gwrtQuatb","_laVec3","_laQuat","_urfVec3","_urfQuat","_htVec3a","_htVec3b","_gwrQuat","_swrQuat","_quata","_mat4_temp","mat4","_vec3_temp","_cachedArray","POSITION_ON","SCALE_ON","ROTATION_ON","SIZE_ON","ANCHOR_ON","COLOR_ON","BuiltinGroupIndex","DEBUG","LocalDirtyFlag","POSITION","SCALE","ROTATION","SKEW","TRS","RS","TRSS","PHYSICS_POSITION","PHYSICS_SCALE","PHYSICS_ROTATION","PHYSICS_TRS","PHYSICS_RS","ALL_POSITION","ALL_SCALE","ALL_ROTATION","ALL_TRS","ALL","EventType","TOUCH_START","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","MOUSE_DOWN","MOUSE_MOVE","MOUSE_ENTER","MOUSE_LEAVE","MOUSE_UP","MOUSE_WHEEL","POSITION_CHANGED","ROTATION_CHANGED","SCALE_CHANGED","SIZE_CHANGED","ANCHOR_CHANGED","COLOR_CHANGED","CHILD_ADDED","CHILD_REMOVED","CHILD_REORDER","GROUP_CHANGED","SIBLING_ORDER_CHANGED","_touchEvents","_mouseEvents","_skewNeedWarn","_skewWarn","nodePath","NodeUtils","_currentHovered","_touchStartHandler","touch","getLocation","owner","_hitTest","bubbles","dispatchEvent","_touchMoveHandler","_touchEndHandler","_touchCancelHandler","_mouseDownHandler","_mouseMoveHandler","hit","_previousIn","_mouseListener","stopPropagation","_mouseUpHandler","_mouseWheelHandler","_searchComponentsInParent","list","curr","_parent","next","_checkListeners","_objFlags","_bubblingListeners","_capturingListeners","_doDispatchEvent","_getCapturingTargets","eventPhase","currentTarget","_propagationStopped","_propagationImmediateStopped","_getBubblingTargets","_getActualGroupIndex","groupIndex","_updateCullingMask","_cullingMask","_children","updateLocalMatrix3D","_localMatDirty","_matrix","tm","Trs","toMat4","_trs","skx","tan","sky","_worldMatDirty","updateLocalMatrix2D","dirtyFlag","trs","rotation","_eulerAngles","z","hasSkew","rotationRadians","_a","_b","_c","_d","calculWorldMatrix3D","_updateLocalMatrix","parentMat","_worldMatrix","Mat4","copy","calculWorldMatrix2D","_mulMat","mulMat2D","am","bm","outm","aa","ab","ac","ad","atx","aty","ba","bb","bc","bd","btx","bty","mulMat3D","NodeDefines","_opacity","_color","WHITE","_contentSize","Size","_anchorPoint","_position","_scale","_zIndex","Integer","_localZOrder","serializable","_is3DNode","_groupIndex","formerlySerializedAs","group","oldValue","setLocalDirty","_eventMask","_renderFlag","FLAG_WORLD_TRANSFORM","fromAngleZ","rotationX","fromEulerNumber","rotationY","eulerAngles","toEuler","fromEuler","FLAG_TRANSFORM","setRotation","scale","setScale","scaleZ","FLAG_OPACITY_COLOR","range","equals","FLAG_COLOR","anchorX","anchorPoint","anchorY","MAX_ZINDEX","MIN_ZINDEX","_onSiblingIndexChanged","is3DNode","_update3DFunction","up","_up","transformQuat","UP","getWorldRotation","right","_right","RIGHT","forward","_forward","FORWARD","_reorderChildDirty","_widget","_renderComponent","_touchListener","_initDataFromPool","_childArrivalOrder","_LocalDirtyFlag","obj","_delaySort","_onPreDestroy","destroyByParent","_onPreDestroyBase","removeListeners","mask","_backDataIntoPool","sortAllChildren","_onPostActivated","active","_checkListenerMask","_onHierarchyChanged","oldParent","_updateOrderOfArrival","_onHierarchyChangedBase","_nodesOrderDirty","_activeInHierarchy","_calculWorldMatrix","_on3DNodeChanged","_spaceInfo","spaceInfo","localMat","identity","worldMat","_toEuler","_fromEuler","_initProperties","desTrs","subarray","_onBatchCreated","dontSyncChildPrefab","children","child","prefabInfo","_prefab","sync","syncWithPrefab","FLAG_CHILDREN","Mask","_checknSetupSysEvent","newAdded","forDispatch","EventListener","TOUCH_ONE_BY_ONE","swallowTouches","onTouchBegan","onTouchMoved","onTouchEnded","onTouchCancelled","addListener","MOUSE","onMouseDown","onMouseMove","onMouseUp","onMouseScroll","schedule","useCapture","_onDispatch","listeners","__eventTargets","touchEvent","mouseEvent","_offDispatch","removeListener","hasListeners","fastRemove","removeAll","targetOff","has","arg5","pauseSystemEvents","recursive","resumeSystemEvents","point","listener","w","h","cameraPt","testPt","camera","findCamera","getScreenToWorldPoint","_updateWorldMatrix","invert","transformMat4","temp","_enabled","runAction","_suppressDeprecation","pauseAllActions","resumeAllActions","stopAllActions","stopAction","stopActionByTag","getNumberOfRunningActions","getPosition","toPosition","newPosOrX","oldPosition","getScale","toScale","newScaleOrX","getRotation","toRotation","getContentSize","setContentSize","locContentSize","getAnchorPoint","setAnchorPoint","locAnchorPoint","_invTransformPoint","ltrs","conjugate","inverseSafe","getWorldPosition","setWorldPosition","fromPosition","setWorldRotation","val","fromRotation","getWorldScale","setWorldScale","div","fromScale","getWorldRT","opos","orot","fromRT","lookAt","fromViewUp","flag","setWorldDirty","getLocalMatrix","getWorldMatrix","worldPoint","nodePoint","convertToNodeSpace","convertToWorldSpace","getNodeToParentTransform","contentSize","transform","fromMat4","getNodeToParentTransformAR","getNodeToWorldTransform","getNodeToWorldTransformAR","getParentToNodeTransform","getWorldToNodeTransform","convertTouchToNodeSpace","convertTouchToNodeSpaceAR","getBoundingBox","getBoundingBoxToWorld","_getBoundingBoxTo","locChildren","childRect","arrivalOrder","addChild","cleanup","_setDirtyForNode","_child","child2","count","_restoreProperties","onRestore","_p","vec3_tmp","./event/event","./platform/CCMacro","./platform/js","./renderer/render-flow","./utils/affine-transform","./utils/base-node","./utils/prefab-helper","./utils/trans-pool","./value-types","25","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","_unsupportedIterableToArray","done","TypeError","minLen","_arrayLikeToArray","toString","test","arr2","HideInHierarchy","PrivateNode","_originPos","localPosition","_posDirty","override","showInEditor","editorOnly","sendEvent","_super","setParent","getParent","./CCNode","26","NIL","autoReleaseAssets","_inited","dependAssets","_active","_instantiate","activateNode","27","IdGenerater","MAX_POOL_SIZE","idGenerater","ListEntry","priority","markedForDeletion","_listEntries","put","HashUpdateEntry","_hashUpdateEntries","HashTimerEntry","timers","timerIndex","currentTimer","currentTimerSalvaged","_t","_hashTimerEntries","CallbackTimer","_lock","_runForever","_useDelay","_timesExecuted","_repeat","_interval","initWithCallback","seconds","REPEAT_FOREVER","getInterval","setInterval","interval","trigger","cancel","getCallback","unschedule","_timers","timer","_timeScale","_updatesNegList","_updates0List","_updatesPosList","_hashForUpdates","_hashForTimers","_currentTargetSalvaged","_updateHashLocked","_arrayForTimers","_removeHashElement","_removeUpdateFromHash","targetId","listEntry","_priorityIn","ppList","listElement","_appendIn","__instanceId","getNewId","setTimeScale","timeScale","getTimeScale","tmp","hashElement","li","unscheduleAllForTarget","unscheduleAllWithMinPriority","minPriority","temp_length","isScheduled","pauseAllTargets","pauseAllTargetsWithMinPriority","idsWithSelectors","locArrayForTimers","elementUpdate","isTargetPaused","PRIORITY_NON_SYSTEM","./platform/id-generater","28","preprocess","fetch","Cache","helper","releaseManager","dependUtil","load","Pipeline","Task","RequestItem","downloader","parser","packManager","Bundle","factory","parse","combine","_require2","parseParameters","asyncify","_require3","assets","files","parsed","pipeline","transformPipeline","fetchPipeline","RequestType","BuiltinBundleName","AssetManager","_preprocessPipe","_fetchPipe","_loadPipe","append","_files","_parsed","generalImportBase","generalNativeBase","cacheAsset","force","cacheManager","presets","preload","maxConcurrency","maxRequestsPerFrame","remote","maxRetryCount","script","MAIN","resources","RESOURCES","INTERNAL","options","bundleVers","server","importBase","nativeBase","getBundle","removeBundle","_destroy","remove","loadAny","requests","onComplete","_parseParameters","preset","task","input","async","preloadAny","_parseParameters2","postLoadNative","asset","_parseParameters3","_native","_nativeAsset","depend","getNativeDep","_uuid","getAssetInfo","message","stack","loadRemote","url","_parseParameters4","__isNative__","ext","path","extname","loadScript","_parseParameters5","__requestType__","URL","loadBundle","nameOrUrl","_parseParameters6","bundleName","basename","releaseAsset","tryRelease","releaseUnusedAssets","forEach","_transform","subTask","urls","item","recycle","e","output","defineProperty","./builtins","./bundle","./cache","./depend-util","./downloader","./factory","./fetch","./helper","./load","./pack-manager","./parser","./pipeline","./preprocess","./releaseManager","./request-item","./shared","./task","./urlTransformer","./utilities","29","_assets","material","effect","_loadBuiltins","dirname","builtin","loadDir","addRef","_loadBuiltinsSP","sp","MAX_MULTITEXTURE_NUM","_loadMultiEffect","multi2dSpriteEffectAsset","inited","multiBatcher","maxAtlasCount","charAtlasAutoBatchCount","EffectAsset","getBuiltin","30","Config","parseLoadResArgs","deps","base","getInfoWithPath","getDirWithPath","_parseLoadResArgs","PATH","__outputAsArray__","_parseLoadResArgs2","dir","_parseLoadResArgs3","DIR","preloadDir","_parseLoadResArgs4","sceneAsset","redirect","./config","31","_map","_count","predicate","../platform/js","32","processOptions","assetInfos","scenes","_initUuid","uuids","_initPath","_initScene","_initPackage","packs","_initVersion","versions","_initRedirect","uuidList","pathList","isSubAsset","assetInfo","_getClassById","sceneList","packageList","packUuid","pack","assetPacks","entries","ver","nativeVer","items","isChildClassOf","infos","isMatchByWord","nextAscii","charCodeAt","startsWith","endsWith","33","_deserializeCompiled","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","__esModule","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","hasOwnProperty","desc","deserialize","_depends","nativeDep","getDeps","getDepsRecursively","exclude","depends","_descend","json","__type__","hasNativeDep","_parseDepsFromJson","_parseDepsFromAsset","parsedFromExistAsset","preventPreloadNativeObject","preventDeferredLoadDependents","__depends__","dep","__nativeDepend__","_nativeDep","getDependUuidList","decodeUuid","../platform/deserialize-compiled","./deserialize","34","utilities","ImageFmts","AudioFmts","GetTrue","md5Pipe","transformURL","getUuidFromURL","hashValue","hashPatchInFolder","replace","match","loader","_autoReleaseSetting","_cache","progressCallback","completeCallback","images","audios","finish","total","content","includes","res","image","audio","isCompleted","getXMLHttpRequest","XMLHttpRequest","getItem","loadRes","_this$_parseLoadResAr","loadResArray","_this$_parseLoadResAr2","loadResDir","_this$_parseLoadResAr3","getRes","getResCount","getDependsRecursively","assetLoader","addDownloadHandlers","extMap","handler","register","addLoadHandlers","file","flowInDeps","isBuiltin","builtinAsset","_isBuiltin","releaseRes","releaseResDir","removeItem","setAutoRelease","autoRelease","setAutoReleaseRecursively","isAutoRelease","loadSubpackage","AssetLibrary","libraryPath","rawAssetsBase","rawAssets","loadAsset","getLibUrlNoExt","queryAssetInfo","raw","changeExtname","substr","onceWarns","assetLibrary","defineProperties","LoadingItems","DOWNLOAD_MAX_CONCURRENT","_getSceneUuid","_sceneInfos","releaseSettings","../CCDirector","35","MissingClass","classFinder","missingClass","_MissingScript","safeFindClass","pool","deserializeForCompiled","deserializeForEditor","Details","tdInfo","customEnv","objList","uuidObjList","propList","uuidPropList","dependUuid","../platform/deserialize","../platform/deserialize-editor","36","__audioSupport","downloadDomAudio","dom","src","clearEvent","removeEventListener","success","failure","USE_LOADER_EVENT","readyState","37","downloadDomImage","img","Image","location","protocol","crossOrigin","loadCallback","errorCallback","38","downloadFile","xhr","errInfo","open","responseType","withCredentials","mimeType","overrideMimeType","timeout","header","setRequestHeader","onload","status","response","onprogress","lengthComputable","loaded","onerror","ontimeout","onabort","send","39","downloaded","downloadScript","loadHandler","removeChild","errorHandler","40","loadFont","_require4","urlAppendTimestamp","retry","REGEX","formatSupport","format","unsupported","downloadAudio","audioLoadMode","AudioClip","LoadMode","DOM_AUDIO","downloadArrayBuffer","WEB_AUDIO","downloadImage","imageBitmap","ALLOW_IMAGE_BITMAP","downloadBlob","onFileProgress","downloadJson","JSON","downloadText","downloadVideo","downloadBundle","version","_downloading","_queue","_queueDirty","_totalNum","_totalNumThisPeriod","_lastDate","_checkNextPeriod","updateTime","Date","_maxInterval","handleQueue","sort","nextOne","invoke","_remoteServerAddress","remoteServerAddress","appendTimeStamp","limited","retryInterval","mixin","downloaders","download","downloadCallbacks","finale","callbacks",".png",".jpg",".bmp",".jpeg",".gif",".ico",".tiff",".webp",".image",".pvr",".pkm",".mp3",".ogg",".wav",".m4a",".txt",".xml",".vsh",".fsh",".atlas",".tmx",".tsx",".json",".ExportJson",".plist",".fnt",".font",".eot",".ttf",".woff",".svg",".ttc",".mp4",".avi",".mov",".mpg",".mpeg",".rm",".rmvb",".binary",".bin",".dbbin",".skel",".js","_downloaders","../CCDebug","../platform/CCSys","../platform/utils","./download-dom-audio","./download-dom-image","./download-file","./download-script.js","./font-loader","41","_creating","createTexture","Texture2D","_nativeUrl","createAudioClip","createJsonAsset","JsonAsset","createTextAsset","TextAsset","text","createFont","TTFFont","createBufferAsset","BufferAsset","createAsset","createBundle","producers","creating","42","getDepends","firstTask","canInvoke","__exclude__","isNative","handle","__asyncLoadAssets__","isFinish","dispatch","decreaseRef","decRef","loadDepends","43","textUtils","_canvasContext","_testString","_fontFaces","_loadingFonts","_timeout","useNativeCheck","nativeCheck","FontFace","exec","safari10Match","vendor","_checkFontLoaded","allFontsLoaded","fontLoadHandle","fontFamily","fontFamilyName","oldWidth","refWidth","fontDesc","font","newWidth","safeMeasureText","clearInterval","nativeCheckFontLoaded","Promise","resolve","reject","check","fonts","timeoutId","race","fontLoader","_getFontFamily","labelCanvas","getContext","fontStyle","fontStr","textContent","preloadDiv","divStyle","innerHTML","fontHandle","ttfIndex","lastIndexOf","slashPos","substring","../utils/text-utils","44","_uuidRegex","matches","getUrlWithUuid","nativeExt","isScene","../utils/decode-uuid","45","./CCAssetManager","./deprecated","46","gatherAsset","setProperties","checkCircleReference","loadOneAssetPipeline","reload","_exclude$uuid","repeatItem","dependAsset","missingAsset","__onLoadInvoked__","47","_loading","isLoading","unpackJson","unpackJSONs","textureType","_getClassId","datas","split","packCustomObjData","unpackers","unpack","unpacker","48","plistParser","_parsing","parseImage","Blob","imageOptions","imageOrientation","__flipY__","premultiplyAlpha","__premultiplyAlpha__","createImageBitmap","parseAudio","ArrayBuffer","context","decodeAudioData","buffer","parsePVRTex","PVR_HEADER_LENGTH","PVR_MAGIC","PVR_HEADER_MAGIC","PVR_HEADER_FORMAT","PVR_HEADER_HEIGHT","PVR_HEADER_WIDTH","PVR_HEADER_MIPMAPCOUNT","PVR_HEADER_METADATA","Int32Array","dataOffset","pvrtcData","Uint8Array","_compressed","parsePKMTex","ETC_PKM_HEADER_SIZE","ETC_PKM_FORMAT_OFFSET","ETC_PKM_ENCODED_WIDTH_OFFSET","ETC_PKM_ENCODED_HEIGHT_OFFSET","ETC_PKM_WIDTH_OFFSET","ETC_PKM_HEIGHT_OFFSET","ETC1_RGB_NO_MIPMAPS","ETC2_RGB_NO_MIPMAPS","ETC2_RGBA_NO_MIPMAPS","readBEUint16","offset","encodedWidth","encodedHeight","etcData","parsePlist","parseImport","parsers","parsedAsset","parsing","parseHandler","import","../platform/CCSAXParser","49","_pipelineId","funcs","pipes","insert","_isFinish","pipe","_flow","50","subOptions","leftOptions","op","UUID","SCENE","source","51","visitAsset","visitComponent","getOwnPropertyNames","propName","_j","_val","_temp","visitNode","descendOpRef","refs","refCount","checkCircularReference","_persistNodeDeps","_toDelete","eventListener","freeAssets","_free","newScene","persistNodes","childs","dependencies","persistDeps","_asset","sceneDeps","_i3","_l2","../assets/CCAsset","52","MAX_DEAD_NUM","_deadPool","53","START_SCENE","54","_taskId","param1","param2","param3","param4","str","toUpperCase","55","stringify","__nativeName__","56","MissingObjectReporter","realEntries","_entry","packId","packedIds","folder","_uuid2","clearRef","wait","asyncLoadAssets","includeNative","_i4","_dep","_isScene","assetsMap","missingAssetReporter","reportByOwner","errs","isCallback","isValidType","checked","57","CCObject","writable","_ref","nativeUrl","_$nativeAsset","serialize","createNode","_setRawAsset","filename","inLibrary","../platform/CCObject","58","mixins","_audio","loadMode","_loadByUrl","audioClip","_ensureLoaded","uncache","../event/event-target","./CCAsset","59","FontLetterDefinition","offsetX","offsetY","textureID","valid","xAdvance","FontAtlas","texture","_letterDefinitions","_texture","addLetterDefinitions","letter","letterDefinition","cloneLetterDefinition","copyLetterDefinitions","getTexture","getLetter","getLetterDefinitionForChar","_char","hasKey","BitmapFont","Font","fntDataStr","SpriteFrame","fontSize","_fntConfig","_fontDefDictionary","fntConfig","fontDict","fontDefDictionary","fontDef","xOffset","yOffset","60","_buffer","bin","61","62","63","LabelAtlas","64","OptimizationPolicy","AUTO","SINGLE_INSTANCE","MULTI_INSTANCE","Prefab","_createFunction","_instantiatedTimes","optimizationPolicy","readonly","OptimizationPolicyThreshold","compileCreateFunction","jit","compile","_doInstantiate","rootToRedirect","useJit","CC_SUPPORT_JIT","PrefabUtils","../platform/instantiate-jit","65","_gfx","_interopRequireDefault","DepthStencilFormat","RB_FMT_D24S8","RB_FMT_S8","RB_FMT_D16","RenderTexture","_framebuffer","initWithSize","depthStencilFormat","visibleRect","_resetUnderlyingMipmaps","colors","_depthStencilBuffer","depthStencilBuffer","RenderBuffer","depthStencil","FrameBuffer","_packable","updateSize","rbo","_width","drawTextureAt","_image","updateSubImage","level","_premultiplyAlpha","readPixels","gl","oldFBO","getParameter","FRAMEBUFFER_BINDING","bindFramebuffer","FRAMEBUFFER","getHandle","RGBA","UNSIGNED_BYTE","../../renderer/gfx","../renderer","./CCTexture2D","66","67","Script","_Script","JavaScript","_JavaScript","TypeScript","_TypeScript","68","SpriteAtlas","_spriteFrames","getSpriteFrame","sf","getSpriteFrames","69","INSET_LEFT","INSET_TOP","INSET_RIGHT","INSET_BOTTOM","temp_uvs","_textureSetter","_refreshTexture","insetTop","_capInsets","_calculateSlicedUV","insetBottom","insetLeft","insetRight","rotated","originalSize","_rect","uv","_original","_offset","_originalSize","_rotated","_flipX","_flipY","vertices","uvSliced","setTexture","textureLoaded","onTextureLoaded","ensureLoadTexture","isRotated","setRotated","bRotated","_calculateUV","isFlipX","isFlipY","setFlipX","setFlipY","getRect","setRect","getOriginalSize","setOriginalSize","_textureLoadedCallback","_checkRect","setOffset","getOffset","offsets","maxX","maxY","_flipXY","uvs","tempVal","_tempVal","atlasWidth","atlasHeight","leftWidth","rightWidth","centerWidth","topHeight","bottomHeight","centerHeight","row","rowD","col","colD","_row","_rowD","_col","_colD","_setDynamicAtlasFrame","_resetDynamicAtlasFrame","texw","texh","_r","_tempVal2","nu","nv","_serialize","exporting","ctx","_textureFilename","Editor","Utils","UuidCache","urlToUuid","UuidUtils","compressUuid","dependsOn","triangles","atlas","_atlasUuid","capInsets","_deserialize","textureUuid","deleteSpriteFrame","copyWithZone","initWithTexture","70","_fontFamily","String","./CCFont","71","72","GL_NEAREST","GL_LINEAR","GL_REPEAT","GL_CLAMP_TO_EDGE","GL_MIRRORED_REPEAT","GL_RGBA","CHAR_CODE_0","CHAR_CODE_1","CUSTOM_PIXEL_FORMAT","PixelFormat","RGB565","TEXTURE_FMT_R5_G6_B5","RGB5A1","TEXTURE_FMT_R5_G5_B5_A1","RGBA4444","TEXTURE_FMT_R4_G4_B4_A4","RGB888","TEXTURE_FMT_RGB8","RGBA8888","TEXTURE_FMT_RGBA8","RGBA32F","TEXTURE_FMT_RGBA32F","A8","TEXTURE_FMT_A8","I8","TEXTURE_FMT_L8","AI8","TEXTURE_FMT_L8_A8","RGB_PVRTC_2BPPV1","TEXTURE_FMT_RGB_PVRTC_2BPPV1","RGBA_PVRTC_2BPPV1","TEXTURE_FMT_RGBA_PVRTC_2BPPV1","RGB_A_PVRTC_2BPPV1","RGB_PVRTC_4BPPV1","TEXTURE_FMT_RGB_PVRTC_4BPPV1","RGBA_PVRTC_4BPPV1","TEXTURE_FMT_RGBA_PVRTC_4BPPV1","RGB_A_PVRTC_4BPPV1","RGB_ETC1","TEXTURE_FMT_RGB_ETC1","RGBA_ETC1","RGB_ETC2","TEXTURE_FMT_RGB_ETC2","RGBA_ETC2","TEXTURE_FMT_RGBA_ETC2","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","Filter","LINEAR","NEAREST","FilterIndex","9728","9729","_images","_sharedOpts","minFilter","magFilter","wrapS","wrapT","genMipmaps","_getSharedOptions","initWithData","_format","initWithElement","_minFilter","_magFilter","_mipFilter","_wrapS","_wrapT","_isAlphaAtlas","_genMipmaps","packable","_FilterIndex","extnames","_parseExt","extIdStr","defaultFormat","extIds","defaultExt","bestExt","bestIndex","bestFormat","SupportTextureFormats","SUPPORT_TEXTURE_FORMATS","extFormat","tmpExt","tmpFormat","webp","_hashDirty","_hash","_multiMaterial","getImpl","getId","updateImg","mipFilter","ImageBitmap","_checkImageBitmap","_upload","complete","HTMLCanvasElement","handleLoadedTexture","pixelFormat","pixelsWidth","pixelsHeight","_getGFXPixelFormat","_updateFormat","_checkPackable","getHtmlElementObj","deleteAtlasTexture","unlinkMaterial","getPixelFormat","hasPremultipliedAlpha","isAlphaAtlas","HTMLImageElement","_clearImage","description","releaseTexture","setWrapMode","setFilters","setPremultiplyAlpha","premultiply","dynamicAtlas","_isCompressed","maxFrameSize","_getHash","Atlas","DEFAULT_HASH","_getOpts","anisotropy","_anisotropy","mipmapSources","extId","exportedExts","_exportedExts","exts","_extId","join","fields","linkMaterial","getMultiHandler","autoSetTexture","removeTexture","getLinkedMaterial","hasLinkedMaterial","../platform/CCClass","../platform/id-generater","73","./CCAudioClip","./CCBitmapFont","./CCBufferAsset","./CCJsonAsset","./CCLabelAtlas","./CCPrefab","./CCRenderTexture","./CCSceneAsset","./CCScripts","./CCSpriteAtlas","./CCSpriteFrame","./CCTTFFont","./CCTextAsset","./material","74","_CCAsset","_effectParser","_effect","techniques","shaders","lib","_programLib","define","_initEffect","parseEffect","freeze","getInstantiatedEffect","getEffect","../CCAsset","./effect-parser","75","Texture","textureUtil","gfx","BUILTIN_NAME","SPRITE","GRAY_SPRITE","UNLIT","Material","_manualHash","_dirty","_multiHandler","_defines","_effectAsset","_techniqueIndex","_techniqueData","effectName","effectAsset","updateMultiSupport","techniqueIndex","switchTechnique","getBuiltinMaterial","createWithBuiltin","setProperty","passIdx","directly","def","getDefine","getProperty","setCullMode","cullMode","CULL_BACK","setDepth","depthTest","depthWrite","depthFunc","DS_FUNC_LESS","setBlend","blendEq","blendSrc","blendDst","blendAlphaEq","blendSrcAlpha","blendDstAlpha","blendColor","BLEND_FUNC_ADD","BLEND_SRC_ALPHA","BLEND_ONE_MINUS_SRC_ALPHA","setStencilEnabled","stencilTest","STENCIL_INHERIT","setStencil","stencilFunc","stencilRef","stencilMask","stencilFailOp","stencilZFailOp","stencilZPassOp","stencilWriteMask","DS_FUNC_ALWAYS","STENCIL_OP_KEEP","updateHash","hash","getHash","passDatas","passData","defines","syncTextures","passes","technique","setMultiSupport","isMultiSupport","bool","MultiHandler","../../utils/texture-util","../CCTexture2D","./CCEffectAsset","76","_pass","_defineProperties","descriptor","enumerable","configurable","_createClass","Constructor","protoProps","staticProps","EffectBase","_dirtyCode","_technique","_proto","_createPassProp","pass","_properties","uniform","Float32Array","Float64Array","_setPassProperty","setStencilFront","setStencilBack","../../../renderer/core/pass","77","_types","_enums","getInvolvedProgram","programName","getTemplate","parseProperties","passJson","propertiesJson","program","uniformInfo","uniforms","_ret","propInfo","PARAM_TEXTURE_2D","PARAM_INT","PARAM_FLOAT","enums2default","passDefines","parseTechniques","techNum","tech","techName","passNum","passName","detailName","stage","newPass","rasterizerState","blendState","blend","depthStencilState","stencilFuncFront","stencilRefFront","stencilMaskFront","stencilFailOpFront","stencilZFailOpFront","stencilZPassOpFront","stencilWriteMaskFront","stencilFuncBack","stencilRefBack","stencilMaskBack","stencilFailOpBack","stencilZFailOpBack","stencilZPassOpBack","stencilWriteMaskBack","../../../renderer/core/technique","../../../renderer/enums","../../../renderer/types","./effect","78","_murmurhash2_gc","_utils","_effectBase","_inheritsLoose","subClass","superClass","_setPrototypeOf","setPrototypeOf","__proto__","EffectVariant","_EffectBase","_passes","_stagePasses","_effectDirtyCode","_onEffectChanged","variantPasses","stagePasses","variant","_stage","serializePasses","../../../renderer/murmurhash2_gc","./effect-base","./utils","79","Effect","_techniques","createNative","80","./CCMaterial","./material-variant","81","_pool","MaterialPool","_Pool","_len","_key","exampleMat","renderComponent","MaterialVariant","_owner","instance","serializeDefines","serializeTechniques","mat","maxSize","_clean","materialPool","../../utils/pool","82","_CCMaterial","_effectVariant","_materialPool","_dec","_class","ccclass","_decorator","_Material","materialName","_material","./effect-variant","./material-pool","83","serializePass","excludeProperties","_programName","_cullMode","_blend","_blendEq","_blendAlphaEq","_blendSrc","_blendDst","_blendSrcAlpha","_blendDstAlpha","_blendColor","_depthTest","_depthWrite","_depthFunc","_stencilTest","_stencilFuncFront","_stencilRefFront","_stencilMaskFront","_stencilFailOpFront","_stencilZFailOpFront","_stencilZPassOpFront","_stencilWriteMaskFront","_stencilFuncBack","_stencilRefBack","_stencilMaskBack","_stencilFailOpBack","_stencilZFailOpBack","_stencilZPassOpBack","_stencilWriteMaskBack","serializeUniforms","hashData","param","PARAM_TEXTURE_CUBE","84","TOP","MID","BOT","LEFT","CENTER","HORIZONTAL","VERTICAL","AlignMode","ONCE","ON_WINDOW_RESIZE","ALWAYS","getReadonlyNodeSize","computeInverseTransForTarget","widgetNode","out_inverseTranslate","out_inverseScale","translateX","translateY","tInverseTranslate","tInverseScale","ONE","align","widget","hasTarget","inverseTranslate","inverseScale","targetSize","targetAnchor","isRoot","anchor","_alignFlags","localLeft","localRight","targetWidth","_isAbsLeft","_left","_isAbsRight","isStretchWidth","isAlignHorizontalCenter","localHorizontalCenter","_isAbsHorizontalCenter","_horizontalCenter","targetCenter","isAlignLeft","localTop","localBottom","targetHeight","bottom","_isAbsBottom","_bottom","_isAbsTop","_top","isStretchHeight","isAlignVerticalCenter","localVerticalCenter","_isAbsVerticalCenter","_verticalCenter","targetMiddle","isAlignBottom","alignMode","widgetManager","activeWidgets","animationState","refreshScene","AnimUtils","EditMode","nowPreviewing","_component","_animation","isAligning","_activeWidgetsIterator","editingNode","adjustWidgetToAllowMovingInEditor","adjustWidgetToAllowResizingInEditor","updateAlignment","Widget","_AlignFlags","thisOnResized","onResized","refreshWidgetOnResized","../CCNode","85","_geomUtils","RendererCamera","_mat4_temp_1","_mat4_temp_2","_v3_temp_1","_v3_temp_2","_v3_temp_3","_cameras","updateMainCamera","minDepth","_depth","_debugCamera","repositionDebugCamera","getNode","ClearFlags","COLOR","DEPTH","STENCIL","StageFlags","OPAQUE","TRANSPARENT","Component","setStages","dirty","_camera","editor","_clearFlags","_backgroundColor","_zoomRatio","_targetTexture","_fov","_orthoSize","_nearClip","_farClip","_ortho","_renderStages","_alignWithScreen","zoomRatio","tooltip","fov","orthoSize","nearClip","_updateClippingpPlanes","farClip","ortho","_updateProjection","_updateRect","cullingMask","_updateCameraMask","clearFlags","setClearFlags","_updateBackgroundColor","setPriority","targetTexture","_updateTargetTexture","renderStages","_updateStages","alignWithScreen","_is3D","cameras","containsNode","_findRendererCamera","_setupDebugCamera","setFov","setNear","setFar","setColor","setNode","addCamera","setFrameBuffer","setType","flags","stages","_init","beforeDraw","__preload","onEnable","onDisable","removeCamera","getScreenToWorldMatrix2D","getWorldToScreenMatrix2D","_mat4_temp_1m","m12","m13","center","screenPosition","screenToWorld","getWorldToScreenPoint","worldPosition","worldToScreen","getRay","screenPos","geomUtils","Ray","fromPoints","rootNode","renderCamera","_onAlignWithScreen","RAD","atan","setOrthoHeight","getNodeToCameraTransform","getWorldToCameraMatrix","getCameraToWorldPoint","getWorldToCameraPoint","getCameraToWorldMatrix","../../renderer/scene/camera","../CCGame","../geom-utils","../renderer/index","../renderer/render-flow","../utils/affine-transform","../value-types","86","jsArray","IsStartCalled","IsOnEnableCalled","IsEditorOnEnableCalled","callerFunctor","callOnEnableInTryCatch","callOnDisableInTryCatch","sortedIndex","order","_executionOrder","testOrder","testId","stableRemoveInactive","flagToClear","removeAt","LifeCycleInvoker","__ctor__","invokeFunc","Iterator","_zero","_neg","_pos","_invoke","compareOrder","OneOffInvoker","cancelInactive","compsNeg","compsPos","ReusableInvoker","enableInEditor","engine","createInvokeImpl","indiePath","useDt","ensureFlag","fastPath","Function","invokeStart","invokeUpdate","invokeLateUpdate","startInvoker","updateInvoker","lateUpdateInvoker","_deferredComps","_updating","invokeOnEnable","compScheduler","deactivatedDuringOnEnable","_onEnabled","_scheduleImmediate","_onDisabled","lateUpdate","enableComp","invoker","disableComp","_deferredSchedule","_startForNewComps","./platform/CCClass","./utils/misc","87","equalClips","clip1","clip2","PLAY","STOP","PAUSE","RESUME","LASTFRAME","FINISHED","Animation","_animator","_nameToState","_didInit","_currentClip","_defaultClip","defaultClip","contain","currentClip","_writableClips","_clips","playOnLoad","isPlaying","getAnimationState","onDestroy","getClips","playAdditive","enabledInHierarchy","setCurrentTime","addClip","newName","contains","oldState","newState","removeClip","filter","_EventTargetOn","states","_EventTargetOff","_createStates","defaultClipState","../../animation/animation-animator","../../animation/animation-clip","./CCComponent","88","BlockEvents","BlockInputEvents","menu","inspector","help","89","GraySpriteState","Transition","State","NORMAL","HOVER","PRESSED","DISABLED","Button","_pressed","_hovered","_fromColor","_toColor","_time","_transitionFinished","_fromScale","_toScale","_originalScale","_graySpriteMaterial","_spriteMaterial","_sprite","interactable","notify","_updateState","_resetState","animatable","_resizeToTarget","_resizeNodeToTargetNode","enableAutoGrayEffect","_updateDisabledState","transition","_updateTransition","normalColor","displayName","_getButtonState","_getTarget","pressedColor","hoverColor","disabledColor","zoomScale","normalSprite","pressedSprite","hoverSprite","disabledSprite","_applyTarget","_unregisterTargetEvent","clickEvents","EventHandler","originalScale","_setTargetColor","_registerNodeEvent","_unregisterNodeEvent","_onTargetSpriteFrameChanged","_setCurrentStateSprite","_onTargetColorChanged","_setCurrentStateColor","_onTargetScaleChanged","cloneColor","_getStateColor","_getStateSprite","_onTouchBegan","_onTouchMove","_onTouchEnded","_onTouchCancel","_onMouseMoveIn","_onMouseMoveOut","_registerTargetEvent","_getTargetSprite","sprite","Sprite","_applyTransition","emitEvents","_updateColorTransitionImmediately","_updateColorTransition","_updateSpriteTransition","_updateScaleTransition","_zoomUp","_zoomBack","oldTransition","useGrayMaterial","_switchGrayMaterial","../utils/gray-sprite-state","90","resetWidgetComponent","addComponent","isAlignTop","isAlignRight","Canvas","resetInEditor","_designResolution","designResolution","applySettings","_fitWidth","_fitHeight","fitHeight","fitWidth","_fitDesignResolution","cameraNode","setSiblingIndex","ResolutionPolicy","policy","SHOW_ALL","FIXED_WIDTH","FIXED_HEIGHT","NO_BORDER","designRes","setDesignResolutionSize","../camera/CCCamera","91","IsOnLoadCalled","getClassName","trimLeft","__scriptAsset","_isOnLoadCalled","onFocusInEditor","onLostFocusInEditor","typeOrClassName","getComponents","getComponentInChildren","_getLocalBounds","unscheduleAllCallbacks","eventTargets","destroyComp","_removeComponent","cloned","instantiate","_clone","scheduleOnce","callback_fn","_requireComponent","cls","reqComp","requireComponent","executionOrder","_disallowMultiple","willExecuteInEditMode","__scriptUuid","92","_componentId","_componentName","_genCompIdIfNeeded","_compId2Name","_compName2Id","customEventData","compType","getClassByName","compId","93","LabelFrame","BlendFunc","deleteFromDynamicAtlas","HorizontalAlign","TextAlignment","VerticalAlign","VerticalTextAlignment","Overflow","CLAMP","SHRINK","RESIZE_HEIGHT","CacheMode","BITMAP","CHAR","BOLD_FLAG","ITALIC_FLAG","UNDERLINE_FLAG","Label","_actualFontSize","_assemblerData","_frame","_ttfTexture","_letterTexture","_updateMaterial","_updateMaterialCanvas","_updateMaterialWebgl","_string","string","setVertsDirty","_checkStringEmpty","multiline","horizontalAlign","verticalAlign","actualFontSize","_fontSize","_lineHeight","lineHeight","overflow","_enableWrapText","enableWrapText","_N$file","_isSystemFontUsed","_forceUpdateRenderData","useSystemFont","markForValidate","_bmFontOriginalSize","_spacingX","spacingX","_batchAsBitmap","cacheMode","_materials","_shareAtlas","setMaterial","_getDefaultMaterial","_styleFlags","enableBold","enableItalic","enableUnderline","_underlineHeight","underlineHeight","autoSwitchMaterial","EnableType","GLOBAL","allowDynamicAtlas","enableRetina","clearCharCache","clearAllCache","_nodeSizeChanged","_nodeColorChanged","_assembler","_resetAssemblerData","_resetFrame","_updateColor","_srcBlendFactor","BlendFactor","SRC_ALPHA","FLAG_OPACITY","_validateRender","disableRender","_resetAssembler","markForRender","_applyFontTexture","_onBMFontTextureLoaded","updateRenderData","_onBlendChanged","_nativeTTF","_getAssemblerData","getMaterial","_updateTTFMaterial","isMultiMaterial","_texIdDirty","isMulti","_forceUseCanvas","_useNativeTTF","ENABLE_NATIVE_TTF_RENDERER","_enableBold","_enableItalics","_enableUnderline","../assets/material/CCMaterial","../platform/CCMacro","../renderer/utils/label/label-frame","../renderer/utils/utils","../utils/blend-func","./CCRenderComponent","94","LabelOutline","_updateRenderData","label","95","LabelShadow","_blur","blur","96","NodeEvent","Type","GRID","ResizeMode","CONTAINER","CHILDREN","AxisDirection","VerticalDirection","BOTTOM_TO_TOP","TOP_TO_BOTTOM","HorizontalDirection","LEFT_TO_RIGHT","RIGHT_TO_LEFT","Layout","_layoutSize","_layoutDirty","_resize","_N$layoutType","reLayouted","_doLayoutDirty","resizeMode","cellSize","startAxis","paddingLeft","paddingRight","paddingTop","paddingBottom","spacingY","verticalDirection","horizontalDirection","affectedByScale","_addEventListeners","_removeEventListeners","_doScaleDirty","updateLayout","_resized","_childAdded","_childRemoved","_addChildrenEventListeners","_removeChildrenEventListeners","_doLayoutHorizontally","baseWidth","rowBreak","fnPositionY","applyChildren","layoutAnchor","sign","paddingX","leftBoundaryOfLayout","nextX","rowMaxHeight","tempMaxHeight","secondMaxHeight","containerResizeBoundary","maxHeightChildAnchorY","activeChildCount","newChildWidth","childScaleX","_getUsedScaleValue","childScaleY","childBoundingBoxWidth","childBoundingBoxHeight","rightBoundaryOfChild","rowBreakBoundary","leftToRightRowBreak","rightToLeftRowBreak","finalPositionY","signX","tempFinalPositionY","topMarign","_getVerticalBaseHeight","newHeight","_doLayoutVertically","baseHeight","columnBreak","fnPositionX","paddingY","bottomBoundaryOfLayout","nextY","columnMaxWidth","tempMaxWidth","secondMaxWidth","column","maxWidthChildAnchorX","newChildHeight","topBoundaryOfChild","columnBreakBoundary","bottomToTopColumnBreak","topToBottomColumnBreak","finalPositionX","tempFinalPositionX","rightMarign","_doLayoutBasic","allChildrenBoundingBox","leftBottomSpace","rightTopSpace","xMax","yMax","newSize","toFixed","newAnchorX","newAnchorY","_doLayoutGridAxisHorizontal","layoutSize","topOffset","boundary","_doLayoutGridAxisVertical","leftOffset","_doLayoutGrid","_getHorizontalBaseWidth","_doLayout","97","_mat","_vec","_materialVariant","Graphics","_vec2_temp","_circlepoints","_calculateCircle","radius","segements","anglePerStep","MaskType","RECT","ELLIPSE","IMAGE_STENCIL","SEGEMENTS_MIN","SEGEMENTS_MAX","_graphics","_enableMaterial","_exitMaterial","_clearMaterial","_spriteFrame","_type","alphaThreshold","_updateGraphics","_activateMaterial","lastSprite","slide","inverted","Boolean","_segments","FLAG_POST_RENDER","_removeGraphics","_createGraphics","STENCIL_DISABLE","Assembler","lineWidth","strokeColor","graphics","lineTo","stroke","fill","rx","ry","px","py","enable","FLAG_RENDER","FLAG_UPDATE_RENDER_DATA","../assets/material/material-variant","../graphics/graphics","../utils/misc","../value-types/mat4","../value-types/vec2","98","MotionStreak","preview","_fadeTime","fadeTime","_minSeg","minSeg","_stroke","_checkSwitchMaterial","_fastMode","fastMode","checkAndSwitchMaterial","_updateMultiTexId","updateTexId","_renderData","../../core/utils/blend-func","../components/CCRenderComponent","99","_temp_color","ENABLE","DISABLE","materials","_vertsDirty","_texId","assembler","registerValidate","instantiated","getMaterials","updateColor","srcBlendFactor","_checkBacth","_flush","_dummyNode","multi","spTexture","nSpTexture","same","isChanged","texId","getIndex","../renderer/assembler","100","HtmlTextParser","_htmlTextParser","RichTextChildName","RichTextChildImageName","debounce","immediate","later","callNow","Pool","outline","richtext","labelNode","_get","labelComponent","RichText","_textArray","_labelSegments","_labelSegmentsCache","_linesWidth","_updateRichTextStatus","_updateRichText","_onTTFLoaded","maxWidth","imageAtlas","handleTouchEvent","customMaterial","spriteComponent","_labelComponent","_labelComponent2","_labelComponent3","_labelComponent4","_activateChildren","_onColorChanged","parentColor","childNode","_updateLabelSegmentTextAttributes","_applyTextAttribute","_createFontLabel","_measureText","styleIndex","_styleIndex","labelSize","labelSegment","clickHandler","_clickHandler","clickParam","_clickParam","_containsTouchLocation","myRect","_lineOffsetX","_lineCount","_labelWidth","_labelHeight","_addLabelSegment","stringToken","_updateRichTextWithMaxWidth","labelString","labelWidth","fragmentWidth","checkStartIndex","checkEndIndex","_getFirstWordLen","checkString","checkStringWidth","remainingString","_updateLineInfo","fragments","fragmentText","splitString","_isLastComponentCR","_needsUpdateTextLayout","newTextArray","oldItem","newItem","oldStyle","newStyle","italic","isImage","imageAlign","imageHeight","imageWidth","imageOffset","_addRichTextImageElement","richTextElement","spriteFrameName","spriteNode","_imageOffset","SLICED","sizeMode","SizeMode","CUSTOM","spriteRect","scaleFactor","spriteWidth","spriteHeight","expectWidth","expectHeight","click","lastEmptyLine","newline","multilineTexts","BASELINE_RATIO","_updateRichTextPosition","startIndex","textLen","character","charAt","isUnicodeCJK","isUnicodeSpace","nextTokenX","nextLineIndex","totalLineCount","lineCount","lineOffsetX","lineHeightSet","lineHeightReal","isInteger","_offsetY","_convertLiteralColorValue","colorValue","fromHEX","textStyle","isAsset","bold","enableItalics","underline","labelOutlineComponent","../utils/html-text-parser","101","GETTINGSHORTERFACTOR","Direction","Scrollbar","_scrollView","_touching","_autoHideRemainingTime","_onScroll","enableAutoHide","autoHideTime","setTargetScrollView","scrollView","_convertToScrollViewSpace","scrollViewNode","worldSpacePos","scrollViewSpacePos","_setOpacity","outOfBoundary","scrollViewSize","handleNodeSize","_conditionalDisableScrollBar","contentMeasure","scrollViewMeasure","outOfBoundaryValue","contentPosition","handleNodeMeasure","_calculateLength","_calculatePosition","_updateLength","_updateHanlderPosition","_fixupHandlerPosition","barSize","barAnchor","handleSize","handleParent","leftBottomWorldPosition","fixupPosition","denominatorValue","lengthRation","actualLenth","positionRatio","clamp01","handleNode","_processAutoHide","deltaTime","102","NUMBER_OF_GATHERED_TOUCHES_FOR_MOVE_SPEED","OUT_OF_BOUNDARY_BREAKING_FACTOR","MOVEMENT_FACTOR","_tempPoint","_tempPrevPoint","quintEaseOut","getTimeInMilliseconds","currentTime","getMilliseconds","SCROLL_TO_TOP","SCROLL_TO_BOTTOM","SCROLL_TO_LEFT","SCROLL_TO_RIGHT","SCROLLING","BOUNCE_TOP","BOUNCE_BOTTOM","BOUNCE_LEFT","BOUNCE_RIGHT","SCROLL_ENDED","TOUCH_UP","AUTOSCROLL_ENDED_WITH_THRESHOLD","SCROLL_BEGAN","eventMap","scroll-to-top","scroll-to-bottom","scroll-to-left","scroll-to-right","scrolling","bounce-bottom","bounce-left","bounce-right","bounce-top","scroll-ended","touch-up","scroll-ended-with-threshold","scroll-began","ScrollView","_topBoundary","_bottomBoundary","_leftBoundary","_rightBoundary","_touchMoveDisplacements","_touchMoveTimeDeltas","_touchMovePreviousTimestamp","_touchMoved","_autoScrolling","_autoScrollAttenuate","_autoScrollStartPosition","_autoScrollTargetDelta","_autoScrollTotalTime","_autoScrollAccumulatedTime","_autoScrollCurrentlyOutOfBoundary","_autoScrollBraking","_autoScrollBrakingStartPosition","_outOfBoundaryAmount","_outOfBoundaryAmountDirty","_stopMouseWheel","_mouseWheelEventElapsedTime","_isScrollEndedWithThresholdEventFired","_scrollEventEmitMask","_isBouncing","_scrolling","_calculateBoundary","horizontal","vertical","inertia","brake","elastic","bounceDuration","horizontalScrollBar","_updateScrollBar","verticalScrollBar","scrollEvents","cancelInnerEvents","_view","scrollToBottom","timeInSecond","attenuated","moveDelta","_calculateMovePercentDelta","applyToHorizontal","applyToVertical","_startAutoScroll","_moveContent","scrollToTop","scrollToLeft","scrollToRight","scrollToTopLeft","scrollToTopRight","scrollToBottomLeft","scrollToBottomRight","scrollToOffset","maxScrollOffset","getMaxScrollOffset","scrollTo","getScrollOffset","topDelta","_getContentTopBoundary","leftDeta","_getContentLeftBoundary","viewSize","horizontalMaximizeOffset","verticalMaximizeOffset","scrollToPercentHorizontal","scrollToPercentVertical","stopAutoScroll","setContentPosition","fuzzyEquals","getContentPosition","isScrolling","isAutoScrolling","_registerEvent","_onTouchMoved","_onTouchCancelled","_onMouseWheel","_unregisterEvent","captureListeners","_hasNestedViewGroup","deltaMove","wheelPrecision","os","OS_WINDOWS","browserType","BROWSER_TYPE_FIREFOX","getScrollY","_processDeltaMove","_handlePressLogic","_checkMouseWheel","_stopPropagationIfTargetIsMe","currentOutOfBoundary","_getHowMuchOutOfBoundary","maxElapsedTime","_processInertiaScroll","_dispatchEvent","_onScrollBarTouchEnded","scrollSize","bottomDeta","_getContentBottomBoundary","totalScrollDelta","_moveContentToTopLeft","_updateScrollBarState","_adjustContentOutOfBoundary","layout","CAPTURING_PHASE","ViewGroup","AT_TARGET","_handleMoveLogic","getStartLocation","cancelEvent","EventTouch","getTouches","simulate","_handleReleaseLogic","_scrollChildren","_gatherTouchMove","_getLocalAxisAlignDelta","getPreviousLocation","_clampDelta","realMove","scrollEventType","icBottomPos","icTopPos","icRightPos","icLeftPos","_onScrollBarTouchBegan","shift","timeStamp","_startBounceBackIfNeeded","bounceBackAmount","bounceBackTime","bounceBackStarted","touchMoveVelocity","_calculateTouchMoveVelocity","_startInertiaScroll","_isOutOfBoundary","_isNecessaryAutoScrollBrake","getScrollEndedEventTiming","_processAutoScrolling","isAutoScrollBrake","brakingFactor","percentage","newPosition","reachedEnd","fireEvent","brakeOffsetPosition","inertiaTotalMovement","_startAttenuatingAutoScroll","_calculateAttenuatedFactor","initialVelocity","_calculateAutoScrollTimeByInitalSpeed","targetDelta","scrollviewSize","totalMoveWidth","totalMoveHeight","attenuatedFactorX","attenuatedFactorY","originalMoveLength","factor","initalSpeed","adjustedDeltaMove","_flattenVectorByDirection","totalTime","reduce","totalMovement","canStartBounceBack","adjustedMove","contentPos","_getContentRightBoundary","addition","outOfBoundaryAmount","_hideScrollbar","./CCViewGroup","103","Horizontal","Vertical","Slider","_touchHandle","_dragging","_updateHandlePosition","slideEvents","_onHandleDragStart","_handleSliderLogic","_updateProgress","_emitSlideEvent","localTouchPos","handlelocalPos","104","SpriteType","SIMPLE","TILED","FILLED","MESH","FillType","RADIAL","TRIMMED","RAW","GRAY","_sizeMode","_fillType","_fillCenter","_fillStart","_fillRange","_isTrimmedMode","_atlas","_applySpriteFrame","fillType","fillCenter","fillStart","fillRange","trim","_applySpriteSize","setVisible","setState","getState","_applyAtlas","oldFrame","oldTexture","newTexture","105","Toggle","_N$isChecked","isChecked","toggleGroup","_toggleContainer","allowSwitchOff","_updateCheckMark","updateToggles","_triggerEventInScript_isChecked","_emitToggleEvents","checkMark","checkEvents","_triggerEventInScript_check","_registerToggleEvent","addToggle","_unregisterToggleEvent","removeToggle","_hideCheckMark","toggle","uncheck","ToggleContainer","./CCButton","./CCToggleGroup","106","toggleItems","_allowOnlyOneToggleChecked","_makeAtLeastOneToggleChecked","107","ToggleGroup","_toggleItems","showed","108","109","WidgetManager","AlignFlags","TOP_BOT","LEFT_RIGHT","_setAlign","horizontalCenter","verticalCenter","isAbsoluteHorizontalCenter","isAbsoluteVerticalCenter","isAbsoluteTop","isAbsoluteBottom","isAbsoluteLeft","isAbsoluteRight","_wasAlignOnce","_originalWidth","_originalHeight","_validateTargetInDEV","isAlign","isHorizontal","../base-ui/CCWidgetManager","110","SubContextView","WXSubContextView","SwanSubContextView","./CCAnimation","./CCAudioSource","./CCBlockInputEvents","./CCCanvas","./CCComponentEventHandler","./CCLabel","./CCLabelOutline","./CCLabelShadow","./CCLayout","./CCMask","./CCMotionStreak","./CCPageView","./CCPageViewIndicator","./CCProgressBar","./CCRichText","./CCSafeArea","./CCScrollBar","./CCScrollView","./CCSlider","./CCSprite","./CCToggle","./CCToggleContainer","./CCWidget","./SubContextView","./editbox/CCEditBox","./missing-script","111","MissingScript","compiled","_$erialized","reportMissingClass","112","EventMouse","eventType","_eventType","_button","_prevX","_prevY","_scrollX","_scrollY","setScrollData","scrollX","scrollY","getScrollX","setLocation","getLocationInView","_designResolutionSize","_setPrevCursor","getDelta","getDeltaX","getDeltaY","setButton","button","getButton","getLocationX","getLocationY","DOWN","MOVE","SCROLL","BUTTON_LEFT","BUTTON_RIGHT","BUTTON_MIDDLE","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","touchArr","TOUCH","_eventCode","_touches","currentTouch","getEventCode","_setEventCode","eventCode","_setTouches","touches","setTouchInfo","getID","MAX_TOUCHES","BEGAN","MOVED","ENDED","CANCELED","EventAcceleration","acc","ACCELERATION","EventKeyboard","keyCode","isPressed","KEYBOARD","../event/event","113","listenerID","_onEvent","_listenerID","_registered","_fixedPriority","_node","_isEnabled","_setPaused","_setRegistered","registered","_isRegistered","_getType","_getListenerID","_setFixedPriority","fixedPriority","_getFixedPriority","_setSceneGraphPriority","_getSceneGraphPriority","checkAvailable","isEnabled","UNKNOWN","TOUCH_ALL_AT_ONCE","ListenerID","Custom","listenerId","_onCustomEvent","Mouse","TouchOneByOne","_claimedTouches","setSwallowTouches","needSwallow","isSwallowTouches","TouchAllAtOnce","onTouchesBegan","onTouchesMoved","onTouchesEnded","onTouchesCancelled","Acceleration","_onAccelerationEvent","Keyboard","onKeyPressed","onKeyReleased","argObj","listenerType","eventName","114","_EventListenerVector","_fixedListeners","_sceneGraphListeners","gt0Index","empty","clearSceneGraphListeners","clearFixedListeners","getFixedPriorityListeners","getSceneGraphPriorityListeners","__getListenerID","DIRTY_NONE","DIRTY_FIXED_PRIORITY","DIRTY_SCENE_GRAPH_PRIORITY","DIRTY_ALL","_listenersMap","_priorityDirtyFlagMap","_nodeListenersMap","_toAddedListeners","_toRemovedListeners","_dirtyListeners","_inDispatch","_currentTouch","_currentTouchListener","_internalCustomListenerIDs","selListeners","selListener","childrenCount","_BaseNode","_addListener","_forceAddEventListener","_setDirty","_associateNodeAndEventListener","_getListeners","_updateDirtyFlagForSceneGraph","locDirtyListeners","selKey","_removeAllListenersInVector","listenerVector","_dissociateNodeAndEventListener","_removeListenersForListenerID","fixedPriorityListeners","sceneGraphPriorityListeners","locToAddedListeners","_sortEventListeners","locFlagMap","_sortListenersOfFixedPriority","rootEntity","_sortListenersOfSceneGraphPriority","sceneGraphListener","_sortEventListenersOfSceneGraphPriorityDes","l1","node1","node2","ex","fixedListeners","_sortListenersOfFixedPriorityAsc","_onUpdateListeners","idx","toRemovedListeners","locListenersMap","locPriorityDirtyFlagMap","_cleanToRemovedListeners","_updateTouchListeners","locInDispatch","_onTouchEventCallback","argsObj","selTouch","isClaimed","removedIdx","getCode","ENABLE_MULTI_TOUCH","_clearCurTouch","isStopped","needsMutableSet","_dispatchTouchEvent","oneByOneListeners","allAtOnceListeners","originalTouches","mutableTouches","oneByOneArgsObj","_dispatchEventToListeners","_onTouchesEventCallback","callbackParams","onEvent","eventOrArgs","shouldStopPropagation","locDirtyFlagMap","_sortNumberAsc","nodeOrPriority","addCustomListener","isFound","locListener","_removeListenerInVector","_removeListenerInCallback","listenersCopy","removeCustomListeners","customEventName","removeAllListeners","locListeners","locInternalCustomEventIDs","getType","_onListenerCallback","dispatchCustomEvent","optionalUserData","ev","EventCustom","setUserData","./CCEventListener","115","Touch","_lastModified","_point","_prevPoint","_startPoint","getPreviousLocationInView","getStartLocationInView","_startPointCaptured","_convertPointWithScale","_setPoint","_setPrevPoint","116","./CCEvent","./CCEventManager","./CCTouch","117","CallbacksInvoker","EventListeners","_callbackTable","rootInvoker","isInvoking","callbackInfos","containCanceled","purgeCanceled","../platform/callbacks-invoker","118","__on","__off","119","unuse","NO_TYPE","reuse","stopPropagationImmediate","getCurrentTarget","BUBBLING_PHASE","detail","getUserData","getEventName","_eventPool","120","./event","./event-listeners","./event-target","./system-event","121","inputManger","KEY_DOWN","KEY_UP","DEVICEMOTION","keyboardListener","accelerationListener","SystemEvent","setAccelerometerEnabled","isEnable","DeviceMotionEvent","requestPermission","setAccelerometerInterval","systemEvent","hasKeyDownEventListener","hasKeyUpEventListener","../event-manager","../platform/CCInputManager","122","LineCap","LineJoin","_impl","_Impl","_lineWidth","_strokeColor","BLACK","_lineJoin","MITER","_lineCap","BUTT","_fillColor","_miterLimit","lineJoin","lineCap","fillColor","miterLimit","glExtension","bezierCurveTo","c2x","c2y","quadraticCurveTo","cx","cy","arc","endAngle","counterclockwise","ellipse","circle","roundRect","fillRect","clean","Helper","123","PointFlags","KAPPA90","da","hda","kappa","dx","dy","tanx","tany","ptanx","ptany","ndivs","tesselateBezier","y3","x4","y4","x12","y12","x23","y23","x34","y34","x123","y123","x234","y234","x1234","y1234","d3","_tessTol","_addPoint","PT_BEVEL","124","./graphics","125","ROUND","SQUARE","BEVEL","PT_CORNER","PT_LEFT","PT_INNERBEVEL","126","./3d","./CCPrivateNode","./CCScene","./assets","./base-ui/CCWidgetManager","./camera/CCCamera","./collider","./collider/CCIntersection","./components","./geom-utils","./mesh","./physics","./platform","./sp","127","CompScheduler","IsPreloadStarted","IsOnLoadStarted","Deactivating","callPreloadInTryCatch","callOnLoadInTryCatch","callOnDestroyInTryCatch","callOnFocusInTryCatch","callOnLostFocusInTryCatch","UnsortedInvoker","invokePreload","invokeOnLoad","activateTasksPool","getActivateTask","_componentCorrupted","_onLoadInEditor","focused","Selection","curActivate","_Scene","AssetsWatcher","_activatingStack","_activateNodeRecursively","preloadInvoker","onLoadInvoker","onEnableInvoker","originCount","activateComp","_deactivateNodeRecursively","lastTask","deactivatedOnLoading","resetComp","128","_isPlainEmptyObj_DEV","isPlainEmptyObj_DEV","_cloneable_DEV","cloneable_DEV","Attr","DELIMETER","BUILTIN_ENTRIES","INVALID_STATICS_DEV","pushUnique","deferredInitializer","declareProperties","$super","appendProp","__props__","defineProp","es6","defaultValue","setClassAttr","parseAttributes","defineGetSet","getter","setter","setterUndefined","getDefault","defaultVal","mixinWithInherited","dest","getPropertyDescriptor","doDefine","baseClass","shouldAddProtoCtor","__es6__","__ES6__","ctorToUse","ctors","fireClass","_getAllCtors","_createCtor","CCClass","_isCCClass","getClassAttrs","__initProps__","compileProps","setClassName","_RF","peek","_setClassId","normalizeClassName_DEV","DefaultName","getNewValueTypeCodeJit","clsName","propVal","escapeForJS","getInitPropsJit","attrs","F","attrKey","statement","IDENTIFIER_RE","expression","ValueType","initProps","getInitProps","simpleEnd","valueTypeEnd","simples","valueTypes","advanceds","totalLength","actualClass","superCallBounded","boundSuperCalls","ctorName","ctorLen","useTryCatch","SNIPPET","_validateCtor_DEV","originCtor","getCtors","__ctors__","baseOrMixins","baseOrMixin","baseCtors","SuperCallReg","xyz","SuperCallRegStrict","hasSuperCall","superFunc","preprocessAttrs","__values__","_sealed","some","staticPropName","validateMethodWithProps","_registerEditorProps","_fastDefine","serializableFields","attr","getInheritanceChain","klass","chain","getSuper","PrimitiveTypes","onAfterProps_ET","attributes","usedInGetter","ERR_Type","propNamePrefix","initAttrs","primitiveType","_short","getTypeChecker_ET","ScriptUuid","ScriptAsset","isEnum","getList","getObjTypeChecker_ET","parseSimpleAttr","attrName","expectType","startsWithUS","fastDefine","getNewValueTypeCode","./CCEnum","./attribute","./js","./preprocess-class","./requiring-frame","129","Preprocess","CACHE_KEY","fNOP","getSubDict","checkCtorArgument","decorate","_checkNormalArgument","validator_DEV","decoratorName","checkCompArgument","_argumentChecker","checkStringArgument","checkNumberArgument","getClassCache","getDefaultFromInitializer","initializer","extractActualDefaultValues","dummyObj","genProperty","fullOptions","isGetset","getFullFormOfProperty","existsProperty","errorProps","isDefaultValueSpecified","actualDefaultValues","decoratedProto","propNames","property","ctorProtoOrOptions","normalized","ctorProto","ccclassProto","createEditorDecorator","argCheckFunc","editorPropName","staticValue","decoratedValue","createDummyDecorator","executeInEditMode","disallowMultiple","playOnFocus","icon","./CCClass","130","reverseKey","enumType","enumDef","__enums__","enums","_TestEnum","131","PORTRAIT","LANDSCAPE_LEFT","PORTRAIT_UPSIDE_DOWN","LANDSCAPE_RIGHT","_didAccelerateFun","timestamp","_accelEnabled","_registerAccelerometerEvent","_accelCurTime","_unregisterAccelerometerEvent","_accelInterval","_registerKeyboardEvent","preventDefault","_acceleration","_accelDeviceEvent","DeviceOrientationEvent","BROWSER_TYPE_MOBILE_QQ","_deviceEventType","ua","BROWSER_TYPE_UC","_minus","didAccelerate","mAcceleration","eventAcceleration","_accelMinus","tmpX","orientation","OS_ANDROID","./CCInputManager","132","TOUCH_TIMEOUT","_vec2","_mousePressed","_isRegisterEvent","_preTouchPoint","_prevMousePoint","_preTouchPool","_preTouchPoolPointer","_touchesIntegerDict","_indexBitsUsed","_maxTouches","_canvasBoundingRect","adjustedLeft","adjustedTop","_getUnUsedIndex","_removeUsedIndexBit","_glView","_updateCanvasBoundingRect","canvasBoundingRect","docElem","handleTouchesBegin","curTouch","touchID","handleTouches","locTouchIntDict","unusedIndex","_convertTouchesWithScale","handleTouchesMove","locTouches","handleTouchesEnd","getSetOfTouchesEndOrCancel","handleTouchesCancel","locTouchesIntDict","getPreTouch","preTouch","locPreTouchPool","setPreTouch","getTouchByXY","tx","ty","locPreTouch","convertToLocationInView","getMouseEvent","locPreMouse","_convertMouseToLocationInView","getPointByEvent","BROWSER_TYPE_QQ","BROWSER_TYPE_SAFARI","pageX","pageY","scrollLeft","clientX","clientY","getTouchesByEvent","locView","touch_event","preLocation","changedTouches","identifier","selfPointer","prohibition","isMobile","supportMouse","supportTouches","_mouseEventsOnElement","focus","wheelDelta","msPointerEnabled","_pointerEventsMap","MSPointerDown","MSPointerMove","MSPointerUp","MSPointerCancel","_touchEventsMap","touchstart","touchesToHandle","touchmove","touchend","touchcancel","registerTouchEvent","_eventName","./CCMacro","./CCSys","133","DEG","SRC_ALPHA_SATURATE","SRC_COLOR","DST_ALPHA","DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ORIENTATION_PORTRAIT","ORIENTATION_LANDSCAPE","ORIENTATION_AUTO","DENSITYDPI_DEVICE","DENSITYDPI_HIGH","DENSITYDPI_MEDIUM","DENSITYDPI_LOW","FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX","DIRECTOR_STATS_POSITION","BATCH_VERTEX_COUNT","ENABLE_TILEDMAP_CULLING","ENABLE_CULLING","SHOW_MESH_WIREFRAME","SHOW_MESH_NORMAL","KEY","none","back","backspace","tab","enter","ctrl","alt","capslock","escape","space","pageup","pagedown","home","down","select","Delete","0","f","num0","num1","num2","num3","num4","num5","num6","num7","num8","num9","*","+","-","numdel","/","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","numlock","scrolllock",";","semicolon","equal","=",",","comma","dash",".","forwardslash","grave","[","openbracket","backslash","]","closebracket","quote","dpadLeft","dpadRight","dpadUp","dpadDown","dpadCenter","ImageFormat","JPG","PNG","TIFF","WEBP","PVR","ETC","S3TC","ATITC","TGA","RAWDATA","BOTTOM","134","Destroyed","RealDestroyed","ToDestroy","DontSave","EditorOnly","Dirty","DontDestroy","LockedInEditor","IsRotationLocked","IsScaleLocked","IsAnchorLocked","IsSizeLocked","IsPositionLocked","PersistentMask","objectsToDestroy","deferredDestroy","deleteCount","deferredDestroyTimer","compileDestruct","shouldSkipId","idToSkip","propsToReset","_destruct","__destruct__","strictMode","135","SAXParser","DOMParser","_isSupportDOMParser","_parser","xmlTxt","_parseXML","textxml","xmlDoc","parseFromString","ActiveXObject","loadXML","PlistParser","plist","childNodes","nodeType","_parseNode","_parseDict","_parseArray","firstChild","nodeValue","saxParser","136","screen","_supportsFullScreen","_onfullscreenchange","_onfullscreenerror","_preOnFullScreenChange","_preOnFullScreenError","_preOnTouch","_touchEvent","_fn","_fnMap","valL","requestFullscreen","fullScreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","requestFullScreen","onFullScreenChange","onFullScreenError","toLowerCase","OS_IOS","isBrowser","webkitEnterFullscreen","fullscreenchange","fullscreenerror","requestPromise","exitFullScreen","webkitExitFullscreen","exitFullscreen","autoFullScreen","_ensureFullScreen","disableAutoFullScreen","touchTarget","touchEventName","fullScreenErrorEventName","onTouch","137","settingPlatform","_CCSettings","platform","isVivoGame","isOppoGame","isHuaweiGame","isJKWGame","isQttGame","isLinkSure","_global","global","initSys","LANGUAGE_ENGLISH","LANGUAGE_CHINESE","LANGUAGE_FRENCH","LANGUAGE_ITALIAN","LANGUAGE_GERMAN","LANGUAGE_SPANISH","LANGUAGE_DUTCH","LANGUAGE_RUSSIAN","LANGUAGE_KOREAN","LANGUAGE_JAPANESE","LANGUAGE_HUNGARIAN","LANGUAGE_PORTUGUESE","LANGUAGE_ARABIC","LANGUAGE_NORWEGIAN","LANGUAGE_POLISH","LANGUAGE_TURKISH","LANGUAGE_UKRAINIAN","LANGUAGE_ROMANIAN","LANGUAGE_BULGARIAN","LANGUAGE_UNKNOWN","OS_MARMALADE","OS_LINUX","OS_BADA","OS_BLACKBERRY","OS_OSX","OS_WP8","OS_WINRT","OS_UNKNOWN","WIN32","LINUX","MACOS","ANDROID","IPHONE","IPAD","BLACKBERRY","NACL","EMSCRIPTEN","TIZEN","WINRT","WP8","MOBILE_BROWSER","DESKTOP_BROWSER","EDITOR_PAGE","EDITOR_CORE","WECHAT_GAME","QQ_PLAY","FB_PLAYABLE_ADS","BAIDU_GAME","VIVO_GAME","OPPO_GAME","HUAWEI_GAME","XIAOMI_GAME","JKW_GAME","ALIPAY_GAME","WECHAT_GAME_SUB","BAIDU_GAME_SUB","QTT_GAME","BYTEDANCE_GAME","BYTEDANCE_GAME_SUB","LINKSURE","BROWSER_TYPE_WECHAT","BROWSER_TYPE_ANDROID","BROWSER_TYPE_IE","BROWSER_TYPE_EDGE","BROWSER_TYPE_UCBS","BROWSER_TYPE_360","BROWSER_TYPE_BAIDU_APP","BROWSER_TYPE_BAIDU","BROWSER_TYPE_MAXTHON","BROWSER_TYPE_OPERA","BROWSER_TYPE_OUPENG","BROWSER_TYPE_MIUI","BROWSER_TYPE_CHROME","BROWSER_TYPE_LIEBAO","BROWSER_TYPE_QZONE","BROWSER_TYPE_SOUGOU","BROWSER_TYPE_HUAWEI","BROWSER_TYPE_UNKNOWN","getMaxJointMatrixSize","_maxJointMatrixSize","JOINT_MATRICES_SIZE","LEFT_UNIFORM_SIZE","maxUniforms","MAX_VERTEX_UNIFORM_VECTORS","getSafeAreaRect","visibleSize","getVisibleSize","__globalAdapter","adaptSys","languageCode","nav","doc","docEle","FbPlayableAd","currLanguage","language","browserLanguage","isAndroid","iOS","osVersion","osMainVersion","uaResult","maxTouchPoints","osName","appVersion","OS_UNIX","typeReg1","typeReg2","typeReg3","browserTypes","typeMap","micromessenger","trident","edge","360 aphone","mxbrowser","opr/","ubrowser","huaweibrowser","browserVersion","versionReg1","versionReg2","innerWidth","innerHeight","devicePixelRatio","windowPixelResolution","_checkWebGLRenderMode","_tmpCanvas1","create3DContext","opt_attribs","opt_contextType","localStorage","setItem","_supportWebp","toDataURL","_supportCanvas","_supportWebGL","WebGLRenderingContext","opengl","supportWebAudio","AudioContext","webkitAudioContext","mozAudioContext","ONLY_ONE","DELAY_CREATE_CTX","ONE_SOURCE","MULTI_CHANNEL","AUTOPLAY","canPlayType","ogg","wav","mp4","m4a","NetworkType","LAN","WWAN","getNetworkType","getBatteryLevel","garbageCollect","restartVM","isObjectValid","dump","openURL","138","__BrowserGetter","html","getElementsByTagName","availWidth","availHeight","meta","adaptationType","_scissorRect","View","_strategyer","ContainerStrategy","_strategy","ContentStrategy","_frameSize","_originalDesignResolutionSize","_visibleRect","_autoFullScreen","_maxPixelRatio","_retinaEnabled","_resizeCallback","_resizing","_resizeWithBrowserSize","_orientationChanging","_orientation","_isAdjustViewport","_antiAliasEnabled","_resolutionPolicy","_rpExactFit","EQUAL_TO_FRAME","EXACT_FIT","_rpShowAll","_rpNoBorder","_rpFixedHeight","_rpFixedWidth","_initFrameSize","_resizeEvent","forceOrEvent","prevFrameW","prevFrameH","prevRotated","containerStyle","display","_orientationChange","resizeWithBrowserSize","setResizeCallback","setOrientation","designWidth","designHeight","locFrameSize","isLandscape","transformOrigin","_setViewportMeta","metas","overwrite","vp","getElementById","head","elems","getElementsByName","currentVP","pattern","RegExp","_adjustViewportMeta","adjustViewportMeta","isRetinaEnabled","enableAntiAlias","imageSmoothingEnabled","mozImageSmoothingEnabled","isAntiAliasEnabled","enableAutoFullScreen","isAutoFullScreenEnabled","setCanvasSize","getCanvasSize","getFrameSize","setFrameSize","getVisibleSizeInPixel","getVisibleOrigin","getVisibleOriginInPixel","getResolutionPolicy","setResolutionPolicy","resolutionPolicy","_locPolicy","preApply","viewport","vb","rv","postApply","updateCameraViewport","getDesignResolutionSize","setRealPixelResolution","setViewportInPoints","locScaleX","locScaleY","setScissorInPoints","ceil","sw","sh","boxArr","SCISSOR_BOX","scissor","isScissorEnabled","SCISSOR_TEST","getScissorRect","scaleXFactor","scaleYFactor","getViewportRect","getScaleX","getScaleY","getDevicePixelRatio","relatedPos","posLeft","posTop","in_out_point","selPoint","selPrePoint","designedResolution","_setupContainer","locCanvas","_setupStyle","locContainer","_fixContainer","bs","contStyle","_result","_buildResult","containerW","containerH","contentW","contentH","EqualToFrame","frameH","ProportionalToFrame","frameW","designW","designH","offx","offy","EqualToWindow","ProportionalToWindow","OriginalContainer","globalAdapter","adaptContainerStrategy","adaptView","PROPORTION_TO_FRAME","ORIGINAL_CONTAINER","ExactFit","ShowAll","NoBorder","FixedHeight","FixedWidth","containerStg","contentStg","_containerStrategy","_contentStrategy","setContainerStrategy","setContentStrategy","139","topLeft","topRight","bottomLeft","bottomRight","140","isPlainEmptyObj","createAttrsSingle","superAttrs","createAttrs","subclass","chains","__attrs__","newAttrs","prefix","PrimitiveType","getTypeChecker","mainPropName","mainPropAttrs","mainPropAttrsType","isContainer","defaultType","type_lowerCase","getObjTypeChecker","typeCtor","classCtor","defaultDef","typename","141","CallbackInfo","callbackInfoPool","CallbackList","removeByCallback","removeByTarget","cancelAll","MAX_SIZE","callbackListPool","keyOrTarget","_list","142","deepFlatten","strList","flattenCodeArray","separator","143","_js","_vec3","_size","_quat","SUPPORT_MIN_FORMAT_VERSION","EMPTY_PLACEHOLDER","BuiltinValueTypes","BuiltinValueTypeParsers_xyzw","BuiltinValueTypeSetters","fromArray","serializeBuiltinValueTypes","typeId","toArray","DataTypeID","SimpleType","InstanceRef","Array_InstanceRef","Array_AssetRefByInnerObj","ValueTypeCreated","AssetRefByInnerObj","Array_Class","CustomizedClass","Dict","ARRAY_LENGTH","CLASS_TYPE","CLASS_KEYS","CLASS_PROP_TYPE_OFFSET","MASK_CLASS","OBJ_DATA_MASK","CUSTOM_OBJ_DATA_CLASS","CUSTOM_OBJ_DATA_CONTENT","VALUETYPE_SETTER","DICT_JSON_LAYOUT","ARRAY_ITEM_VALUES","Refs","EACH_RECORD_LENGTH","OWNER_OFFSET","KEY_OFFSET","TARGET_OFFSET","File","Version","Context","SharedUuids","SharedStrings","SharedClasses","SharedMasks","Instances","InstanceTypes","DependObjs","DependKeys","DependUuidIndices","PACKED_SECTIONS","dereference","instances","strings","dataLength","instanceOffset","keyIndex","_owner2","_keyIndex","deserializeCCObject","objectData","clazz","classTypeOffset","maskTypeOffset","_key2","ASSIGNMENTS","deserializeCustomCCObject","assignSimple","assignInstanceRef","genArrayParser","parseAssetRefByInnerObj","parseClass","parseCustomClass","parseValueTypeCreated","parseValueType","parseTRS","typedArray","parseDict","dict","_key3","_type2","subValue","parseArray","_type3","parseInstances","instanceTypes","instanceTypesLen","rootIndex","normalObjectCount","insIndex","classes","typeIndex","_type4","eachData","getMissingClass","hasCustomFinder","doLookupClass","silent","proxy","lookupClasses","customFinder","klassLayout","_type5","cacheMasks","masks","parseResult","sharedStrings","dependSharedUuids","dependObjs","dependKeys","dependUuids","_obj","_key4","details","borrowDetails","preprocessed","_version","FileInfo","sharedUuids","sharedClasses","sharedMasks","sections","rootInfo","../value-types/color","../value-types/quat","../value-types/rect","../value-types/size","../value-types/vec3","../value-types/vec4","144","./deserialize-compiled","./deserialize-editor","145","NonUuidMark","category","random","146","./CCClassDecorator","./CCObject","./CCVisibleRect","./callbacks-invoker","./instantiate","./instantiate-jit","147","Compiler","DEFAULT","VAR","LOCAL_OBJ","LOCAL_TEMP_OBJ","LOCAL_ARRAY","LINE_INDEX_OF_NEW_OBJ","DEFAULT_MODULE_CACHE","cc.Node","cc.Label","cc.Button","cc.Widget","cc.Animation","cc.ClickEvent","cc.PrefabInfo","Int8Array","Int16Array","Uint16Array","Uint32Array","Uint8ClampedArray","getTypedArrayName","Declaration","varName","mergeDeclaration","writeAssignment","codeArray","Assignments","targetExpression","_exps","_targetExp","writeCode","targetVar","pair","getPropAccessor","equalsToDefault","isEmptyObject","Parser","objsToClear_iN$t","objs","funcModuleCache","globalVariables","globalVariableId","localVariableId","getFuncModule","globalVar","enumerateObject","globalVariablesDeclaration","code","_iN$t","usedInNew","clsNameIsModule","getObjRef","setValueType","srcValue","assignments","fastDefinedProps","enumerateField","enumerateCCClass","setObjProp","instantiateArray","arrayVar","declaration","instantiateTypedArray","line","isView","instantiateObj","createCode","isChildOf","./compiler","148","CCValueType","_isDomNode","isDomNode","original","internal_force","doInstantiate","objsToClearTmpVar","initValue","../value-types/value-type","149","tempCIDGenerater","_getPropertyDescriptor","getPrototypeOf","_copyprop","isString","dunderProto","superclass","tmpValueDesc","tmpGetSetDesc","tmpGetDesc","tmpSetDesc","objOrCtor","__classname__","retval","isTempClassId","_idToClass","_nameToClass","setup","publicName","table","doSetClassName","unregisterClass","classId","__cid__","classname","allowTempId","obsoleted","newExpr","extractPropName","oldProp","newProp","obsoletes","objName","REGEXP_NUM_OR_STR","REGEXP_STR","argLen","hasSubstitution","regExpToTest","notReplaceFunction","forceDictMode","INVALID_IDENTIFIER_1","INVALID_IDENTIFIER_2","verifyType","removeArray","minusArr","appendObjectsAt","addObjs","arr_clone","cleanupFunc","_cleanup","resize","../utils/mutable-forward-iterator","./id-generater","150","Attrs","SerializableAttrs","TYPO_TO_CORRECT_DEV","parseNotify","newKey","newValue","canUsedInGet","parseType","STATIC_CHECK","getBaseClassWherePropertyDefined_DEV","_wrapOptions","isES6Getset","isLiteral","fullForm","maybeTypeScript","CALL_SUPER_DESTROY_REG_DEV","overrided","baseFuc","subFuc","correct","151","requiringFrames","beh","frameInfo","anyKey","152","refNode","otherNode","compareDocumentPosition","nodeName","153","./CCDirector","./asset-manager","./platform/CCInputExtension","./platform/CCInputManager","./platform/CCScreen","./platform/CCSys","./platform/CCView","154","_manager","_assertThisInitialized","ReferenceError","Assembler2D","_Assembler","initData","initLocal","createQuadData","verticesFloats","indicesCount","_local","uintVerts","uintVDatas","floatsPerVert","colorOffset","getBuffer","_handle","_meshBuffer","updateWorldVerts","local","verts","vDatas","matrix","matrixm","vl","vr","vt","vertexOffset","justTranslate","al","ar","bl","br","ct","db","fillBuffers","worldMatDirty","renderData","vData","iData","iDatas","offsetInfo","request","verticesCount","byteOffset","vbuf","_vData","ibuf","_iData","indiceOffset","vertexId","texIdOffset","uvOffset","./assembler","./utils/dynamic-atlas/manager","./webgl/render-data","155","_pool3","_assemblerId","getAssemblerId","assemblerCtor","__assemblerId__","AssemblerPool","_pool2","assemblers","_renderComp","../utils/pool","156","_vertexFormat","_assemblerPool","_extendNative","renderComp","updateRenderDataForSwitchMaterial","getVfmt","vfmtPosUvColor","packDynamicAtlasAndCheckMaterial","packedFrame","insertSpriteFrame","renderCompCtor","__assembler__","getConstructor","./assembler-pool","./webgl/vertex-format","157","Device","canvasEL","_canvas","_caps","_stats","drawcalls","_vx","_vy","_vw","_vh","_sx","_sy","_sw","_sh","_restoreTexture","unit","setViewport","setScissor","clearRect","fillStyle","globalAlpha","resetDrawCalls","getDrawCalls","158","_device","updateImage","159","_inputAssembler","_initBuiltins","defaultTexture","WRAP_REPEAT","programTemplates","programChunks","InputAssembler","Pass","renderEngine","drawCalls","_cameraNode","ModelBatcher","nativeFlow","ForwardRenderer","_builtins","canvasRenderer","RenderComponentHandle","ecScene","../../renderer/core/input-assembler","../../renderer/core/pass","../../renderer/renderers/forward-renderer","../../renderer/scene/scene","./canvas","./canvas/Device","./canvas/Texture2D","./webgl/assemblers","./webgl/model-batcher","160","FlagOfset","DONOTHING","BREAK_FLOW","LOCAL_TRANSFORM","WORLD_TRANSFORM","TRANSFORM","UPDATE_RENDER_DATA","OPACITY","OPACITY_COLOR","RENDER","POST_RENDER","FINAL","_batcher","_func","_next","_doNothing","_localTransform","_worldTransform","parentOpacityDirty","_render","batcher","parentOpacity","worldTransformFlag","worldOpacityFlag","worldDirtyFlag","colorVal","_fastSetA","flows","_postRender","postFillBuffers","EMPTY_FLOW","createFlow","flow","getFlow","tFlag","_validateList","_inValidateList","validateRenderers","visitRootNode","preCullingMask","walking","terminate","_renderScene","forwardRenderer","getBachther","FLAG_DONOTHING","FLAG_BREAK_FLOW","FLAG_LOCAL_TRANSFORM","FLAG_FINAL","161","_reusableAtlas","_atlases","_atlasIndex","_maxAtlasCount","_textureSize","_maxFrameSize","_textureBleeding","_autoMultiBatch","_autoResetBeforeSceneLoad","_debugNode","newAtlas","autoMultiBatch","requsetMaterial","beforeSceneLoad","atlasCount","textureBleeding","textureSize","autoResetBeforeSceneLoad","atlases","rects","deleteAtlasSpriteFrame","deleteTexture","deleteInnerTexture","showDebug","scroll","./reusable-atlas","162","pointer","parentRect","subRectA","subRectB","subRectC","cacheIndex","used","border","rootRect","freeRects","pushFreeRect","removeFreeRect","temp2","replaceFreeRect","score","areaFit","originalIndex","sizes","best","ignoreRectSize","deleteInnerRect","_iterator","_step","tryMergeRecycle","old","isEmpty","_iterator2","_step2","_iterator3","_step3","../../../assets/CCRenderTexture","163","_assembler2d","shareLabelInfo","LetterInfo","_tmpRect","_comp","_horizontalKernings","_lettersInfo","_linesOffsetX","_numberOfLines","_textDesiredHeight","_letterOffsetY","_tailoredTopY","_tailoredBottomY","_bmfontScale","_lineBreakWithoutSpaces","_lineSpacing","_originFontSize","_hAlign","_vAlign","_overflow","_isWrapText","_maxLineWidth","_isRetina","_retinaScale","BmfontAssembler","_Assembler2D","_reserveQuads","assemblerChanged","_updateFontFamily","_preUpdateRenderData","fontAsset","fontAtlas","_updateProperties","_updateLabelInfo","_updateContent","_resetProperties","_updateFontScale","getTTFTextureSizeScale","enableLabelRetina","labelRetinaScale","_setupBMFontOverflowMetrics","_computeHorizontalKerningForText","_alignText","stringLen","horizontalKernings","kerningDict","kerningAmount","_multilineTextWrap","nextTokenFunc","lineIndex","nextTokenY","longestLine","letterRight","highestY","lowestY","letterDef","letterPosition","_getFontScale","_recordPlaceholderInfo","tokenLen","tokenHighestY","tokenLowestY","tokenRight","nextLetterX","newLine","letterIndex","atlasName","letterX","_recordLetterInfo","_finishMultilineTextWrap","_getFirstCharLen","_multilineTextWrapByWord","_multilineTextWrapByChar","tmpInfo","_char2","_computeAlignmentOffset","_isVerticalClamp","_shrinkLabelToContentSize","_updateQuads","_isHorizontalClamp","_scaleFontSizeDown","shouldUpdateContent","lambda","mid","newFontSize","letterClamp","ctr","letterInfo","wordWidth","_isHorizontalClamped","letterOverClamp","appx","appy","clipTop","_determineRect","letterPositionX","appendQuad","_quadsUpdated","tempRect","trimmedLeft","trimmedTop","originalX","blank","../../../components/CCLabel","../../../platform/CCMacro","../../../utils/text-utils","../../assembler-2d","../utils","164","165","_bmfont","OUTLINE_SUPPORTED","getFontFamily","bleed","_invisibleAlpha","LetterTexture","labelInfo","_labelInfo","_context","_updateTexture","_canvasPool","startX","startY","MIDDLE_RATIO","BASELINE_OFFSET","textAlign","isOutlined","strokeStyle","strokeText","fillText","LetterAtlas","_tmpId","_nexty","frees","waitCleans","insertLetterTexture","letterTexture","freeLetter","removeFreeLetter","oldx","oldy","oldnexty","_letter","_inCleans","ref","pushFreeLetter","defs","LetterAtlases","fakeMaterial","_atlasWidth","_atlasHeight","deleteLetter","_iterator4","_step4","_iterator5","_step5","charAtlasAutoResetBeforeSceneLoad","_emptyTexture","_firstTraverse","_letterRefs","checkMaterialAndUpdateTexId","_needCheckMaterial","_usedMaterial","computeHash","toHEX","_isBold","LetterFontAssembler","_WebglBmfontAssembler","_proto2","createFlexData","vfmtPosUvColorTexId","_getFontDesc","_iterator6","_step6","_recycleLetterRef","_iterator7","_step7","assemblerData","appendVerts","../../../components/CCComponent","../../../components/CCLabelOutline","../../webgl/assemblers/label/2d/bmfont","../../webgl/vertex-format","166","_fontDesc","_drawFontSize","_splitedStrings","_canvasSize","_premultiply","_outlineComp","_outlineColor","_shadowComp","_shadowColor","_canvasPadding","_contentSizeExtend","_nodeContentSize","_enableItalic","_underlineThickness","_drawUnderlinePos","_drawUnderlineWidth","_sharedLabelData","Alignment","TTFAssembler","_calculateLabelFont","_updateLabelDimensions","_calDynamicAtlas","updateVerts","_updatePaddingRect","outlineWidth","shadowWidth","CC_NATIVERENDERER","_calculateFillTextStartPosition","labelX","_getLineHeight","drawStartY","firstLinelabelY","_setupOutline","_setupShadow","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","_drawTextEffect","startPosition","isMultiple","measureText","drawTextPosX","drawTextPosY","recreate","nodeSpacingY","_calculateParagraphLength","paragraphedStrings","paragraphLength","_calculateShrinkFont","totalHeight","maxLength","canvasWidthNoMargin","canvasHeightNoMargin","textFragment","allWidth","_calculateWrapText","canvasSizeX","canvasSizeY","paraLength","rawWidth","rawHeight","_rawHeight","../../../components/CCLabelShadow","167","hAlign","vAlign","./dynamic-atlas/manager","168","earcut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","minX","minY","eliminateHoles","earcutLinked","clockwise","signedArea","insertNode","removeNode","filterPoints","again","steiner","area","ear","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","intersects","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","qx","mx","my","tanMin","sortLinked","tail","numMerges","pSize","qSize","inSize","leftmost","ax","ay","bx","intersectsPolygon","middleInside","q1","inside","a2","an","bp","deviation","polygonArea","trianglesArea","flatten","holes","dimensions","holeIndex","169","Point","dmx","dmy","Path","closed","nbevel","complex","Impl","_distTol","_updatePathOffset","_paths","_pathLength","_pathOffset","_pointsOffset","_commandx","_commandy","_addPath","_curPath","pt","pathPoints","../../../../graphics/helper","../../../../graphics/types","170","MeshBuffer","Earcut","MAX_VERTEX","MAX_INDICE","atan2","curveDivs","tol","clamp","vfmtPosColorSdf","VertexFormat","ATTR_POSITION","ATTR_TYPE_FLOAT32","num","ATTR_COLOR","ATTR_TYPE_UINT8","GraphicsAssembler","_buffers","_bufferOffset","getVfmtFloatCount","requestBuffer","indiceStart","vertexStart","meshbuffer","ia","_vb","_ib","getBuffers","buffers","_flushIA","uploadData","genBuffer","cverts","maxVertsCount","requestStatic","_curColor","_flattenPaths","_expandStroke","_expandFill","impl","ncap","_calculateJoins","pointsLength","_path","pts","_pointsLength","loop","dPos","normalizeSelf","_buttCapStart","_roundCapStart","_roundJoin","_bevelJoin","_vset","floatCount","vDataoOfset","_dPos","_dx","_dy","_buttCapEnd","_roundCapEnd","indicesOffset","_start","_end","_l3","_path2","_pointsLength2","earcutData","vDataOffset","newIndices","_j2","nIndices","first","_end2","iw","ptsLength","nleft","dmr2","cross","limit","dlx0","dly0","dlx1","dly1","dmwx","dmwy","dmlen","_chooseBevel","bevel","dlx","dly","lw","rw","p1x","lx0","ly0","lx1","ly1","a0","a1","_out","rx0","ry0","rx1","ry1","_a2","_n","_u","_a3","lx","ly","_out2","uintVData","_uintVData","../../../../../renderer/core/input-assembler","../../../../graphics/graphics","../../../assembler","../../../index","../../mesh-buffer","./earcut","./impl","171","./label","./mask-assembler","./motion-streak","./motion-streak-multi","./sprite","172","MultiWebglBmfontAssembler","../../../../webgl/vertex-format","../2d/bmfont","173","_ttf","MultiWebglTTFAssembler","_WebglTTFAssembler","indices","initQuadIndices","../2d/ttf","174","_dataOffset","WebglBmfontAssembler","_BmfontAssembler","flexBuffer","_flexBuffer","reserve","vid","_getColor","rectWidth","rectHeight","uvDataOffset","retinaScale","world","../../../../utils/label/bmfont","175","WebglLetterFontAssembler","_LetterFontAssembler","createData","requestRenderData","../../../../../platform/js","../../../../utils/label/letter-font","./bmfont","176","UPDATE_CONTENT","UPDATE_FONT","UPDATE_EFFECT","NativeTTF","labelMaterial","_label","CustomAssembler","_proxy","setAssembler","_layout","jsb","LabelRenderer","_cfg","DataView","_layoutInfo","_cfgFields","_layoutFields","bindNodeProxy","_bindMaterial","_setBufferFlag","dv","getInt8","setInt8","_v","getInt32","__isLittleEndian__","setInt32","_updateCfgFlag","field","updateFlags","_setBufferValue","setFloat32","setUint8","_setFieldValue","field_name","_getBufferValue","getFloat32","getUint8","_getFieldValue","_getLayoutValue","_setLayoutValue","_updateCfgFlag_Content","_updateCfgFlag_Font","_colorEqual","_colorToObj","setString","setFontPath","fontPath","setFontSize","fontSizeRetina","oldfontsize","setOutline","oldOutline","setOutlineColor","oldColor","setLineHeight","oldLineHeight","setOverFlow","setEnableWrap","setVerticalAlign","setHorizontalAlign","oldHeight","oldX","oldY","setShadow","oldBlur","updateContent","setShadowColor","setItalic","oldItalic","setBold","oldBold","setUnderline","setSpacingX","getCache","retinaSize","getR","getG","getB","getA","shadow","outlineSize","setEffect","_nativeObj","../../../../../assets/material/CCMaterial","../../../../../assets/material/material-variant","../../../../../components/CCLabel","../../../../../components/CCLabelOutline","../../../../../components/CCLabelShadow","177","WebglTTFAssembler","_TTFAssembler","updateUVs","srcOffset","dstOffset","canvasWidth","canvasHeight","shadowOffset","../../../../utils/label/ttf","178","_CCLabel","_ttf2","_bmfont2","_letter2","_ttf3","_bmfont3","textBaseline","TTF","Bmfont","Letter","TTF3D","Bmfont3D","Letter3D","TTFMulti","BmfontMulti","../../../../components/CCLabel","./2d-multi/bmfont","./2d-multi/ttf","./2d/bmfont","./2d/letter","./2d/nativeTTF","./2d/ttf","./3d/bmfont","./3d/letter","./3d/ttf","179","MaskAssembler","SimpleSpriteAssembler","vfmtPos","_maxLevel","_maskStack","getWriteMask","getStencilRef","applyStencil","failOp","writeMask","zFailOp","zPassOp","STENCIL_ENABLE","pushMask","exitMask","_flushMaterial","enableMask","applyClearMask","DS_FUNC_NEVER","STENCIL_OP_REPLACE","STENCIL_OP_ZERO","applyAreaMask","DS_FUNC_EQUAL","_SimpleSpriteAssemble","../../../../renderer/gfx","../../../components/CCMask","../../assembler","../../render-flow","../vertex-format","./sprite/2d/simple","180","_motionStreak","setPoint","setDir","_normal","MultiMotionStreakAssembler","_MotionStreakAssemble","cur","difx","dify","cr","cg","ca","vertsOffset","findLast","_this$_renderData$_fl","usedVertices","usedIndices","usedVerticesFloats","MotionStreakAssembler","../../../components/CCMotionStreak","181","_tangent","_miter","computeMiter","miter","lineA","lineB","halfThick","maxMultiple","multiple","dot","182","_barFilled","BarFilledAssemblerMulti","_BarFilledAssembler","fillEnd","../2d/bar-filled","183","_mesh","MultiMeshSpriteAssembler","_MeshSpriteAssembler","updateIndices","../2d/mesh","184","_radialFilled","MultiRadialFilledAssembler","_RadialFilledAssemble","../2d/radial-filled","185","_simple","MultiSimpleSpriteAssembler","../2d/simple","186","_sliced","MultiSlicedAssembler","_SlicedAssembler","meshCount","indexOffset","../2d/sliced","187","_tiled","MultiTiledAssembler","_TiledAssembler","contentWidth","contentHeight","sizableWidth","sizableHeight","hRepeat","vRepeat","_updateIndices","../2d/tiled","188","BarFilledAssembler","textureRect","ul","ur","quadUV0","quadUV1","quadUV2","quadUV3","quadUV4","quadUV5","quadUV6","quadUV7","progressStart","progressEnd","../../../../../components/CCSprite","../../../../assembler-2d","189","MeshSpriteAssembler","originalWidth","originalHeight","trimX","trimY","190","PI_2","_vertPos","_vertices","_uvs","_intersectPoint_1","_intersectPoint_2","_center","_triangles","_calcInsectedPoints","intersectPoints","sinAngle","cosAngle","tanAngle","cotAngle","yleft","yright","xtop","xbottom","_calculateVertices","_calculateUVs","u0","v0","_getVertAngle","placementX","placementY","RadialFilledAssembler","floatsPerTriangle","triangleIndex","triangle","_generateTriangle","testIndex","allocWorldVerts","vert0","vert1","vert2","v0x","v0y","v1x","v1y","progressX","progressY","_generateUV","px1","px2","py1","py2","191","cw","ch","ow","oh","rh","trimRight","trimBottom","trimTop","192","SlicedAssembler","xScale","yScale","voffset","localRowY","localColX","worldIndex","193","TiledAssembler","_this$_local","offsetWidth","offsetHeight","localX","localY","yindex","ylength","xindex","xlength","coefu","coefv","tempXVerts","tempYVerts","194","_CCSprite","_simple2","_sliced2","_tiled2","_radialFilled2","_barFilled2","_mesh2","_simple3","_sliced3","_tiled3","_radialFilled3","_barFilled3","_mesh3","Simple","Sliced","Tiled","RadialFilled","BarFilled","Mesh","Simple3D","Sliced3D","Tiled3D","RadialFilled3D","BarFilled3D","Mesh3D","SimpleMulti","SlicedMulti","TiledMulti","RadialFilledMulti","BarFilledMulti","MeshMulti","../../../../components/CCSprite","./2d-multi/bar-filled","./2d-multi/mesh","./2d-multi/radial-filled","./2d-multi/simple","./2d-multi/sliced","./2d-multi/tiled","./2d/bar-filled","./2d/mesh","./2d/radial-filled","./2d/simple","./2d/sliced","./2d/tiled","./3d/bar-filled","./3d/mesh","./3d/radial-filled","./3d/simple","./3d/sliced","./3d/tiled","195","FlexBuffer","vfmt","_handler","_index","_vfmt","_verticesBytes","_bytes","_initVerticesCount","_initIndicesCount","_reallocVData","floatsCount","oldData","updateMesh","_reallocIData","newFloatsCount","realloced","newIndicesCount","updateMeshRange","196","FIX_IOS14_BUFFER","vertexFormat","_vertexBytes","_arrOffset","_vbArr","VertexBuffer","USAGE_DYNAMIC","_ibArr","IndexBuffer","INDEX_FMT_UINT16","USAGE_STATIC","_initVDataCount","_initIDataCount","_offsetInfo","_reallocBuffer","vertexsData","indicesData","ib","switchBuffer","checkAndSwitchBuffer","vertexCount","indiceCount","byteLength","indiceLength","_updateOffset","requestForSpine","requestStaticForSpine","adjustForSpine","copyOldData","oldVData","newData","oldIData","forwardIndiceStartToOffset","../../../renderer/gfx","197","_recyclePool","_model","vfmt3D","QuadBuffer","SpineBuffer","empty_material","empty_ia","renderScene","_iaPool","_modelPool","_quadBuffer","_quadBuffer3D","_meshBuffer3D","_batchedModels","_sortKey","models","setInputAssembler","removeModel","model","sortKey","addModel","_vertexBuffer","_indexBuffer","vertextFormat","../../../renderer/core/input-assembler","../../../renderer/memop/recycle-pool","../../../renderer/scene/model","../../assets/material/CCMaterial","../../platform/id-generater","./mesh-buffer","./quad-buffer","./spine-buffer","./vertex-format","198","_fillQuadBuffer","vertextID","199","RenderData","_infos","./flex-buffer","200","adjust","201","ATTR_UV0","XYZ_UV_Color","XY_UV_Color","ATTR_TEX_ID","XY_UV_Color_TexId","vfmtPosUvTwoColor","ATTR_COLOR0","XY_UV_Two_Color","vfmtPosUv","XY_UV","vfmtPosColor","XY_Color","XY","202","./multi-batcher","./multi-handler","203","MultiBatcher","handlers","nextHandler","getEmptyIndex","204","textures","hasEmptySlot","texture2","texture3","texture4","texture5","texture6","texture7","texture8","propertyIndex2Name","hasTexture","205","i2nMap","n2iMap","propertyName2Index","206","EXTNAME_RE","DIRNAME_RE","NORMALIZE_RE","pathStr","mainFileName","fileName","reg","baseName","tempStr","changeBasename","isSameExt","_normalize","oldUrl","sep","stripSep","207","AffineTransform","determinant","matm","transformVec2","transOrY","transformSize","transformRect","ol","ob","or","ot","lbx","lby","rbx","rby","ltx","lty","rtx","rty","transformObb","out_bl","out_tl","out_tr","out_br","anAffineTransform","208","findComponent","findComponents","_comp2","findChildComponent","findChildComponents","couldActiveInScene","_onSetParent","getChildByName","siblingIndex","siblings","oldIndex","walk","prefunc","postfunc","afterChildren","_stacks","_stackId","removeAllChildren","_checkMultipleComp","existing","_RFpeek","ReqComp","depended","attachedObjsForEditor","_addComponentAt","removeComponent","_getDependComponent","destroyAllChildren","newParent","inCurrentSceneBefore","inCurrentSceneNow","newPrefabRoot","myPrefabInfo","shouldActiveNow","isSyncedNode","newPrefabInfo","syncing","_registerIfAttached","_comp3","childIndex","SameNameGetSets","propertyDefine","./misc","209","210","_dstBlendFactor","_updateBlendFunc","dstBlendFactor","materialVar","_updateMaterialBlendFunc","211","Base64Values","BASE64_VALUES","HexChars","UuidTemplate","Indices","isFinite","base64","lhs","rhs","212","referenceNode","nameList","subChild","213","_normalMaterial","normalMaterial","_grayMaterial","grayMaterial","214","eventRegx","imageAttrReg","_parsedObject","_specialSymbolArray","htmlString","_resultObjectArray","_stack","tagEndIndex","tagBeginIndex","noTagBegin","_processResult","newStr","tagStr","_addToStack","_attributeToObject","attribute","nextSpace","eventObj","eventHanlderString","_processEventHandler","isNewLine","tagValue","remainingArgument","isValidImageTag","toLocaleLowerCase","defaultOutlineObject","outlineAttrReg","eventString","eventNames","isValidTag","eventValue","previousTagObj","_escapeSpecialSymbol","215","./CCPath","./find","./mutable-forward-iterator","./profiler/CCProfiler","216","sameNameGetSets","diffNameGetSets","np","getterFunc","suffix","NextPOT","BUILTIN_CLASSID_RE","BASE64_KEYS","pushToMap","pushFront","exists","min_inclusive","max_inclusive","degreesToRadians","radiansToDegrees","217","218","219","_PrefabInfo","fileId","eulerAnglesX","eulerAnglesY","eulerAnglesZ","prefabRoot","220","PerfCounter","_showFPS","_rootNode","generateStats","below","average","draws","logic","_counter","generateNode","leftLabel","rightLabel","beforeUpdate","afterUpdate","updateLabel","stat","human","afterDraw","../../platform/CCMacro","./perf-counter","221","Counter","_value","_averageValue","_accumValue","_accumSamples","_accumStart","_average","alarm","over","222","tick","avg","./counter","223","_BASELINE_RATIO","_BASELINE_OFFSET","MAX_CACHE_SIZE","LRUCache","moveToHead","discard","measureCache","label_wordRex","label_symbolRex","label_lastWordRex","label_lastEnglish","label_firstEnglish","highSurrogateRex","lowSurrogateRex","label_wrapinspection","__CHINESE_REG","__JAPANESE_REG","__KOREAN_REG","metric","_safeSubstring","targetString","endIndex","newStartIndex","newEndIndex","startChar","endChar","wrappedWords","fuzzyLen","tmpText","sLine","pushNum","checkWhile","checkCount","sText","224","loadImage","tex","cacheImage","postLoadTexture","../assets/CCTexture2D","225","NodeUnit","./node-mem-pool","./node-unit","226","MemPool","unitClass","_unitClass","_findOrder","_initNative","_nativeMemPool","_buildUnit","unitID","_destroyUnit","_findUnitID","findUnit","findOrder","hasSpace","firstUnit","isAllFree","227","Super","./mem-pool","228","Uint32_Bytes","Uint8_Bytes","Dirty_Type","Dirty_Members","Dirty_Stride","TRS_Members","TRS_Stride","FLOAT_BYTES","LocalMatrix_Members","LocalMatrix_Stride","WorldMatrix_Members","WorldMatrix_Stride","Parent_Type","Parent_Members","Parent_Stride","ZOrder_Type","ZOrder_Members","ZOrder_Stride","CullingMask_Type","CullingMask_Members","CullingMask_Stride","Opacity_Type","Opacity_Members","Opacity_Stride","Is3D_Type","Is3D_Members","Is3D_Stride","Node_Type","Node_Members","Skew_Members","Skew_Stride","UnitBase","memPool","contentNum","_contentNum","trsList","FLOAT_ARRAY_TYPE","localMatList","worldMatList","_spacesData","../../value-types/utils","./unit-base","229","POINTER_INVALID_FLAG","SPACE_FREE_FLAG","SPACE_USE_FLAG","POS_NEXT_FREE","POS_FREE_FLAG","_memPool","_signData","signIndex","UnitBaseProto","headFreeIndex","spaceNum","freeStr","usingNum","usingStr","freeFlag","totalNum","230","_valueType","_CCClass","_misc","_ValueType","fromHex","hex","hexString","subtract","multiply","divide","ag","ofs","setR","setG","setB","setA","toCSS","opt","fmt","toRGBValue","fromHSV","toHSV","hsv","WHITE_R","BLACK_R","TRANSPARENT_R","GRAY_R","RED_R","RED","GREEN_R","GREEN","BLUE_R","BLUE","YELLOW_R","YELLOW","ORANGE_R","ORANGE","CYAN_R","CYAN","MAGENTA_R","MAGENTA","./value-type","231","_exportNames","Vec4","Mat3","_mat2","math","./color","./mat3","./mat4","./quat","./rect","./size","./trs","./vec2","./vec3","./vec4","232","m00","m01","m02","m03","m04","m05","m06","m07","m08","m10","m11","m20","m21","m22","transpose","a01","a02","a12","a00","a10","a11","a20","a21","a22","b01","b11","b21","det","adjoint","b00","b02","b10","b12","b20","b22","multiplyMat4","translate","rotate","rad","fromTranslation","fromScaling","fromQuat","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","_fromViewUpIIFE","default_up","lengthSqr","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","frob","multiplyScalar","multiplyScalarAndAdd","exactEquals","a4","a5","a6","a7","a8","b0","b5","b6","b7","b8","IDENTITY","../value-types/utils","233","_a00","_a01","_a02","_a03","_a10","_a11","_a12","_a13","_a20","_a21","_a22","_a23","_a30","_a31","_a32","_a33","mulScalar","m23","m30","m31","m32","m33","axis","rotateX","rotateY","rotateZ","fromXRotation","fromYRotation","fromZRotation","xy","xz","yz","getTranslation","getScaling","m3","m3_1","m09","trace","S","toRTS","v3_1","fromMat3","fromRTS","sz","fromRTSOrigin","ox","oy","oz","frustum","near","far","rl","tb","nf","perspective","fovy","aspect","lr","bt","eye","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","z0","z1","inverseTranspose","strictEquals","epsilon","sm","number","m14","m15","234","_z","_w","rotationTo","fromAxisAngle","getAxisAngle","outAxis","scaleAndAdd","bw","bz","rotateAround","rot","qt_1","rotateAroundLocal","calculateW","slerp","scale0","scale1","cosom","omega","sinom","sqlerp","qt_2","invDot","fromAxes","xAxis","yAxis","zAxis","halfToRad","_s","_s2","_s3","cz","toAxisX","fy","fz","toAxisY","fx","toAxisZ","outerZ","bank","heading","attitude","toDegree","sqx","sqy","sqz","euler","235","fromMinMax","min_x","min_y","max_x","max_y","maxax","maxay","maxbx","maxby","intersection","rectB","axMin","ayMin","axMax","ayMax","bxMin","byMin","bxMax","byMax","containsRect","aw","ah","bh","236","ZERO_R","237","tmp_quat","238","INT_MIN","INT_MAX","INT_BITS","approx","inverseLerp","nextPow2","pingPong","pseudoRandom","pseudoRandomRange","pseudoRandomRangeInt","randomRange","randomRangeInt","toRadian","_d2r","_r2d","maxDiff","seed","239","240","neg","negate","squaredDistance","inverse","transformMat3","v2_1","v2_2","cosine","magSqr","subSelf","mulSelf","divSelf","scaleSelf","negSelf","variance","addSelf","invsqrt","magSqr1","magSqr2","theta","signAngle","radians","rotateSelf","project","maxAxis","squaredMagnitude","ONE_R","UP_R","RIGHT_R","241","zero","az","cosTheta","sinTheta","rhw","transformMat4Normal","transformAffine","ix","iy","iz","transformRTS","transformInverseRTS","rz","v3_2","projectOnPlane","sqrLen","vec1","vec2","FRONT_R","242","v4","equals4f","strictEquals4f","minInclusive","maxInclusive","NEG_ONE_R","NEG_ONE","243","deprecateEnum","oldPath","newPath","hasTypePrefixBefore","delimiter","oldPropName","oldTypeName","markAsRemoved","ownerCtor","removedProps","ownerName","markAsDeprecated","deprecatedProps","descriptors","getOwnPropertyDescriptors","deprecatedProp","markAsRemovedInObject","ownerObj","provideClearError","Info","accessor","etProp","markFunctionWarning","originFunc","_glID","PI2","FLT_MAX","FLT_MIN","UINT_MAX","scheduleCallbackForTarget","scheduleUpdateForTarget","unscheduleCallbackForTarget","unscheduleUpdateForTarget","unscheduleAllCallbacksForTarget","unscheduleAllCallbacksWithMinPriority","adjustViewPort","setViewPortInPoints","getViewPortRect","getChildByTag","removeChildByTag","getRotationX","setRotationX","getRotationY","setRotationY","getPositionX","setPositionX","getPositionY","setPositionY","getSkewX","setSkewX","getSkewY","setSkewY","setScaleX","setScaleY","getOpacity","setOpacity","getColor","getLocalZOrder","setLocalZOrder","setInsetLeft","setInsetRight","setInsetTop","setInsetBottom","getInstantiatedBuiltinMaterial","getInstantiatedMaterial","ERR","Light","affineTransformMake","affineTransformMakeIdentity","affineTransformClone","affineTransformConcat","affineTransformConcatIn","affineTransformInvert","affineTransformInvertIn","affineTransformInvertOut","affineTransformEqualToTransform","pointApplyAffineTransform","sizeApplyAffineTransform","rectApplyAffineTransform","obbApplyAffineTransform","pointEqualToPoint","sizeEqualToSize","rectEqualToRect","rectContainsRect","rectContainsPoint","rectOverlapsRect","rectIntersectsRect","rectIntersection","rectUnion","rectGetMaxX","rectGetMidX","rectGetMinX","rectGetMaxY","rectGetMidY","rectGetMinY","colorEqual","hexToColor","colorToHex","pNeg","pAdd","pSub","pMult","pMidpoint","pDot","pCross","pPerp","pRPerp","pProject","pLengthSQ","pDistanceSQ","pLength","pDistance","pNormalize","pForAngle","pToAngle","pZeroIn","pIn","pMultIn","pSubIn","pAddIn","pNormalizeIn","pSameAs","pAngle","pAngleSigned","pRotateByAngle","pCompMult","pFuzzyEqual","pLerp","pClamp","rand","randomMinus1To1","_renderType","_getError","_initDebugSetting","rgb2hsv","hsv2rgb","dragonBones","CCFactory","getInstance","vmath","244","./actions","./core/CCGame","245","CCSpriteFrame","ParticleAsset","../core/assets/CCAsset","../core/assets/CCSpriteFrame","246","USAGE_STREAM","INDEX_FMT_UINT8","INDEX_FMT_UINT32","ATTR_NORMAL","ATTR_TANGENT","ATTR_BITANGENT","ATTR_WEIGHTS","ATTR_JOINTS","ATTR_COLOR1","ATTR_UV","ATTR_UV1","ATTR_UV2","ATTR_UV3","ATTR_UV4","ATTR_UV5","ATTR_UV6","ATTR_UV7","ATTR_TYPE_INT8","ATTR_TYPE_INT16","ATTR_TYPE_UINT16","ATTR_TYPE_INT32","ATTR_TYPE_UINT32","FILTER_NEAREST","FILTER_LINEAR","WRAP_CLAMP","WRAP_MIRROR","TEXTURE_FMT_RGB_DXT1","TEXTURE_FMT_RGBA_DXT1","TEXTURE_FMT_RGBA_DXT3","TEXTURE_FMT_RGBA_DXT5","TEXTURE_FMT_RGB16F","TEXTURE_FMT_RGBA16F","TEXTURE_FMT_RGB32F","TEXTURE_FMT_R32F","TEXTURE_FMT_111110F","TEXTURE_FMT_SRGB","TEXTURE_FMT_SRGBA","TEXTURE_FMT_D16","TEXTURE_FMT_D32","TEXTURE_FMT_D24S8","DS_FUNC_LEQUAL","DS_FUNC_GREATER","DS_FUNC_NOTEQUAL","DS_FUNC_GEQUAL","RB_FMT_RGBA4","RB_FMT_RGB5_A1","RB_FMT_RGB565","BLEND_FUNC_SUBTRACT","BLEND_FUNC_REVERSE_SUBTRACT","BLEND_ZERO","BLEND_ONE","BLEND_SRC_COLOR","BLEND_ONE_MINUS_SRC_COLOR","BLEND_DST_COLOR","BLEND_ONE_MINUS_DST_COLOR","BLEND_DST_ALPHA","BLEND_ONE_MINUS_DST_ALPHA","BLEND_CONSTANT_COLOR","BLEND_ONE_MINUS_CONSTANT_COLOR","BLEND_CONSTANT_ALPHA","BLEND_ONE_MINUS_CONSTANT_ALPHA","BLEND_SRC_ALPHA_SATURATE","STENCIL_OP_INCR","STENCIL_OP_INCR_WRAP","STENCIL_OP_DECR","STENCIL_OP_DECR_WRAP","STENCIL_OP_INVERT","CULL_NONE","CULL_FRONT","CULL_FRONT_AND_BACK","PT_POINTS","PT_LINES","PT_LINE_LOOP","PT_LINE_STRIP","PT_TRIANGLES","PT_TRIANGLE_STRIP","PT_TRIANGLE_FAN","RenderQueue","OVERLAY","murmurhash2_32_gc","WebGLEXT","GFXObjectType","GFXStatus","GFXObject","gfxType","_gfxType","_status","UNREADY","GFXAttributeName","GFXType","GFXFormat","GFXBufferUsageBit","GFXMemoryUsageBit","GFXBufferAccessBit","GFXPrimitiveMode","GFXPolygonMode","GFXShadeModel","GFXCullMode","GFXComparisonFunc","GFXStencilOp","GFXBlendOp","GFXBlendFactor","GFXColorMask","GFXFilter","GFXAddress","GFXTextureType","GFXTextureUsageBit","GFXSampleCount","GFXTextureFlagBit","GFXTextureViewType","GFXShaderType","GFXBindingType","GFXCommandBufferType","GFXLoadOp","GFXStoreOp","GFXTextureLayout","GFXPipelineBindPoint","GFXDynamicState","GFXStencilFace","GFXQueueType","GFXClearFlag","GFXGetTypeSize","BOOL","INT","UINT","FLOAT","BOOL2","INT2","UINT2","FLOAT2","BOOL3","INT3","UINT3","FLOAT3","BOOL4","INT4","UINT4","FLOAT4","MAT2","MAT2X3","MAT2X4","MAT3X2","MAT3","MAT3X4","MAT4X2","MAT4","SAMPLER1D","SAMPLER1D_ARRAY","SAMPLER2D","SAMPLER2D_ARRAY","SAMPLER3D","SAMPLER_CUBE","RenderPassStage","RenderPriority","MAX_BINDING_SUPPORTED","UniformBinding","SamplerInfoIndex","sizeMap","formatMap","R32I","RG32I","RGB32I","RGBA32I","R32F","RG32F","RGB32F","passParams","BACK","FRONT","ADD","SUB","REV_SUB","CONSTANT_COLOR","CONSTANT_ALPHA","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","KEEP","REPLACE","INCR","INCR_WRAP","DECR","DECR_WRAP","INVERT","effectStructure","$techniques","$passes","any","sampler","mappings","247","_memop","_m4_tmp","_stageInfos","RecyclePool","_float2_pool","_float3_pool","_float4_pool","_float9_pool","_float16_pool","_float64_pool","_int2_pool","_int3_pool","_int4_pool","_int64_pool","Base","_this$_type2defaultVa","_type2defaultValue","PARAM_INT2","PARAM_INT3","PARAM_INT4","PARAM_FLOAT2","PARAM_FLOAT3","PARAM_FLOAT4","PARAM_COLOR4","PARAM_MAT3","PARAM_MAT4","defaultTextureCube","_stage2fn","_usedTextureUnits","_viewPools","_drawItemsPools","_stageItemsPools","_definesChanged","_resetTextuerUnit","_allocTextureUnit","maxTextureUnits","_registerStage","fn","_requestView","clearOpts","CLEAR_COLOR","CLEAR_DEPTH","CLEAR_STENCIL","_stencil","_models","drawItem","extractDrawItem","_stages","stageItems","_drawItem","stageItem","stageInfo","_setProperty","slots","setTextureArray","setUniformDirectly","setUniform","_draw","programLib","_programKey","setVertexBuffer","setIndexBuffer","setPrimitiveType","_primitiveType","getProgram","setProgram","_uniforms","variants","enableBlend","setBlendFuncSep","setBlendEqSep","setBlendColor32","enableDepthTest","setDepthFunc","enableDepthWrite","setStencilTest","setStencilFuncFront","setStencilOpFront","setStencilFuncBack","setStencilOpBack","draw","../../core/value-types","../enums","../gfx","../memop","./program-lib","./view","248","249","_detailName","setStage","newProperties","../../core/value-types/value-type","250","_shdID","_generateDefines","tmpDefines","_replaceMacroNums","_unrollLoops","begin","snippet","unroll","parsedBegin","parsedEnd","_replaceHighp","ProgramLib","_templates","_checkPrecision","prog","glsl1","vert","frag","cnt","log2","samplers","blocks","members","extensions","hasProgram","getKey","tmpl","tmplDefs","errPrefix","customDef","_highpSupported","Program","errors","link","vertLines","fragLines","defineLength","originLine","lines","fileID","highpSupported","getShaderPrecisionFormat","vertHighp","VERTEX_SHADER","HIGH_FLOAT","fragHighp","FRAGMENT_SHADER","precision","251","Technique","252","_genID","_priority","_clearModel","_matView","_matViewInv","_matProj","_matViewProj","_matInvViewProj","_cullingByID","_shadowLight","getForward","253","_mappings","PROJ_PERSPECTIVE","PROJ_ORTHO","LIGHT_DIRECTIONAL","LIGHT_POINT","LIGHT_SPOT","LIGHT_AMBIENT","SHADOW_NONE","SHADOW_HARD","SHADOW_SOFT","ivec2","ivec3","ivec4","vec3","vec4","PARAM_MAT2","mat2","mat3","sampler2D","samplerCube","CLEAR_SKYBOX","BUFFER_VIEW_INT8","BUFFER_VIEW_UINT8","BUFFER_VIEW_INT16","BUFFER_VIEW_UINT16","BUFFER_VIEW_INT32","BUFFER_VIEW_UINT32","BUFFER_VIEW_FLOAT32","./build/mappings","254","_state","_texture2d","_textureCube","_type2uniformCommit2","_type2uniformArrayCom","GL_INT","GL_FLOAT","GL_FLOAT_VEC2","GL_FLOAT_VEC3","GL_FLOAT_VEC4","GL_INT_VEC2","GL_INT_VEC3","GL_INT_VEC4","GL_BOOL","GL_BOOL_VEC2","GL_BOOL_VEC3","GL_BOOL_VEC4","GL_FLOAT_MAT2","GL_FLOAT_MAT3","GL_FLOAT_MAT4","GL_SAMPLER_2D","GL_SAMPLER_CUBE","_type2uniformCommit","uniform1i","uniform1f","uniform2fv","uniform3fv","uniform4fv","uniform2iv","uniform3iv","uniform4iv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","_type2uniformArrayCommit","uniform1iv","uniform1fv","_commitBlendStates","disable","BLEND","blendSep","blendFuncSeparate","blendEquationSeparate","blendFunc","blendEquation","_commitDepthStates","DEPTH_TEST","depthMask","_commitStencilStates","STENCIL_TEST","stencilSep","stencilFuncSeparate","stencilMaskSeparate","stencilOpSeparate","stencilOp","_commitCullMode","CULL_FACE","cullFace","_commitVertexBuffers","attrsDirty","maxStream","vertexBuffers","vertexBufferOffsets","maxVertexAttribs","_newAttributes","vbOffset","bindBuffer","ARRAY_BUFFER","_attributes","_enabledAttributes","enableVertexAttribArray","vertexAttribPointer","stride","disableVertexAttribArray","_commitTextures","maxTextureSlot","textureUnits","activeTexture","TEXTURE0","bindTexture","_attach","attachment","face","framebufferTexture2D","TEXTURE_2D","TEXTURE_CUBE_MAP_POSITIVE_X","framebufferRenderbuffer","RENDERBUFFER","preserveDrawingBuffer","_extensions","_initExtensions","_initCaps","_initStates","initDefault","_current","vendorPrefixes","getExtension","extDrawBuffers","maxVertexStreams","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxFragUniforms","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_ATTRIBS","maxTextureSize","MAX_TEXTURE_SIZE","maxDrawBuffers","MAX_DRAW_BUFFERS_WEBGL","maxColorAttachments","MAX_COLOR_ATTACHMENTS_WEBGL","FUNC_ADD","colorMask","POLYGON_OFFSET_FILL","depthRange","clearDepth","clearStencil","_restoreIndexBuffer","indexBuffer","ELEMENT_ARRAY_BUFFER","allowFloatTexture","fb","numColors","_colors","colorBuffer","COLOR_ATTACHMENT0","DEPTH_ATTACHMENT","STENCIL_ATTACHMENT","_depthStencil","DEPTH_STENCIL_ATTACHMENT","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","setStencilFunc","setStencilOp","rgba","setBlendColor","setBlendFunc","dst","srcAlpha","dstAlpha","setBlendEq","eq","alphaEq","stream","slot","sameType","isFloat32Array","isInt32Array","programDirty","_linked","useProgram","commitFunc","drawElements","_bytesPerIndex","drawArrays","./enums","./state","./texture-2d","./texture-cube","255","attrTypeBytes","glFilter","glTextureFmt","GL_NEAREST_MIPMAP_NEAREST","GL_LINEAR_MIPMAP_NEAREST","GL_NEAREST_MIPMAP_LINEAR","GL_LINEAR_MIPMAP_LINEAR","GL_UNSIGNED_BYTE","GL_UNSIGNED_SHORT","GL_UNSIGNED_INT","GL_UNSIGNED_SHORT_5_6_5","GL_UNSIGNED_SHORT_4_4_4_4","GL_UNSIGNED_SHORT_5_5_5_1","GL_HALF_FLOAT_OES","GL_DEPTH_COMPONENT","GL_ALPHA","GL_RGB","GL_LUMINANCE","GL_LUMINANCE_ALPHA","GL_COMPRESSED_RGB_S3TC_DXT1_EXT","GL_COMPRESSED_RGBA_S3TC_DXT1_EXT","GL_COMPRESSED_RGBA_S3TC_DXT3_EXT","GL_COMPRESSED_RGBA_S3TC_DXT5_EXT","GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG","GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG","GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","GL_COMPRESSED_RGB_ETC1_WEBGL","GL_COMPRESSED_RGB8_ETC2","GL_COMPRESSED_RGBA8_ETC2_EAC","_filterGL","_textureFmtGL","internalFormat","pixelType","ATTR_TEX_COORD","ATTR_TEX_COORD1","ATTR_TEX_COORD2","ATTR_TEX_COORD3","ATTR_TEX_COORD4","ATTR_TEX_COORD5","ATTR_TEX_COORD6","ATTR_TEX_COORD7","ATTR_TEX_COORD8","attrType","LINEAR_MIPMAP_LINEAR","256","createFramebuffer","deleteFramebuffer","257","_BYTES_PER_INDEX","BYTES_PER_INDEX","usage","_usage","_numIndices","_needExpandDataStore","createBuffer","deleteBuffer","bytes","glUsage","bufferData","bufferSubData","setUsage","258","TextureCube","./device","./frame-buffer","./index-buffer","./program","./render-buffer","./texture","./vertex-buffer","259","isPow2","260","_parseError","errorLog","parts","_samplers","_errors","_vertSource","_fragSource","vertShader","_createShader","fragShader","createProgram","attachShader","linkProgram","failed","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","getProgramParameter","LINK_STATUS","getProgramInfoLog","numAttributes","ACTIVE_ATTRIBUTES","getActiveAttrib","getAttribLocation","numUniforms","ACTIVE_UNIFORMS","_info","getActiveUniform","_location","getUniformLocation","deleteProgram","shader","createShader","shaderSource","compileShader","261","createRenderbuffer","bindRenderbuffer","renderbufferStorage","deleteRenderbuffer","262","cpy","263","_Texture","_genMipmap","caps","textureMaxSize","pot","_setMipmap","hint","GENERATE_MIPMAP_HINT","NICEST","generateMipmap","_setTexInfo","glFmt","_setSubImage","_setImage","pixelStorei","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","compressedTexSubImage2D","texSubImage2D","compressedTexImage2D","texImage2D","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_MAX_ANISOTROPY_EXT","264","TEXTURE_CUBE_MAP","faceIndex","levelImages","265","_nullWebGLTexture","_textureID","266","_bytesPerVertex","_numVertices","getFormat","267","_attr2el","_elements","_el","../murmurhash2_gc","268","CircularPool","_cursor","269","_timsort","FixedArray","cmp","./timsort","270","TypedArrayPool","LinkedArray","_circularPool","_fixedArray","_linkedArray","_typedArrayPool","./circular-pool","./fixed-array","./linked-array","./pool","./recycle-pool","./typed-array-pool","271","_head","_tail","alloc","_prev","free","binder","cursor","272","_idx","_frees","_expand","273","274","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","DEFAULT_TMP_STORAGE_LENGTH","POWERS_OF_TEN","log10","alphabeticalCompare","aStr","bStr","minRunLength","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","pivot","gallopLeft","lastOffset","maxOffset","gallopRight","TimSort","minGallop","tmpStorageLength","stackLength","runStart","runLength","stackSize","pushRun","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","count1","count2","exit","customCursor","customDest","remaining","ts","minRun","275","_bufferPools","_nextPow16","_log2","_alloc","buf","alloc_int8","alloc_uint8","alloc_int16","alloc_uint16","alloc_int32","alloc_uint32","alloc_float32","alloc_float64","alloc_dataview","276","277","_baseRenderer","_a16_view","_a16_view_inv","_a16_proj","_a16_viewProj","_a4_camPos","_a64_shadow_lightViewProj","_a16_shadow_lightViewProjs","_a4_shadow_info","_camPos","_camFwd","_v3_tmp1","CC_MAX_LIGHTS","CC_MAX_SHADOW_LIGHTS","sortView","_BaseRenderer","_lights","_shadowLights","_numLights","_shadowStage","_opaqueStage","_transparentStage","_updateLights","extractView","_view2","lights","light","shadowType","_updateLightDefines","lightKey","shadowKey","_shadowType","newCount","CC_NUM_LIGHTS","CC_NUM_SHADOW_LIGHTS","_submitLightsUniforms","positionAndRanges","directions","lightNum","_colorUniform","_directionUniform","_positionUniform","_range","_spotUniform","_submitShadowStageUniforms","shadowInfo","shadowMinDepth","shadowMaxDepth","shadowDepthScale","shadowDarkness","shadowBias","CC_SHADOW_TYPE","_submitOtherStagesUniforms","viewProjMatrix","_shadowResolution","_sortItems","_drawItems","shadowLights","_item","shadowIdx","shadowMap","../core/base-renderer","278","_tmp_mat4","_tmp_v3","_tmp2_v3","_poolID","_projection","_near","_far","_orthoHeight","setCullingMask","getPriority","getOrthoHeight","getFov","getNear","getFar","getDepth","getStencil","getClearFlags","getStages","getFramebuffer","framebuffer","_calcMatrices","screenPointToRay","worldPos","worldMatrixToScreen","worldMatrix","halfWidth","halfHeight","../../core/geom-utils","279","Model","_viewID","_cameraID","_userKey","_castShadow","_boundingShape","setUserKey","280","app","_app","_views","_add","_remove","setDebugCamera","cam","getCameraCount","getCamera","getModelCount","getModel","getLightCount","getLight","addLight","removeLight","addView","removeView","281","ctor2enums","getInspectorProps","getInstanceType","getInstanceCtor","_CCTexture2D","_ctor2default","_enums2ctor","_ctor2enums","_enums2default","gfxTexture2D","gfxTextureCube","ctor2default","enums2ctor","PARAM_COLOR3","className2InspectorName","typeName","valueCtor","assetType","../core/assets/CCTexture2D","../core/value-types","./gfx/texture-2d","282","TiledMapAsset","tmxXmlStr","textureNames","textureSizes","imageLayerTextures","imageLayerTextureNames","tsxFiles","tsxFileNames","283","./cocos2d/actions","./cocos2d/animation","./cocos2d/core","./cocos2d/core/components/CCStudioComponent","./cocos2d/deprecated","./cocos2d/particle","./cocos2d/particle/CCParticleAsset","./cocos2d/tilemap","./cocos2d/tilemap/CCTiledMapAsset","./cocos2d/videoplayer/CCVideoPlayer","./cocos2d/webview/CCWebView","./extensions/ccpool/CCNodePool","./extensions/dragonbones","./extensions/spine","284","EmptyHandle","ATTACHED_ROOT_NAME","ATTACHED_PRE_NAME","limitNode","_tempMat4","AttachUtil","_skeleton","_skeletonNode","_skeletonComp","_attachedRootNode","_attachedNodeArray","_boneIndexToNode","skeletonComp","_prepareAttachNode","armature","isCached","isAnimationCached","_frameCache","enableCacheAttachedInfo","_buildBoneAttachedNode","bone","boneIndex","boneNodeName","boneNode","_buildBoneRelation","_bone","_boneIndex","getAttachedRootNode","getAttachedNodes","boneName","nodeArray","_rebuildNodeArray","findMap","oldNodeArray","_toRemove","_sortNodeArray","_getNodeByBoneIndex","destroyAttachedNodes","markTree","delName","generateAttachedNodes","targetNodes","bones","boneData","buildBoneTree","parentBoneNode","targetNode","destroyAllAttachedNodes","generateAllAttachedNodes","parentIndex","_hasAttachedNode","attachedRootNode","_associateAttachedNode","_syncAttachedNode","rootMatrix","boneInfos","_curFrame","mulMat","matrixHandle","nodeMat","worldX","worldY","nodeArrayDirty","../../cocos2d/core/renderer/render-flow","../../cocos2d/core/value-types/mat4","285","TrackEntryListeners","spine","SkeletonCache","DefaultSkinsEnum","DefaultAnimsEnum","","AnimationCacheMode","REALTIME","SHARED_CACHE","PRIVATE_CACHE","setEnumAttr","Skeleton","skeletonData","SkeletonData","defaultSkin","defaultAnimation","_updateSkeletonData","_animationName","getCurrent","setAnimation","clearTrack","setToSetupPose","_defaultSkinIndex","skinsEnum","getSkinsEnum","skinIndex","skinName","setSkin","_animationIndex","animationName","animsEnum","getAnimsEnum","animIndex","animName","_preCacheMode","_cacheMode","_defaultCacheMode","setAnimationCacheMode","premultipliedAlpha","debugSlots","_updateDebugDraw","debugBones","debugMesh","useTint","_updateUseTint","enableBatch","_updateBatch","_accTime","_playCount","_skeletonCache","_animationQueue","_headAniInfo","_playTimes","_isAniComplete","_effectDelegate","_rootBone","_listener","_materialCache","_debugRenderer","_startSlotIndex","_endSlotIndex","_startEntry","trackIndex","_endEntry","attachUtil","_dataDirty","invalidAnimationCache","baseMaterial","isTexturesLoaded","setSkeletonData","sharedCache","enablePrivateMode","skeletonInfo","getSkeletonCache","skeleton","_clipper","clipper","getRootBone","SkeletonClipping","setSlotsRange","startSlotIndex","endSlotIndex","setAnimationStateData","stateData","handleDynamicAtlasAndSwitchMaterial","frameCache","isInvalid","updateToFrame","aniInfo","_updateCache","_updateRealtime","_emitCacheCompleteEvent","isInited","frameTime","FrameTime","frameIdx","setVertexEffectDelegate","effectDelegate","updateWorldTransform","setBonesToSetupPose","setSlotsToSetupPose","updateAnimationCache","findBone","findSlot","slotName","setSkinByName","getAttachment","attachmentName","getAttachmentByName","setAttachment","getRegion","region","setRegion","MeshAttachment","RegionAttachment","updateOffset","getTextureAtlas","regionAttachment","setMix","fromAnimation","toAnimation","getAnimationCache","initAnimationCache","findAnimation","setAnimationWith","addAnimationWith","clearTracks","setStartListener","_ensureListener","setInterruptListener","interrupt","setEndListener","setDisposeListener","dispose","setCompleteListener","setEventListener","setTrackStartListener","getListeners","setTrackInterruptListener","setTrackEndListener","setTrackDisposeListener","setTrackCompleteListener","trackEntry","loopCount","trackTime","animationEnd","setTrackEventListener","_updateAnimEnum","_updateSkinEnum","getRuntimeData","AnimationStateData","_refreshInspector","refreshSelectedInspector","debugDrawNode","debugDraw","../../cocos2d/core/components/CCRenderComponent","../../cocos2d/core/graphics/graphics","./AttachUtil","./lib/spine","./skeleton-cache","./track-entry-listeners","286","_isUseSpine","ATTACHMENT_TYPE","REGION","BOUNDING_BOX","SKINNED_MESH","AnimationEventType","START","INTERRUPT","END","DISPOSE","COMPLETE","EVENT","./Skeleton","./skeleton-data","./skeleton-texture","./spine-assembler","./vertex-effect-delegate","287","__extends","_extendStatics","extendStatics","__","timelines","timelineIds","getPropertyId","hasTimeline","lastTime","linearSearch","MixBlend","MixDirection","TimelineType","CurveTimeline","newFloatArray","BEZIER_SIZE","getFrameCount","setLinear","setStepped","STEPPED","getCurveType","BEZIER","setCurve","cx1","cy1","cx2","cy2","tmpx","tmpy","dddfx","dddfy","ddfx","ddfy","dfx","dfy","getCurvePercent","MathUtils","prevX","prevY","RotateTimeline","setFrame","degrees","r_1","ENTRIES","r_2","PREV_ROTATION","prevRotation","PREV_TIME","TranslateTimeline","X","Y","PREV_X","PREV_Y","ScaleTimeline","mixOut","signum","ShearTimeline","shear","shearX","shearY","ColorTimeline","slotIndex","R","G","B","A","setFromColor","PREV_R","PREV_G","PREV_B","PREV_A","TwoColorTimeline","twoColor","r2","g2","R2","G2","B2","darkColor","dark","setupLight","setupDark","PREV_R2","PREV_G2","PREV_B2","AttachmentTimeline","attachmentNames","attachmentName_1","attachmentName_2","zeros","DeformTimeline","frameVertices","deform","firedEvents","slotAttachment","VertexAttachment","deformAttachment","deformArray","vertexAttachment","deform_1","setArraySize","setupVertices","lastVertices","i_1","i_2","arrayCopy","vertexAttachment_1","i_3","i_4","i_5","i_6","i_7","prevVertices","nextVertices","i_8","i_9","i_10","vertexAttachment_2","i_11","i_12","i_13","i_14","i_15","EventTimeline","DrawOrderTimeline","drawOrders","drawOrder","drawOrderToSetupIndex","IkConstraintTimeline","ikConstraint","ikConstraintIndex","mix","softness","bendDirection","compress","stretch","MIX","SOFTNESS","BEND_DIRECTION","COMPRESS","STRETCH","constraint","ikConstraints","PREV_MIX","PREV_SOFTNESS","PREV_BEND_DIRECTION","PREV_COMPRESS","PREV_STRETCH","mixIn","TransformConstraintTimeline","transformConstraint","transformConstraintIndex","rotateMix","translateMix","scaleMix","shearMix","ROTATE","TRANSLATE","SHEAR","transformConstraints","PREV_ROTATE","PREV_TRANSLATE","PREV_SCALE","PREV_SHEAR","PathConstraintPositionTimeline","pathConstraintPosition","pathConstraintIndex","VALUE","pathConstraints","PREV_VALUE","PathConstraintSpacingTimeline","pathConstraintSpacing","spacing","PathConstraintMixTimeline","pathConstraintMix","tracks","EventQueue","propertyIDs","IntSet","animationsChanged","trackEntryPool","TrackEntry","animationLast","nextAnimationLast","trackLast","nextTrackLast","currentDelta","nextTime","setCurrent","mixingFrom","mixTime","trackEnd","disposeNext","updateMixingFrom","mixingTo","drain","finished","mixDuration","totalAlpha","interruptAlpha","_animationsChanged","applied","mixBlend","applyMixingFrom","animationTime","getAnimationTime","timelineCount","ii","webkit602BugfixHelper","timelineMode","firstFrame","timelinesRotation","timeline","timelineBlend","NOT_LAST","SUBSEQUENT","applyRotateTimeline","queueEvents","eventThreshold","attachments","attachmentThreshold","drawOrderThreshold","alphaHold","alphaMix","timelineHoldMix","FIRST","HOLD","holdMix","rotateTimeline","r1","diff","lastTotal","lastDiff","animationStart","trackLastWrapped","event_1","event_2","oldDrainDisabled","drainDisabled","expandToIndex","getMix","setEmptyAnimation","emptyAnimation","addEmptyAnimation","setEmptyAnimations","ensureArrayCapacity","obtain","holdPrevious","computeHold","computeNotLast","timelinesCount","timelineDipMix","HOLD_MIX","clearListeners","clearListenerNotifications","setAnimationLast","isComplete","resetRotationDirections","animState","objects","event_3","AnimationStateAdapter","animationToMixTime","defaultMix","fromName","toName","setMixWith","textureLoader","pathPrefix","toLoad","responseText","downloadBinary","loadBinary","loadText","loadTexture","loadTextureData","loadTextureAtlas","atlasData","pagesLoaded","atlasPages","TextureAtlas","FakeTexture","_loop_1","atlasPage","pageLoadError","imagePath","errorMessage","atlasPages_1","isLoadingComplete","getToLoad","getLoaded","hasErrors","getErrors","AtlasAttachmentLoader","newRegionAttachment","skin","findRegion","renderObject","newMeshAttachment","newBoundingBoxAttachment","BoundingBoxAttachment","newPathAttachment","PathAttachment","newPointAttachment","PointAttachment","newClippingAttachment","ClippingAttachment","BlendMode","Bone","arotation","ascaleX","ascaleY","ashearX","ashearY","appliedValid","sorted","isActive","updateWorldTransformWith","cosDeg","sinDeg","transformMode","TransformMode","la","lb","lc","ld","OnlyTranslation","NoRotationOrReflection","prx","radDeg","NoScale","NoScaleOrReflection","za","zc","zb","zd","getWorldRotationX","getWorldRotationY","getWorldScaleX","getWorldScaleY","updateAppliedTransform","pid","ic","ra","rb","rc","worldToLocal","invDet","localToWorld","worldToLocalRotation","worldRotation","localToWorldRotation","localRotation","rotateWorld","BoneData","skinRequired","ConstraintData","EventData","IkConstraint","apply1","apply2","rotationIK","dd","bendDir","psx","psy","csx","os1","os2","s2","cwx","cwy","pp","td","ta","r0","minAngle","minDist","maxAngle","maxDist","IkConstraintData","PathConstraint","spaces","positions","segments","percentSpacing","spacingMode","SpacingMode","Percent","rotateMode","tangents","RotateMode","Tangent","ChainScale","boneCount","spacesCount","lengthSpacing","Length","setupLength","length_1","length_2","computeWorldPositions","positionMode","PositionMode","boneX","boneY","offsetRotation","tip","Chain","degRad","length_3","length_4","percentPosition","verticesLength","worldVerticesLength","curveCount","prevCurve","constantSpeed","pathLength_1","BEFORE","computeWorldVertices","addBeforePosition","AFTER","addAfterPosition","length_5","addCurvePosition","pathLength","curveLength","segment","length_6","length_7","tt","ttt","uu","uuu","ut","ut3","uut3","utt3","PathConstraintData","Assets","clientId","SharedAssetManager","clientAssets","queuedAssets","queueAsset","onreadystatechange","DONE","loadJson","updateClientAssets","rawAsset","updateCacheReset","parent_1","slotData","Slot","ikConstraintData","transformConstraintData","TransformConstraint","pathConstraintData","updateCache","skinBones","ikCount","transformCount","pathCount","constraintCount","sortIkConstraint","sortTransformConstraint","sortPathConstraint","sortBone","constraints","constrained","sortReset","slotBone","sortPathConstraintAttachment","skins","sortPathConstraintAttachmentWith","pathBones","findBoneIndex","findSlotIndex","findSkin","newSkin","attachAll","name_1","findIkConstraint","constraintName","findTransformConstraint","findPathConstraint","getBounds","POSITIVE_INFINITY","NEGATIVE_INFINITY","mesh","nn","SkeletonBinary","attachmentLoader","linkedMeshes","readSkeletonData","binary","BinaryInput","readString","readFloat","nonessential","readBoolean","imagesPath","audioPath","readInt","name_2","parent_2","TransformModeValues","rgba8888ToColor","readInt32","SlotData","rgb888ToColor","readStringRef","blendMode","BlendModeValues","readByte","TransformConstraintData","offsetScaleX","offsetScaleY","offsetShearY","PositionModeValues","SpacingModeValues","RotateModeValues","Fixed","readSkin","linkedMesh","parent_3","inheritDeform","setParentMesh","intValue","floatValue","stringValue","volume","balance","animations","readAnimation","slotCount","Skin","name_3","readAttachment","AttachmentTypeValues","AttachmentType","Region","BoundingBox","readVertices","readFloatArray","readShortArray","hullLength","edges","regionUVs","LinkedMesh","parent_4","closed_1","Clipping","endSlot","Vertices","weights","bonesArray","toFloatArray","readShort","tempColor1","tempColor2","timelineType","SLOT_ATTACHMENT","SLOT_COLOR","readCurve","SLOT_TWO_COLOR","BONE_ROTATE","BONE_TRANSLATE","BONE_SCALE","BONE_SHEAR","timelineScale","PATH_POSITION","PATH_SPACING","PATH_MIX","iii","nnn","weighted","deformLength","vn","drawOrderCount","offsetCount","unchanged","unchangedIndex","eventCount","event_4","CURVE_STEPPED","CURVE_BEZIER","Additive","Multiply","Screen","CURVE_LINEAR","getInt16","optimizePositive","byteCount","chars","charCount","fromCharCode","SkeletonBounds","boundingBoxes","polygons","polygonPool","updateAabb","freeAll","boundingBox","polygon","aabbCompute","aabbContainsPoint","aabbIntersectsSegment","aabbIntersectsSkeleton","bounds","containsPoint","containsPointPolygon","prevIndex","vertexY","vertexX","intersectsSegment","intersectsSegmentPolygon","width12","height12","det1","det2","width34","height34","det3","getPolygon","getWidth","getHeight","triangulator","Triangulator","clippingPolygon","clipOutput","clippedVertices","clippedTriangles","scratch","clipStart","clipAttachment","makeClockwise","clippingPolygons","decompose","triangulate","n_1","clipEndWithSlot","clipEnd","isClipping","clipTriangles","trianglesLength","originIndexOffset","originVertOffset","originUVSOffset","polygonsCount","vertexSize","xyOffset","u2","u3","clippedVerticesItems","clippedTrianglesItems","clipOutputLength","d0","d4","clipOutputCount","clipOutputItems","c0","clippingArea","originalOutput","clipped","clippingVertices","clippingVerticesLast","edgeX","edgeY","edgeX2","edgeY2","deltaX","inputVertices","inputVerticesLength","outputStart","inputX","inputY","inputX2","inputY2","side2","verticeslength","p2x","lastX","findEvent","eventDataName","event_5","findPathConstraintIndex","pathConstraintName","SkeletonJson","skeletonMap","boneMap","parent_5","parentName","getValue","transformModeFromString","slotMap","setFromString","blendModeFromString","ik","constraintMap","targetName","positionModeFromString","spacingModeFromString","rotateModeFromString","skinArr","skinMap","entryName","parent_6","animationMap","parent_7","scaledVertices","timelineName","timelineMap","valueMap","mapPath","deformName","deformMap","verticesValue","drawOrderNode","draworder","drawOrderMap","offsetMap","event_6","toSinglePrecision","SkinEntry","addSkin","contained","getAttachments","copySkin","newLinkedMesh","dictionary","removeAttachment","slotAttachments","name_4","getAttachmentsForSlot","name_5","oldSkin","skinAttachment","getSkeleton","attachmentTime","setAttachmentTime","getAttachmentTime","getImage","filterFromString","TextureFilter","Nearest","MipMap","MipMapNearestNearest","MipMapLinearNearest","MipMapNearestLinear","MipMapLinearLinear","wrapFromString","TextureWrap","MirroredRepeat","ClampToEdge","TextureRegion","setWraps","uWrap","vWrap","atlasText","pages","regions","reader","TextureAtlasReader","tuple","page","readLine","TextureAtlasRegion","rotateValue","readValue","readTuple","TextureAtlasPage","colon","lastMatch","Vector2","applyRelativeLocal","applyAbsoluteLocal","applyRelativeWorld","applyAbsoluteWorld","tc","degRadReflect","modified","convexPolygons","convexPolygonsIndices","indicesArray","isConcaveArray","polygonIndicesPool","verticesArray","isConcave","previous","p3x","p3y","vx","vy","positiveArea","previousIndex","nextIndex","polygonIndices","fanBaseIndex","lastWinding","merged","winding1","winding","winding2","firstIndex","prevPrevX","prevPrevY","firstX","firstY","secondX","secondY","otherIndices","otherFirstIndex","otherSecondIndex","otherLastIndex","otherPoly","toInt","cbrt","randomTriangular","randomTriangularWith","Interpolation","applyInternal","Pow","power","PowOut","sourceStart","destStart","numElements","oldSize","SUPPORTS_TYPED_ARRAYS","newShortArray","fround","DebugUtils","logBones","instantiator","TimeKeeper","maxDelta","framesPerSecond","WindowedMean","windowSize","addedValues","lastValue","mean","hasEnoughData","addValue","getMean","Attachment","nextID","worldVertices","v_1","skeletonBones","weight","copyTo","tempColor","textureWidth","textureHeight","getParentMesh","parentMesh","computeWorldPosition","computeWorldRotation","regionScaleX","regionScaleY","localX2","localY2","localXCos","localXSin","localYCos","localYSin","localX2Cos","localX2Sin","localY2Cos","localY2Sin","OX1","OY1","OX2","OY2","OX3","OY3","OX4","OY4","rendererObject","X1","Y1","C1R","C1G","C1B","C1A","U1","V1","X2","Y2","C2R","C2G","C2B","C2A","U2","V2","X3","Y3","C3R","C3G","C3B","C3A","U3","V3","X4","Y4","C4R","C4G","C4B","C4A","U4","V4","JitterEffect","jitterX","jitterY","SwirlEffect","interpolation","centerX","centerY","radAngle","dist","288","MaxCacheTime","_indices","_boneInfoOffset","_vertexOffset","_indexOffset","_vfOffset","_preTexUrl","_preBlendMode","_segVCount","_segICount","_segOffset","_colorOffset","_preFinalColor","_preDarkColor","_perVertexSize","_perClipVertexSize","_vfCount","_indexCount","_tempr","_tempg","_tempb","_tempa","_finalColor32","_darkColor32","_finalColor","_darkColor","_quadTriangles","AnimationCache","_privateMode","_invalid","_enableCacheAttachedInfo","_frameIdx","_skeletonInfo","_tempSegments","_tempColors","_tempBoneInfos","invalidAllFrame","completeHandle","unbind","preAnimationCache","curAnimationCache","_needToUpdate","toFrameIdx","_updateFrame","updateAllFrame","uintVert","_traverseSkeleton","vfOffset","preSegOffset","preSegInfo","indexCount","vfCount","fillVertices","skeletonColor","attachmentColor","slotColor","fr","fg","fa","dr","dg","jj","isRegion","isMesh","isClip","boneInfo","slotIdx","_ii","_nn","_animationPool","removeSkeleton","animationsCache","aniKey","animationCache","poolKey","_animationCache","289","_skeletonJson","skeletonJsonStr","skeletonJson","_atlasText","createRegion","origSize","skelTex","SkeletonTexture","setRealTexture","updateRegionUV","createSpriteFrame","_atlasCache","_cloneId","ensureTexturesLoaded","caller","texsLen","loadedCount","loadedItem","quiet","_getAtlas","resData","_getTexture","names","_region","290","getRealTexture","291","VFOneColor","VFOneColorTexId","VFTwoColor","FLAG_BATCH","FLAG_TWO_COLOR","_handleVal","_slotColor","_boneColor","_originColor","_meshColor","_tempPos","_tempUv","_premultipliedAlpha","_multiplier","_slotRangeStart","_slotRangeEnd","_useTint","_useMulti","_debugSlots","_debugBones","_debugMesh","_nodeR","_nodeG","_nodeB","_nodeA","_vertexFloatCount","_vertexCount","_vertexFloatOffset","_inRange","_mustFlush","_m00","_m04","_m12","_m01","_m05","_m13","_g","_fr","_fg","_fb","_fa","_dr","_dg","_db","_da","_renderer","_needColor","_vertexEffect","_getSlotMaterial","useModel","materialCache","materialInfo","_handleColor","_spineColorToInt32","spineColor","SpineAssembler","packDynamicAtlasForSpine","_v2","_n2","_v3","_n3","realTimeTraverse","locSkeleton","worldMatm","_ii2","_nn2","_ii3","_nn3","_n4","cacheTraverse","uintbuf","frameVFOffset","frameIndexOffset","segVFCount","needBatch","calcTranslate","nowColor","maxVFOffset","segInfo","_ii4","_il","_ii5","_il2","frameColorOffset","_ii6","_il3","_ii7","_il4","nodeColor","../../cocos2d/core/renderer/assembler","../../cocos2d/core/renderer/webgl/vertex-format","292","293","VertexEffectDelegate","_interpolation","_effectType","initJitter","initSwirlWithPow","initSwirlWithPowOut","getJitterVertexEffect","getSwirlVertexEffect","getVertexEffect","getEffectType","294","./cocos2d","./cocos2d/core/predefine","./extends","./package","./polyfill/array","./polyfill/array-buffer","./polyfill/misc","./polyfill/number","./polyfill/object","./polyfill/string","./polyfill/typescript","./predefine","295","TypedArray","296","297","LOG2E","Timer","_timerTable","298","299","ownKeys","getOwnPropertySymbols","300","searchString","301","__assign","__rest","propertyIsEnumerable","__decorate","decorators","Reflect","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","adopt","fulfilled","rejected","__generator","_","sent","trys","ops","verb","throw","return","__exportStar","__createBinding","k2","__values","__read","__spread","__spreadArrays","jl","__await","__asyncGenerator","asyncIterator","settle","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","__importStar","mod","__importDefault","__classPrivateFieldGet","receiver","privateMap","__classPrivateFieldSet","302","defineMacro","defineDeprecatedMacroGetter","recommandedUsage","defined","WECHATGAMESUB","getSharedCanvas","WECHATGAME","getSystemInfoSync","QQPLAY","engineVersion"],"mappings":"CAWA,SAAAA,MAAAC,SAAAC,OAAAC;EACA,SAAAC,WAAAC,MAAAC;IACA,IAAAC,SAAAL,MAAAG;IACA,KAAAE,QAAA;MACA,IAAAC,aAAAP,QAAAI;MACA,KAAAG,YAEA;MAEA,IAAAC,UAAA;MACAF,SAAAL,MAAAG,QAAA;QAAAI,SAAAA;;MACAD,WAAA,GAAA,SAAAE;QACA,OAAAN,WAAAI,WAAA,GAAAE,MAAAA;SACAH,QAAAE;;IAEA,OAAAF,OAAAE;;EAEA,KAAA,IAAAE,IAAA,GAAAA,IAAAR,MAAAS,QAAAD,KAAAP,WAAAD,MAAAQ;EAGA,OAAAP;EApBA,CAsBA;EAAAS,GAAA,EAAA,SAAAC,SAAAP,QAAAE;ICjCAF,OAAAE,UAAA;MACAM,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,KAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,KAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,KAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,KAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,MAAA;MACAC,KAAA;MACAC,MAAA;MACA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","file":"cocos2d-js.76b90.js","sourcesContent":["\n// Based on https://github.com/substack/browser-pack/blob/master/prelude.js\n\n// modules are defined as an array\n// [ module function, map of requireuires ]\n//\n// map of requireuires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the requireuire for previous bundles\n\n(function outer (modules, cache, entry) {\n function newRequire(name, jumped){\n var module = cache[name];\n if(!module) {\n var moduleData = modules[name];\n if(!moduleData) {\n // this module is excluded from engine\n return undefined;\n }\n var exports = {};\n module = cache[name] = {exports: exports};\n moduleData[0](function(x){\n return newRequire(moduleData[1][x] || x);\n },module,exports);\n }\n return module.exports;\n }\n for(var i=0;i\n step:function (dt) {\n cc.logID(1006);\n },\n\n // Called once per frame. Time is the number of seconds of a frame interval.\n update:function (dt) {\n cc.logID(1007);\n },\n\n /**\n * !#en get the target.\n * !#zh 获取当前目标节点。\n * @method getTarget\n * @return {Node}\n */\n getTarget:function () {\n return this.target;\n },\n\n /**\n * !#en The action will modify the target properties.\n * !#zh 设置目标节点。\n * @method setTarget\n * @param {Node} target\n */\n setTarget:function (target) {\n this.target = target;\n },\n\n /**\n * !#en get the original target.\n * !#zh 获取原始目标节点。\n * @method getOriginalTarget\n * @return {Node}\n */\n getOriginalTarget:function () {\n return this.originalTarget;\n },\n\n // Set the original target, since target can be nil.\n // Is the target that were used to run the action.\n // Unless you are doing something complex, like cc.ActionManager, you should NOT call this method.\n setOriginalTarget:function (originalTarget) {\n this.originalTarget = originalTarget;\n },\n\n /**\n * !#en get tag number.\n * !#zh 获取用于识别动作的标签。\n * @method getTag\n * @return {Number}\n */\n getTag:function () {\n return this.tag;\n },\n\n /**\n * !#en set tag number.\n * !#zh 设置标签,用于识别动作。\n * @method setTag\n * @param {Number} tag\n */\n setTag:function (tag) {\n this.tag = tag;\n },\n\n // Currently JavaScript Bindigns (JSB), in some cases, needs to use retain and release. This is a bug in JSB,\n // and the ugly workaround is to use retain/release. So, these 2 methods were added to be compatible with JSB.\n // This is a hack, and should be removed once JSB fixes the retain/release bug.\n retain:function () {\n },\n\n // Currently JavaScript Bindigns (JSB), in some cases, needs to use retain and release. This is a bug in JSB,\n // and the ugly workaround is to use retain/release. So, these 2 methods were added to be compatible with JSB.\n // This is a hack, and should be removed once JSB fixes the retain/release bug.\n release:function () {\n }\n});\n\n/**\n * !#en Default Action tag.\n * !#zh 默认动作标签。\n * @property TAG_INVALID\n * @constant\n * @static\n * @type {Number}\n * @default -1\n */\ncc.Action.TAG_INVALID = -1;\n\n\n/**\n * !#en\n * Base class actions that do have a finite time duration. \n * Possible actions: \n * - An action with a duration of 0 seconds. \n * - An action with a duration of 35.5 seconds.\n *\n * Infinite time actions are valid\n * !#zh 有限时间动作,这种动作拥有时长 duration 属性。\n * @class FiniteTimeAction\n * @extends Action\n */\ncc.FiniteTimeAction = cc.Class({\n name: 'cc.FiniteTimeAction',\n extends: cc.Action,\n\n ctor:function () {\n //! duration in seconds\n this._duration = 0;\n },\n\n /**\n * !#en get duration of the action. (seconds).\n * !#zh 获取动作以秒为单位的持续时间。\n * @method getDuration\n * @return {Number}\n */\n getDuration:function () {\n return this._duration * (this._timesForRepeat || 1);\n },\n\n /**\n * !#en set duration of the action. (seconds).\n * !#zh 设置动作以秒为单位的持续时间。\n * @method setDuration\n * @param {Number} duration\n */\n setDuration:function (duration) {\n this._duration = duration;\n },\n\n /**\n * !#en\n * Returns a reversed action. \n * For example: \n * - The action will be x coordinates of 0 move to 100. \n * - The reversed action will be x of 100 move to 0.\n * - Will be rewritten\n * !#zh 返回一个新的动作,执行与原动作完全相反的动作。\n * @method reverse\n * @return {Null}\n */\n reverse:function () {\n cc.logID(1008);\n return null;\n },\n\n /**\n * !#en\n * to copy object with deep copy.\n * returns a clone of action.\n * !#zh 返回一个克隆的动作。\n * @method clone\n * @return {FiniteTimeAction}\n */\n clone:function () {\n return new cc.FiniteTimeAction();\n }\n});\n\n/**\n * @module cc\n */\n\n/*\n * Changes the speed of an action, making it take longer (speed > 1)\n * or less (speed < 1) time. \n * Useful to simulate 'slow motion' or 'fast forward' effect.\n *\n * @warning This action can't be Sequenceable because it is not an cc.IntervalAction\n * @class Speed\n * @extends Action\n *\n * @param {ActionInterval} action\n * @param {Number} speed\n */\ncc.Speed = cc.Class({\n name: 'cc.Speed',\n extends: cc.Action,\n\n ctor:function (action, speed) {\n this._speed = 0;\n this._innerAction = null;\n\n\t\taction && this.initWithAction(action, speed);\n },\n\n /*\n * Gets the current running speed. \n * Will get a percentage number, compared to the original speed.\n *\n * @method getSpeed\n * @return {Number}\n */\n getSpeed:function () {\n return this._speed;\n },\n\n /*\n * alter the speed of the inner function in runtime.\n * @method setSpeed\n * @param {Number} speed\n */\n setSpeed:function (speed) {\n this._speed = speed;\n },\n\n /*\n * initializes the action.\n * @method initWithAction\n * @param {ActionInterval} action\n * @param {Number} speed\n * @return {Boolean}\n */\n initWithAction:function (action, speed) {\n if (!action) {\n cc.errorID(1021);\n return false;\n }\n\n this._innerAction = action;\n this._speed = speed;\n return true;\n },\n\n clone:function () {\n var action = new cc.Speed();\n action.initWithAction(this._innerAction.clone(), this._speed);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.Action.prototype.startWithTarget.call(this, target);\n this._innerAction.startWithTarget(target);\n },\n\n stop:function () {\n this._innerAction.stop();\n cc.Action.prototype.stop.call(this);\n },\n\n step:function (dt) {\n this._innerAction.step(dt * this._speed);\n },\n\n isDone:function () {\n return this._innerAction.isDone();\n },\n\n reverse:function () {\n return new cc.Speed(this._innerAction.reverse(), this._speed);\n },\n\n /*\n * Set inner Action.\n * @method setInnerAction\n * @param {ActionInterval} action\n */\n setInnerAction:function (action) {\n if (this._innerAction !== action) {\n this._innerAction = action;\n }\n },\n\n /*\n * Get inner Action.\n * @method getInnerAction\n * @return {ActionInterval}\n */\n getInnerAction:function () {\n return this._innerAction;\n }\n});\n\n/**\n * @module cc\n */\n\n/**\n * !#en\n * Creates the speed action which changes the speed of an action, making it take longer (speed > 1)\n * or less (speed < 1) time. \n * Useful to simulate 'slow motion' or 'fast forward' effect.\n * !#zh 修改目标动作的速率。\n * @warning This action can't be Sequenceable because it is not an cc.IntervalAction\n *\n * @method speed\n * @param {ActionInterval} action\n * @param {Number} speed\n * @return {Action}\n * @example\n * // change the target action speed;\n * var action = cc.scaleTo(0.2, 1, 0.6);\n * var newAction = cc.speed(action, 0.5);\n */\ncc.speed = function (action, speed) {\n return new cc.Speed(action, speed);\n};\n\n/*\n * cc.Follow is a follow action which makes its target follows another node.\n *\n * @example\n * //example\n * //Instead of using cc.Camera as a \"follower\", use this action instead.\n * layer.runAction(cc.follow(hero));\n *\n * @property {Number} leftBoundary - world leftBoundary.\n * @property {Number} rightBoundary - world rightBoundary.\n * @property {Number} topBoundary - world topBoundary.\n * @property {Number} bottomBoundary - world bottomBoundary.\n *\n * @param {cc.Node} followedNode\n * @param {Rect} rect\n * @example\n * // creates the action with a set boundary\n * var followAction = new cc.Follow(node, cc.rect(0, 0, s.width * 2 - 100, s.height));\n * this.runAction(followAction);\n *\n * // creates the action with no boundary set\n * var followAction = new cc.Follow(node);\n * this.runAction(followAction);\n *\n * @class\n * @extends Action\n */\ncc.Follow = cc.Class({\n name: 'cc.Follow',\n extends: cc.Action,\n\n\t/*\n * Constructor function, override it to extend the construction behavior, remember to call \"this._super()\" in the extended \"ctor\" function. \n\t * creates the action with a set boundary. \n\t * creates the action with no boundary set.\n * @param {cc.Node} followedNode\n * @param {Rect} rect\n\t */\n ctor:function (followedNode, rect) {\n // node to follow\n this._followedNode = null;\n // whether camera should be limited to certain area\n this._boundarySet = false;\n // if screen size is bigger than the boundary - update not needed\n this._boundaryFullyCovered = false;\n // fast access to the screen dimensions\n this._halfScreenSize = null;\n this._fullScreenSize = null;\n\n this.leftBoundary = 0.0;\n this.rightBoundary = 0.0;\n this.topBoundary = 0.0;\n this.bottomBoundary = 0.0;\n this._worldRect = cc.rect(0, 0, 0, 0);\n\n\t\tif(followedNode)\n\t\t\trect ? this.initWithTarget(followedNode, rect)\n\t\t\t\t : this.initWithTarget(followedNode);\n },\n\n clone:function () {\n var action = new cc.Follow();\n var locRect = this._worldRect;\n var rect = new cc.Rect(locRect.x, locRect.y, locRect.width, locRect.height);\n action.initWithTarget(this._followedNode, rect);\n return action;\n },\n\n /*\n * Get whether camera should be limited to certain area.\n *\n * @return {Boolean}\n */\n isBoundarySet:function () {\n return this._boundarySet;\n },\n\n /*\n * alter behavior - turn on/off boundary.\n *\n * @param {Boolean} value\n */\n setBoudarySet:function (value) {\n this._boundarySet = value;\n },\n\n /*\n * initializes the action with a set boundary.\n *\n * @param {cc.Node} followedNode\n * @param {Rect} [rect=]\n * @return {Boolean}\n */\n initWithTarget:function (followedNode, rect) {\n if (!followedNode) {\n cc.errorID(1022);\n return false;\n }\n\n var _this = this;\n rect = rect || cc.rect(0, 0, 0, 0);\n _this._followedNode = followedNode;\n _this._worldRect = rect;\n\n _this._boundarySet = !(rect.width === 0 && rect.height === 0);\n\n _this._boundaryFullyCovered = false;\n\n var winSize = cc.winSize;\n _this._fullScreenSize = cc.v2(winSize.width, winSize.height);\n _this._halfScreenSize = _this._fullScreenSize.mul(0.5);\n\n if (_this._boundarySet) {\n _this.leftBoundary = -((rect.x + rect.width) - _this._fullScreenSize.x);\n _this.rightBoundary = -rect.x;\n _this.topBoundary = -rect.y;\n _this.bottomBoundary = -((rect.y + rect.height) - _this._fullScreenSize.y);\n\n if (_this.rightBoundary < _this.leftBoundary) {\n // screen width is larger than world's boundary width\n //set both in the middle of the world\n _this.rightBoundary = _this.leftBoundary = (_this.leftBoundary + _this.rightBoundary) / 2;\n }\n if (_this.topBoundary < _this.bottomBoundary) {\n // screen width is larger than world's boundary width\n //set both in the middle of the world\n _this.topBoundary = _this.bottomBoundary = (_this.topBoundary + _this.bottomBoundary) / 2;\n }\n\n if ((_this.topBoundary === _this.bottomBoundary) && (_this.leftBoundary === _this.rightBoundary))\n _this._boundaryFullyCovered = true;\n }\n return true;\n },\n\n step:function (dt) {\n var targetWorldPos = this.target.convertToWorldSpaceAR(cc.Vec2.ZERO);\n var followedWorldPos = this._followedNode.convertToWorldSpaceAR(cc.Vec2.ZERO);\n // compute the offset between followed and target node\n var delta = targetWorldPos.sub(followedWorldPos);\n var tempPos = this.target.parent.convertToNodeSpaceAR(delta.add(this._halfScreenSize));\n\n if (this._boundarySet) {\n // whole map fits inside a single screen, no need to modify the position - unless map boundaries are increased\n if (this._boundaryFullyCovered)\n return;\n\n\t this.target.setPosition(misc.clampf(tempPos.x, this.leftBoundary, this.rightBoundary), misc.clampf(tempPos.y, this.bottomBoundary, this.topBoundary));\n } else {\n this.target.setPosition(tempPos.x, tempPos.y);\n }\n },\n\n isDone:function () {\n return ( !this._followedNode.activeInHierarchy );\n },\n\n stop:function () {\n this.target = null;\n cc.Action.prototype.stop.call(this);\n }\n});\n\n/**\n * !#en Create a follow action which makes its target follows another node.\n * !#zh 追踪目标节点的位置。\n * @method follow\n * @param {Node} followedNode\n * @param {Rect} rect\n * @return {Action|Null} returns the cc.Follow object on success\n * @example\n * // example\n * // creates the action with a set boundary\n * var followAction = cc.follow(targetNode, cc.rect(0, 0, screenWidth * 2 - 100, screenHeight));\n * node.runAction(followAction);\n *\n * // creates the action with no boundary set\n * var followAction = cc.follow(targetNode);\n * node.runAction(followAction);\n */\ncc.follow = function (followedNode, rect) {\n return new cc.Follow(followedNode, rect);\n};\n","/****************************************************************************\n Copyright (c) 2008 Radu Gruian\n Copyright (c) 2008-2010 Ricardo Quesada\n Copyright (c) 2011 Vit Valentin\n Copyright (c) 2011-2012 cocos2d-x.org\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n\n Orignal code by Radu Gruian: http://www.codeproject.com/Articles/30838/Overhauser-Catmull-Rom-Splines-for-Camera-Animatio.So\n\n Adapted to cocos2d-x by Vit Valentin\n\n Adapted from cocos2d-x to cocos2d-iphone by Ricardo Quesada\n ****************************************************************************/\n\n/**\n * @module cc\n */\n\n/*\n * Returns the Cardinal Spline position for a given set of control points, tension and time. \n * CatmullRom Spline formula. \n * s(-ttt + 2tt - t)P1 + s(-ttt + tt)P2 + (2ttt - 3tt + 1)P2 + s(ttt - 2tt + t)P3 + (-2ttt + 3tt)P3 + s(ttt - tt)P4\n *\n * @method cardinalSplineAt\n * @param {Vec2} p0\n * @param {Vec2} p1\n * @param {Vec2} p2\n * @param {Vec2} p3\n * @param {Number} tension\n * @param {Number} t\n * @return {Vec2}\n */\nfunction cardinalSplineAt (p0, p1, p2, p3, tension, t) {\n var t2 = t * t;\n var t3 = t2 * t;\n\n /*\n * Formula: s(-ttt + 2tt - t)P1 + s(-ttt + tt)P2 + (2ttt - 3tt + 1)P2 + s(ttt - 2tt + t)P3 + (-2ttt + 3tt)P3 + s(ttt - tt)P4\n */\n var s = (1 - tension) / 2;\n\n var b1 = s * ((-t3 + (2 * t2)) - t); // s(-t3 + 2 t2 - t)P1\n var b2 = s * (-t3 + t2) + (2 * t3 - 3 * t2 + 1); // s(-t3 + t2)P2 + (2 t3 - 3 t2 + 1)P2\n var b3 = s * (t3 - 2 * t2 + t) + (-2 * t3 + 3 * t2); // s(t3 - 2 t2 + t)P3 + (-2 t3 + 3 t2)P3\n var b4 = s * (t3 - t2); // s(t3 - t2)P4\n\n var x = (p0.x * b1 + p1.x * b2 + p2.x * b3 + p3.x * b4);\n var y = (p0.y * b1 + p1.y * b2 + p2.y * b3 + p3.y * b4);\n return cc.v2(x, y);\n};\n\n/*\n * returns a point from the array\n * @method getControlPointAt\n * @param {Array} controlPoints\n * @param {Number} pos\n * @return {Array}\n */\nfunction getControlPointAt (controlPoints, pos) {\n var p = Math.min(controlPoints.length - 1, Math.max(pos, 0));\n return controlPoints[p];\n};\n\nfunction reverseControlPoints (controlPoints) {\n var newArray = [];\n for (var i = controlPoints.length - 1; i >= 0; i--) {\n newArray.push(cc.v2(controlPoints[i].x, controlPoints[i].y));\n }\n return newArray;\n}\n\nfunction cloneControlPoints (controlPoints) {\n var newArray = [];\n for (var i = 0; i < controlPoints.length; i++)\n newArray.push(cc.v2(controlPoints[i].x, controlPoints[i].y));\n return newArray;\n}\n\n\n/*\n * Cardinal Spline path. http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline\n * Absolute coordinates.\n *\n * @class CardinalSplineTo\n * @extends ActionInterval\n *\n * @param {Number} duration\n * @param {Array} points array of control points\n * @param {Number} tension\n *\n * @example\n * //create a cc.CardinalSplineTo\n * var action1 = cc.cardinalSplineTo(3, array, 0);\n */\ncc.CardinalSplineTo = cc.Class({\n name: 'cc.CardinalSplineTo',\n extends: cc.ActionInterval,\n\n ctor: function (duration, points, tension) {\n /* Array of control points */\n this._points = [];\n this._deltaT = 0;\n this._tension = 0;\n this._previousPosition = null;\n this._accumulatedDiff = null;\n tension !== undefined && cc.CardinalSplineTo.prototype.initWithDuration.call(this, duration, points, tension);\n },\n\n initWithDuration:function (duration, points, tension) {\n if (!points || points.length === 0) {\n cc.errorID(1024);\n return false;\n }\n\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this.setPoints(points);\n this._tension = tension;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.CardinalSplineTo();\n action.initWithDuration(this._duration, cloneControlPoints(this._points), this._tension);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n // Issue #1441 from cocos2d-iphone\n this._deltaT = 1 / (this._points.length - 1);\n this._previousPosition = cc.v2(this.target.x, this.target.y);\n this._accumulatedDiff = cc.v2(0, 0);\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n var p, lt;\n var ps = this._points;\n // eg.\n // p..p..p..p..p..p..p\n // 1..2..3..4..5..6..7\n // want p to be 1, 2, 3, 4, 5, 6\n if (dt === 1) {\n p = ps.length - 1;\n lt = 1;\n } else {\n var locDT = this._deltaT;\n p = 0 | (dt / locDT);\n lt = (dt - locDT * p) / locDT;\n }\n\n var newPos = cardinalSplineAt(\n getControlPointAt(ps, p - 1),\n getControlPointAt(ps, p - 0),\n getControlPointAt(ps, p + 1),\n getControlPointAt(ps, p + 2),\n this._tension, lt);\n\n if (cc.macro.ENABLE_STACKABLE_ACTIONS) {\n var tempX, tempY;\n tempX = this.target.x - this._previousPosition.x;\n tempY = this.target.y - this._previousPosition.y;\n if (tempX !== 0 || tempY !== 0) {\n var locAccDiff = this._accumulatedDiff;\n tempX = locAccDiff.x + tempX;\n tempY = locAccDiff.y + tempY;\n locAccDiff.x = tempX;\n locAccDiff.y = tempY;\n newPos.x += tempX;\n newPos.y += tempY;\n }\n }\n this.updatePosition(newPos);\n },\n\n reverse:function () {\n var reversePoints = reverseControlPoints(this._points);\n return cc.cardinalSplineTo(this._duration, reversePoints, this._tension);\n },\n\n /*\n * update position of target\n * @method updatePosition\n * @param {Vec2} newPos\n */\n updatePosition:function (newPos) {\n this.target.setPosition(newPos);\n this._previousPosition = newPos;\n },\n\n /*\n * Points getter\n * @method getPoints\n * @return {Array}\n */\n getPoints:function () {\n return this._points;\n },\n\n /**\n * Points setter\n * @method setPoints\n * @param {Array} points\n */\n setPoints:function (points) {\n this._points = points;\n }\n});\n\n/**\n * !#en Creates an action with a Cardinal Spline array of points and tension.\n * !#zh 按基数样条曲线轨迹移动到目标位置。\n * @method cardinalSplineTo\n * @param {Number} duration\n * @param {Array} points array of control points\n * @param {Number} tension\n * @return {ActionInterval}\n *\n * @example\n * //create a cc.CardinalSplineTo\n * var action1 = cc.cardinalSplineTo(3, array, 0);\n */\ncc.cardinalSplineTo = function (duration, points, tension) {\n return new cc.CardinalSplineTo(duration, points, tension);\n};\n\n/*\n * Cardinal Spline path. http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline\n * Relative coordinates.\n *\n * @class CardinalSplineBy\n * @extends CardinalSplineTo\n *\n * @param {Number} duration\n * @param {Array} points\n * @param {Number} tension\n *\n * @example\n * //create a cc.CardinalSplineBy\n * var action1 = cc.cardinalSplineBy(3, array, 0);\n */\ncc.CardinalSplineBy = cc.Class({\n name: 'cc.CardinalSplineBy',\n extends: cc.CardinalSplineTo,\n\n ctor:function (duration, points, tension) {\n this._startPosition = cc.v2(0, 0);\n tension !== undefined && this.initWithDuration(duration, points, tension);\n },\n\n startWithTarget:function (target) {\n cc.CardinalSplineTo.prototype.startWithTarget.call(this, target);\n this._startPosition.x = target.x;\n this._startPosition.y = target.y;\n },\n\n reverse:function () {\n var copyConfig = this._points.slice();\n var current;\n //\n // convert \"absolutes\" to \"diffs\"\n //\n var p = copyConfig[0];\n for (var i = 1; i < copyConfig.length; ++i) {\n current = copyConfig[i];\n copyConfig[i] = current.sub(p);\n p = current;\n }\n\n // convert to \"diffs\" to \"reverse absolute\"\n var reverseArray = reverseControlPoints(copyConfig);\n\n // 1st element (which should be 0,0) should be here too\n p = reverseArray[ reverseArray.length - 1 ];\n reverseArray.pop();\n\n p.x = -p.x;\n p.y = -p.y;\n\n reverseArray.unshift(p);\n for (var i = 1; i < reverseArray.length; ++i) {\n current = reverseArray[i];\n current.x = -current.x;\n current.y = -current.y;\n current.x += p.x;\n current.y += p.y;\n reverseArray[i] = current;\n p = current;\n }\n return cc.cardinalSplineBy(this._duration, reverseArray, this._tension);\n },\n\n /**\n * update position of target\n * @method updatePosition\n * @param {Vec2} newPos\n */\n updatePosition:function (newPos) {\n var pos = this._startPosition;\n var posX = newPos.x + pos.x;\n var posY = newPos.y + pos.y;\n this._previousPosition.x = posX;\n this._previousPosition.y = posY;\n this.target.setPosition(posX, posY);\n },\n\n clone:function () {\n var a = new cc.CardinalSplineBy();\n a.initWithDuration(this._duration, cloneControlPoints(this._points), this._tension);\n return a;\n }\n});\n\n/**\n * !#en Creates an action with a Cardinal Spline array of points and tension.\n * !#zh 按基数样条曲线轨迹移动指定的距离。\n * @method cardinalSplineBy\n * @param {Number} duration\n * @param {Array} points\n * @param {Number} tension\n *\n * @return {ActionInterval}\n */\ncc.cardinalSplineBy = function (duration, points, tension) {\n return new cc.CardinalSplineBy(duration, points, tension);\n};\n\n/*\n * An action that moves the target with a CatmullRom curve to a destination point. \n * A Catmull Rom is a Cardinal Spline with a tension of 0.5. \n * http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Catmull.E2.80.93Rom_spline\n * Absolute coordinates.\n *\n * @class CatmullRomTo\n * @extends CardinalSplineTo\n *\n * @param {Number} dt\n * @param {Array} points\n *\n * @example\n * var action1 = cc.catmullRomTo(3, array);\n */\ncc.CatmullRomTo = cc.Class({\n name: 'cc.CatmullRomTo',\n extends: cc.CardinalSplineTo,\n\n ctor: function(dt, points) {\n points && this.initWithDuration(dt, points);\n },\n\n initWithDuration:function (dt, points) {\n return cc.CardinalSplineTo.prototype.initWithDuration.call(this, dt, points, 0.5);\n },\n\n clone:function () {\n var action = new cc.CatmullRomTo();\n action.initWithDuration(this._duration, cloneControlPoints(this._points));\n return action;\n }\n});\n\n/**\n * !#en Creates an action with a Cardinal Spline array of points and tension.\n * !#zh 按 Catmull Rom 样条曲线轨迹移动到目标位置。\n * @method catmullRomTo\n * @param {Number} dt\n * @param {Array} points\n * @return {ActionInterval}\n *\n * @example\n * var action1 = cc.catmullRomTo(3, array);\n */\ncc.catmullRomTo = function (dt, points) {\n return new cc.CatmullRomTo(dt, points);\n};\n\n/*\n * An action that moves the target with a CatmullRom curve by a certain distance. \n * A Catmull Rom is a Cardinal Spline with a tension of 0.5. \n * http://en.wikipedia.org/wiki/Cubic_Hermite_spline#Catmull.E2.80.93Rom_spline\n * Relative coordinates.\n *\n * @class CatmullRomBy\n * @extends CardinalSplineBy\n *\n * @param {Number} dt\n * @param {Array} points\n *\n * @example\n * var action1 = cc.catmullRomBy(3, array);\n */\ncc.CatmullRomBy = cc.Class({\n name: 'cc.CatmullRomBy',\n extends: cc.CardinalSplineBy,\n\n ctor: function(dt, points) {\n points && this.initWithDuration(dt, points);\n },\n\n initWithDuration:function (dt, points) {\n return cc.CardinalSplineTo.prototype.initWithDuration.call(this, dt, points, 0.5);\n },\n\n clone:function () {\n var action = new cc.CatmullRomBy();\n action.initWithDuration(this._duration, cloneControlPoints(this._points));\n return action;\n }\n});\n\n/**\n * !#en Creates an action with a Cardinal Spline array of points and tension.\n * !#zh 按 Catmull Rom 样条曲线轨迹移动指定的距离。\n * @method catmullRomBy\n * @param {Number} dt\n * @param {Array} points\n * @return {ActionInterval}\n * @example\n * var action1 = cc.catmullRomBy(3, array);\n */\ncc.catmullRomBy = function (dt, points) {\n return new cc.CatmullRomBy(dt, points);\n};\n","/****************************************************************************\n Copyright (c) 2008-2010 Ricardo Quesada\n Copyright (c) 2011-2012 cocos2d-x.org\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc\n */\n\n/**\n * !#en\n * Creates the action easing object with the rate parameter. \n * From slow to fast.\n * !#zh 创建 easeIn 缓动对象,由慢到快。\n * @method easeIn\n * @param {Number} rate\n * @return {Object}\n * @example\n * action.easing(cc.easeIn(3.0));\n */\ncc.easeIn = function (rate) {\n return {\n _rate: rate,\n easing: function (dt) {\n return Math.pow(dt, this._rate);\n },\n reverse: function(){\n return cc.easeIn(1 / this._rate);\n }\n };\n};\n\n/**\n * !#en\n * Creates the action easing object with the rate parameter. \n * From fast to slow.\n * !#zh 创建 easeOut 缓动对象,由快到慢。\n * @method easeOut\n * @param {Number} rate\n * @return {Object}\n * @example\n * action.easing(cc.easeOut(3.0));\n */\ncc.easeOut = function (rate) {\n return {\n _rate: rate,\n easing: function (dt) {\n return Math.pow(dt, 1 / this._rate);\n },\n reverse: function(){\n return cc.easeOut(1 / this._rate);\n }\n };\n};\n\n/**\n * !#en\n * Creates the action easing object with the rate parameter. \n * Slow to fast then to slow.\n * !#zh 创建 easeInOut 缓动对象,慢到快,然后慢。\n * @method easeInOut\n * @param {Number} rate\n * @return {Object}\n *\n * @example\n * action.easing(cc.easeInOut(3.0));\n */\ncc.easeInOut = function (rate) {\n return {\n _rate: rate,\n easing: function (dt) {\n dt *= 2;\n if (dt < 1)\n return 0.5 * Math.pow(dt, this._rate);\n else\n return 1.0 - 0.5 * Math.pow(2 - dt, this._rate);\n },\n reverse: function(){\n return cc.easeInOut(this._rate);\n }\n };\n};\n\n/**\n * !#en\n * Creates the action easing object with the rate parameter. \n * Reference easeInExpo: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeExponentialIn 缓动对象。 \n * EaseExponentialIn 是按指数函数缓动进入的动作。 \n * 参考 easeInExpo:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeExponentialIn\n * @return {Object}\n * @example\n * action.easing(cc.easeExponentialIn());\n */\nvar _easeExponentialInObj = {\n easing: function(dt){\n return dt === 0 ? 0 : Math.pow(2, 10 * (dt - 1));\n },\n reverse: function(){\n return _easeExponentialOutObj;\n }\n};\ncc.easeExponentialIn = function(){\n return _easeExponentialInObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeOutExpo: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeExponentialOut 缓动对象。 \n * EaseExponentialOut 是按指数函数缓动退出的动作。 \n * 参考 easeOutExpo:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeExponentialOut\n * @return {Object}\n * @example\n * action.easing(cc.easeExponentialOut());\n */\nvar _easeExponentialOutObj = {\n easing: function(dt){\n return dt === 1 ? 1 : (-(Math.pow(2, -10 * dt)) + 1);\n },\n reverse: function(){\n return _easeExponentialInObj;\n }\n};\ncc.easeExponentialOut = function(){\n return _easeExponentialOutObj;\n};\n\n/**\n * !#en\n * Creates an EaseExponentialInOut action easing object. \n * Reference easeInOutExpo: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeExponentialInOut 缓动对象。 \n * EaseExponentialInOut 是按指数函数缓动进入并退出的动作。 \n * 参考 easeInOutExpo:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeExponentialInOut\n * @return {Object}\n * @example\n * action.easing(cc.easeExponentialInOut());\n */\nvar _easeExponentialInOutObj = {\n easing: function(dt){\n if( dt !== 1 && dt !== 0) {\n dt *= 2;\n if (dt < 1)\n return 0.5 * Math.pow(2, 10 * (dt - 1));\n else\n return 0.5 * (-Math.pow(2, -10 * (dt - 1)) + 2);\n }\n return dt;\n },\n reverse: function(){\n return _easeExponentialInOutObj;\n }\n};\ncc.easeExponentialInOut = function(){\n return _easeExponentialInOutObj;\n};\n\n/**\n * !#en\n * Creates an EaseSineIn action. \n * Reference easeInSine: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 EaseSineIn 缓动对象。 \n * EaseSineIn 是按正弦函数缓动进入的动作。 \n * 参考 easeInSine:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeSineIn\n * @return {Object}\n * @example\n * action.easing(cc.easeSineIn());\n */\nvar _easeSineInObj = {\n easing: function(dt){\n return (dt===0 || dt===1) ? dt : -1 * Math.cos(dt * Math.PI / 2) + 1;\n },\n reverse: function(){\n return _easeSineOutObj;\n }\n};\ncc.easeSineIn = function(){\n return _easeSineInObj;\n};\n\n/**\n * !#en\n * Creates an EaseSineOut action easing object. \n * Reference easeOutSine: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 EaseSineOut 缓动对象。 \n * EaseSineIn 是按正弦函数缓动退出的动作。 \n * 参考 easeOutSine:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeSineOut\n * @return {Object}\n * @example\n * action.easing(cc.easeSineOut());\n */\nvar _easeSineOutObj = {\n easing: function(dt){\n return (dt===0 || dt===1) ? dt : Math.sin(dt * Math.PI / 2);\n },\n reverse: function(){\n return _easeSineInObj;\n }\n};\ncc.easeSineOut = function(){\n return _easeSineOutObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInOutSine: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeSineInOut 缓动对象。 \n * EaseSineIn 是按正弦函数缓动进入并退出的动作。 \n * 参考 easeInOutSine:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeSineInOut\n * @return {Object}\n * @example\n * action.easing(cc.easeSineInOut());\n */\nvar _easeSineInOutObj = {\n easing: function(dt){\n return (dt === 0 || dt === 1) ? dt : -0.5 * (Math.cos(Math.PI * dt) - 1);\n },\n reverse: function(){\n return _easeSineInOutObj;\n }\n};\ncc.easeSineInOut = function(){\n return _easeSineInOutObj;\n};\n\n/**\n * @module cc\n */\n\n/**\n * !#en\n * Creates the action easing object with the period in radians (default is 0.3). \n * Reference easeInElastic: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeElasticIn 缓动对象。 \n * EaseElasticIn 是按弹性曲线缓动进入的动作。 \n * 参数 easeInElastic:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeElasticIn\n * @param {Number} period\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeElasticIn(3.0));\n */\n//default ease elastic in object (period = 0.3)\nvar _easeElasticInObj = {\n easing:function(dt){\n if (dt === 0 || dt === 1)\n return dt;\n dt = dt - 1;\n return -Math.pow(2, 10 * dt) * Math.sin((dt - (0.3 / 4)) * Math.PI * 2 / 0.3);\n },\n reverse:function(){\n return _easeElasticOutObj;\n }\n };\ncc.easeElasticIn = function (period) {\n if(period && period !== 0.3){\n return {\n _period: period,\n easing: function (dt) {\n if (dt === 0 || dt === 1)\n return dt;\n dt = dt - 1;\n return -Math.pow(2, 10 * dt) * Math.sin((dt - (this._period / 4)) * Math.PI * 2 / this._period);\n },\n reverse:function () {\n return cc.easeElasticOut(this._period);\n }\n };\n }\n return _easeElasticInObj;\n};\n\n/**\n * !#en\n * Creates the action easing object with the period in radians (default is 0.3). \n * Reference easeOutElastic: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeElasticOut 缓动对象。 \n * EaseElasticOut 是按弹性曲线缓动退出的动作。 \n * 参考 easeOutElastic:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeElasticOut\n * @param {Number} period\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeElasticOut(3.0));\n */\n//default ease elastic out object (period = 0.3)\nvar _easeElasticOutObj = {\n easing: function (dt) {\n return (dt === 0 || dt === 1) ? dt : Math.pow(2, -10 * dt) * Math.sin((dt - (0.3 / 4)) * Math.PI * 2 / 0.3) + 1;\n },\n reverse:function(){\n return _easeElasticInObj;\n }\n};\ncc.easeElasticOut = function (period) {\n if(period && period !== 0.3){\n return {\n _period: period,\n easing: function (dt) {\n return (dt === 0 || dt === 1) ? dt : Math.pow(2, -10 * dt) * Math.sin((dt - (this._period / 4)) * Math.PI * 2 / this._period) + 1;\n },\n reverse:function(){\n return cc.easeElasticIn(this._period);\n }\n };\n }\n return _easeElasticOutObj;\n};\n\n/**\n * !#en\n * Creates the action easing object with the period in radians (default is 0.3). \n * Reference easeInOutElastic: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeElasticInOut 缓动对象。 \n * EaseElasticInOut 是按弹性曲线缓动进入并退出的动作。 \n * 参考 easeInOutElastic:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeElasticInOut\n * @param {Number} period\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeElasticInOut(3.0));\n */\ncc.easeElasticInOut = function (period) {\n period = period || 0.3;\n return {\n _period: period,\n easing: function (dt) {\n var newT = 0;\n var locPeriod = this._period;\n if (dt === 0 || dt === 1) {\n newT = dt;\n } else {\n dt = dt * 2;\n if (!locPeriod)\n locPeriod = this._period = 0.3 * 1.5;\n var s = locPeriod / 4;\n dt = dt - 1;\n if (dt < 0)\n newT = -0.5 * Math.pow(2, 10 * dt) * Math.sin((dt - s) * Math.PI * 2 / locPeriod);\n else\n newT = Math.pow(2, -10 * dt) * Math.sin((dt - s) * Math.PI * 2 / locPeriod) * 0.5 + 1;\n }\n return newT;\n },\n reverse: function(){\n return cc.easeElasticInOut(this._period);\n }\n };\n};\n\n/**\n * @module cc\n */\n\nfunction _bounceTime (time1) {\n if (time1 < 1 / 2.75) {\n return 7.5625 * time1 * time1;\n } else if (time1 < 2 / 2.75) {\n time1 -= 1.5 / 2.75;\n return 7.5625 * time1 * time1 + 0.75;\n } else if (time1 < 2.5 / 2.75) {\n time1 -= 2.25 / 2.75;\n return 7.5625 * time1 * time1 + 0.9375;\n }\n\n time1 -= 2.625 / 2.75;\n return 7.5625 * time1 * time1 + 0.984375;\n};\n\nvar _easeBounceInObj = {\n easing: function(dt){\n return 1 - _bounceTime(1 - dt);\n },\n reverse: function(){\n return _easeBounceOutObj;\n }\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Eased bounce effect at the beginning.\n * !#zh\n * 创建 easeBounceIn 缓动对象。 \n * EaseBounceIn 是按弹跳动作缓动进入的动作。\n * @method easeBounceIn\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeBounceIn());\n */\ncc.easeBounceIn = function(){\n return _easeBounceInObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Eased bounce effect at the ending.\n * !#zh\n * 创建 easeBounceOut 缓动对象。 \n * EaseBounceOut 是按弹跳动作缓动退出的动作。\n * @method easeBounceOut\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeBounceOut());\n */\nvar _easeBounceOutObj = {\n easing: function(dt){\n return _bounceTime(dt);\n },\n reverse:function () {\n return _easeBounceInObj;\n }\n};\ncc.easeBounceOut = function(){\n return _easeBounceOutObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Eased bounce effect at the begining and ending.\n * !#zh\n * 创建 easeBounceInOut 缓动对象。 \n * EaseBounceInOut 是按弹跳动作缓动进入并退出的动作。\n * @method easeBounceInOut\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeBounceInOut());\n */\nvar _easeBounceInOutObj = {\n easing: function (time1) {\n var newT;\n if (time1 < 0.5) {\n time1 = time1 * 2;\n newT = (1 - _bounceTime(1 - time1)) * 0.5;\n } else {\n newT = _bounceTime(time1 * 2 - 1) * 0.5 + 0.5;\n }\n return newT;\n },\n reverse: function(){\n return _easeBounceInOutObj;\n }\n};\ncc.easeBounceInOut = function(){\n return _easeBounceInOutObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * In the opposite direction to move slowly, and then accelerated to the right direction.\n * !#zh\n * 创建 easeBackIn 缓动对象。 \n * easeBackIn 是在相反的方向缓慢移动,然后加速到正确的方向。 \n * @method easeBackIn\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeBackIn());\n */\nvar _easeBackInObj = {\n easing: function (time1) {\n var overshoot = 1.70158;\n return (time1===0 || time1===1) ? time1 : time1 * time1 * ((overshoot + 1) * time1 - overshoot);\n },\n reverse: function(){\n return _easeBackOutObj;\n }\n};\ncc.easeBackIn = function(){\n return _easeBackInObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Fast moving more than the finish, and then slowly back to the finish.\n * !#zh\n * 创建 easeBackOut 缓动对象。 \n * easeBackOut 快速移动超出目标,然后慢慢回到目标点。\n * @method easeBackOut\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeBackOut());\n */\nvar _easeBackOutObj = {\n easing: function (time1) {\n if (time1 === 0) {\n return 0;\n }\n var overshoot = 1.70158;\n time1 = time1 - 1;\n return time1 * time1 * ((overshoot + 1) * time1 + overshoot) + 1;\n },\n reverse: function(){\n return _easeBackInObj;\n }\n};\ncc.easeBackOut = function(){\n return _easeBackOutObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Begining of cc.EaseBackIn. Ending of cc.EaseBackOut.\n * !#zh\n * 创建 easeBackInOut 缓动对象。 \n * @method easeBackInOut\n * @return {Object}\n * @example\n * // example\n * action.easing(cc.easeBackInOut());\n */\nvar _easeBackInOutObj = {\n easing: function (time1) {\n var overshoot = 1.70158 * 1.525;\n time1 = time1 * 2;\n if (time1 < 1) {\n return (time1 * time1 * ((overshoot + 1) * time1 - overshoot)) / 2;\n } else {\n time1 = time1 - 2;\n return (time1 * time1 * ((overshoot + 1) * time1 + overshoot)) / 2 + 1;\n }\n },\n reverse: function(){\n return _easeBackInOutObj;\n }\n};\ncc.easeBackInOut = function(){\n return _easeBackInOutObj;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Into the 4 reference point. \n * To calculate the motion curve.\n * !#zh\n * 创建 easeBezierAction 缓动对象。 \n * EaseBezierAction 是按贝塞尔曲线缓动的动作。\n * @method easeBezierAction\n * @param {Number} p0 The first bezier parameter\n * @param {Number} p1 The second bezier parameter\n * @param {Number} p2 The third bezier parameter\n * @param {Number} p3 The fourth bezier parameter\n * @returns {Object}\n * @example\n * // example\n * action.easing(cc.easeBezierAction(0.5, 0.5, 1.0, 1.0));\n */\ncc.easeBezierAction = function(a, b, c, d){\n return {\n easing: function(t){\n return (Math.pow(1-t,3) * a + 3*t*(Math.pow(1-t,2))*b + 3*Math.pow(t,2)*(1-t)*c + Math.pow(t,3)*d);\n },\n reverse: function(){\n return cc.easeBezierAction(d, c, b, a);\n }\n };\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInQuad: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuadraticActionIn 缓动对象。 \n * EaseQuadraticIn是按二次函数缓动进入的动作。 \n * 参考 easeInQuad:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuadraticActionIn\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuadraticActionIn());\n */\nvar _easeQuadraticActionIn = {\n easing: function(time){\n return Math.pow(time, 2);\n },\n reverse: function(){\n return _easeQuadraticActionIn;\n }\n};\ncc.easeQuadraticActionIn = function(){\n return _easeQuadraticActionIn;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeOutQuad: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuadraticActionOut 缓动对象。 \n * EaseQuadraticOut 是按二次函数缓动退出的动作。 \n * 参考 easeOutQuad:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuadraticActionOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuadraticActionOut());\n */\nvar _easeQuadraticActionOut = {\n easing: function(time){\n return -time*(time-2);\n },\n reverse: function(){\n return _easeQuadraticActionOut;\n }\n};\ncc.easeQuadraticActionOut = function(){\n return _easeQuadraticActionOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInOutQuad: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuadraticActionInOut 缓动对象。 \n * EaseQuadraticInOut 是按二次函数缓动进入并退出的动作。 \n * 参考 easeInOutQuad:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuadraticActionInOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuadraticActionInOut());\n */\nvar _easeQuadraticActionInOut = {\n easing: function(time){\n var resultTime = time;\n time *= 2;\n if(time < 1){\n resultTime = time * time * 0.5;\n }else{\n --time;\n resultTime = -0.5 * ( time * ( time - 2 ) - 1)\n }\n return resultTime;\n },\n reverse: function(){\n return _easeQuadraticActionInOut;\n }\n};\ncc.easeQuadraticActionInOut = function(){\n return _easeQuadraticActionInOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeIntQuart: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuarticActionIn 缓动对象。 \n * EaseQuarticIn 是按四次函数缓动进入的动作。 \n * 参考 easeIntQuart:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuarticActionIn\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuarticActionIn());\n */\nvar _easeQuarticActionIn = {\n easing: function(time){\n return time * time * time * time;\n },\n reverse: function(){\n return _easeQuarticActionIn;\n }\n};\ncc.easeQuarticActionIn = function(){\n return _easeQuarticActionIn;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeOutQuart: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuarticActionOut 缓动对象。 \n * EaseQuarticOut 是按四次函数缓动退出的动作。 \n * 参考 easeOutQuart:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuarticActionOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.QuarticActionOut());\n */\nvar _easeQuarticActionOut = {\n easing: function(time){\n time -= 1;\n return -(time * time * time * time - 1);\n },\n reverse: function(){\n return _easeQuarticActionOut;\n }\n};\ncc.easeQuarticActionOut = function(){\n return _easeQuarticActionOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInOutQuart: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuarticActionInOut 缓动对象。 \n * EaseQuarticInOut 是按四次函数缓动进入并退出的动作。 \n * 参考 easeInOutQuart:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuarticActionInOut\n * @returns {Object}\n */\nvar _easeQuarticActionInOut = {\n easing: function(time){\n time = time*2;\n if (time < 1)\n return 0.5 * time * time * time * time;\n time -= 2;\n return -0.5 * (time * time * time * time - 2);\n },\n reverse: function(){\n return _easeQuarticActionInOut;\n }\n};\ncc.easeQuarticActionInOut = function(){\n return _easeQuarticActionInOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInQuint: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuinticActionIn 缓动对象。 \n * EaseQuinticIn 是按五次函数缓动进的动作。 \n * 参考 easeInQuint:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuinticActionIn\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuinticActionIn());\n */\nvar _easeQuinticActionIn = {\n easing: function(time){\n return time * time * time * time * time;\n },\n reverse: function(){\n return _easeQuinticActionIn;\n }\n};\ncc.easeQuinticActionIn = function(){\n return _easeQuinticActionIn;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeOutQuint: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuinticActionOut 缓动对象。 \n * EaseQuinticOut 是按五次函数缓动退出的动作\n * 参考 easeOutQuint:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuinticActionOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuadraticActionOut());\n */\nvar _easeQuinticActionOut = {\n easing: function(time){\n time -=1;\n return (time * time * time * time * time + 1);\n },\n reverse: function(){\n return _easeQuinticActionOut;\n }\n};\ncc.easeQuinticActionOut = function(){\n return _easeQuinticActionOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInOutQuint: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeQuinticActionInOut 缓动对象。 \n * EaseQuinticInOut是按五次函数缓动进入并退出的动作。 \n * 参考 easeInOutQuint:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeQuinticActionInOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeQuinticActionInOut());\n */\nvar _easeQuinticActionInOut = {\n easing: function(time){\n time = time*2;\n if (time < 1)\n return 0.5 * time * time * time * time * time;\n time -= 2;\n return 0.5 * (time * time * time * time * time + 2);\n },\n reverse: function(){\n return _easeQuinticActionInOut;\n }\n};\ncc.easeQuinticActionInOut = function(){\n return _easeQuinticActionInOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInCirc: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeCircleActionIn 缓动对象。 \n * EaseCircleIn是按圆形曲线缓动进入的动作。 \n * 参考 easeInCirc:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeCircleActionIn\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeCircleActionIn());\n */\nvar _easeCircleActionIn = {\n easing: function(time){\n return -1 * (Math.sqrt(1 - time * time) - 1);\n },\n reverse: function(){\n return _easeCircleActionIn;\n }\n};\ncc.easeCircleActionIn = function(){\n return _easeCircleActionIn;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeOutCirc: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeCircleActionOut 缓动对象。 \n * EaseCircleOut是按圆形曲线缓动退出的动作。 \n * 参考 easeOutCirc:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeCircleActionOut\n * @returns {Object}\n * @example\n * //example\n * actioneasing(cc.easeCircleActionOut());\n */\nvar _easeCircleActionOut = {\n easing: function(time){\n time = time - 1;\n return Math.sqrt(1 - time * time);\n },\n reverse: function(){\n return _easeCircleActionOut;\n }\n};\ncc.easeCircleActionOut = function(){\n return _easeCircleActionOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInOutCirc: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeCircleActionInOut 缓动对象。 \n * EaseCircleInOut 是按圆形曲线缓动进入并退出的动作。 \n * 参考 easeInOutCirc:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeCircleActionInOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeCircleActionInOut());\n */\nvar _easeCircleActionInOut = {\n easing: function(time){\n time = time * 2;\n if (time < 1)\n return -0.5 * (Math.sqrt(1 - time * time) - 1);\n time -= 2;\n return 0.5 * (Math.sqrt(1 - time * time) + 1);\n },\n reverse: function(){\n return _easeCircleActionInOut;\n }\n};\ncc.easeCircleActionInOut = function(){\n return _easeCircleActionInOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInCubic: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeCubicActionIn 缓动对象。 \n * EaseCubicIn 是按三次函数缓动进入的动作。 \n * 参考 easeInCubic:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeCubicActionIn\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeCubicActionIn());\n */\nvar _easeCubicActionIn = {\n easing: function(time){\n return time * time * time;\n },\n reverse: function(){\n return _easeCubicActionIn;\n }\n};\ncc.easeCubicActionIn = function(){\n return _easeCubicActionIn;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeOutCubic: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeCubicActionOut 缓动对象。 \n * EaseCubicOut 是按三次函数缓动退出的动作。 \n * 参考 easeOutCubic:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeCubicActionOut\n * @returns {Object}\n * @example\n * //example\n * action.easing(cc.easeCubicActionOut());\n */\nvar _easeCubicActionOut = {\n easing: function(time){\n time -= 1;\n return (time * time * time + 1);\n },\n reverse: function(){\n return _easeCubicActionOut;\n }\n};\ncc.easeCubicActionOut = function(){\n return _easeCubicActionOut;\n};\n\n/**\n * !#en\n * Creates the action easing object. \n * Reference easeInOutCubic: \n * http://www.zhihu.com/question/21981571/answer/19925418\n * !#zh\n * 创建 easeCubicActionInOut 缓动对象。 \n * EaseCubicInOut是按三次函数缓动进入并退出的动作。 \n * 参考 easeInOutCubic:http://www.zhihu.com/question/21981571/answer/19925418\n * @method easeCubicActionInOut\n * @returns {Object}\n */\nvar _easeCubicActionInOut = {\n easing: function(time){\n time = time*2;\n if (time < 1)\n return 0.5 * time * time * time;\n time -= 2;\n return 0.5 * (time * time * time + 2);\n },\n reverse: function(){\n return _easeCubicActionInOut;\n }\n};\ncc.easeCubicActionInOut = function(){\n return _easeCubicActionInOut;\n};\n\n","/****************************************************************************\n Copyright (c) 2008-2010 Ricardo Quesada\n Copyright (c) 2011-2012 cocos2d-x.org\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc\n */\n\n/**\n * !#en Instant actions are immediate actions. They don't have a duration like the ActionInterval actions.\n * !#zh 即时动作,这种动作立即就会执行,继承自 FiniteTimeAction。\n * @class ActionInstant\n * @extends FiniteTimeAction\n */\ncc.ActionInstant = cc.Class({\n name: 'cc.ActionInstant',\n extends: cc.FiniteTimeAction,\n isDone:function () {\n return true;\n },\n\n step:function (dt) {\n this.update(1);\n },\n\n update:function (dt) {\n //nothing\n },\n\n /**\n * returns a reversed action. \n * For example: \n * - The action is x coordinates of 0 move to 100. \n * - The reversed action will be x of 100 move to 0.\n * @returns {Action}\n */\n reverse:function(){\n return this.clone();\n },\n\n clone:function(){\n return new cc.ActionInstant();\n }\n});\n\n/**\n * @module cc\n */\n\n/*\n * Show the node.\n * @class Show\n * @extends ActionInstant\n */\ncc.Show = cc.Class({\n name: 'cc.Show',\n extends: cc.ActionInstant,\n\n update:function (dt) {\n var _renderComps = this.target.getComponentsInChildren(cc.RenderComponent);\n for (var i = 0; i < _renderComps.length; ++i) {\n var render = _renderComps[i];\n render.enabled = true;\n }\n },\n\n reverse:function () {\n return new cc.Hide();\n },\n\n clone:function(){\n return new cc.Show();\n }\n});\n\n/**\n * !#en Show the Node.\n * !#zh 立即显示。\n * @method show\n * @return {ActionInstant}\n * @example\n * // example\n * var showAction = cc.show();\n */\ncc.show = function () {\n return new cc.Show();\n};\n\n/*\n * Hide the node.\n * @class Hide\n * @extends ActionInstant\n */\ncc.Hide = cc.Class({\n name: 'cc.Hide',\n extends: cc.ActionInstant,\n\n update:function (dt) {\n var _renderComps = this.target.getComponentsInChildren(cc.RenderComponent);\n for (var i = 0; i < _renderComps.length; ++i) {\n var render = _renderComps[i];\n render.enabled = false;\n }\n },\n\n reverse:function () {\n return new cc.Show();\n },\n\n clone:function(){\n return new cc.Hide();\n }\n});\n\n/**\n * !#en Hide the node.\n * !#zh 立即隐藏。\n * @method hide\n * @return {ActionInstant}\n * @example\n * // example\n * var hideAction = cc.hide();\n */\ncc.hide = function () {\n return new cc.Hide();\n};\n\n/*\n * Toggles the visibility of a node.\n * @class ToggleVisibility\n * @extends ActionInstant\n */\ncc.ToggleVisibility = cc.Class({\n name: 'cc.ToggleVisibility',\n extends: cc.ActionInstant,\n\n update:function (dt) {\n var _renderComps = this.target.getComponentsInChildren(cc.RenderComponent);\n for (var i = 0; i < _renderComps.length; ++i) {\n var render = _renderComps[i];\n render.enabled = !render.enabled;\n }\n },\n\n reverse:function () {\n return new cc.ToggleVisibility();\n },\n\n clone:function(){\n return new cc.ToggleVisibility();\n }\n});\n\n/**\n * !#en Toggles the visibility of a node.\n * !#zh 显隐状态切换。\n * @method toggleVisibility\n * @return {ActionInstant}\n * @example\n * // example\n * var toggleVisibilityAction = cc.toggleVisibility();\n */\ncc.toggleVisibility = function () {\n return new cc.ToggleVisibility();\n};\n\n/*\n * Delete self in the next frame.\n * @class RemoveSelf\n * @extends ActionInstant\n * @param {Boolean} [isNeedCleanUp=true]\n *\n * @example\n * // example\n * var removeSelfAction = new cc.RemoveSelf(false);\n */\ncc.RemoveSelf = cc.Class({\n name: 'cc.RemoveSelf',\n extends: cc.ActionInstant,\n\n ctor:function(isNeedCleanUp){\n this._isNeedCleanUp = true;\n\t isNeedCleanUp !== undefined && this.init(isNeedCleanUp);\n },\n\n update:function(dt){\n this.target.removeFromParent(this._isNeedCleanUp);\n },\n\n init:function(isNeedCleanUp){\n this._isNeedCleanUp = isNeedCleanUp;\n return true;\n },\n\n reverse:function(){\n return new cc.RemoveSelf(this._isNeedCleanUp);\n },\n\n clone:function(){\n return new cc.RemoveSelf(this._isNeedCleanUp);\n }\n});\n\n/**\n * !#en Create a RemoveSelf object with a flag indicate whether the target should be cleaned up while removing.\n * !#zh 从父节点移除自身。\n * @method removeSelf\n * @param {Boolean} [isNeedCleanUp = true]\n * @return {ActionInstant}\n *\n * @example\n * // example\n * var removeSelfAction = cc.removeSelf();\n */\ncc.removeSelf = function(isNeedCleanUp){\n return new cc.RemoveSelf(isNeedCleanUp);\n};\n\n/*\n * Create an action to destroy self.\n * @class DestroySelf\n * @extends ActionInstant\n *\n * @example\n * var destroySelfAction = new cc.DestroySelf();\n */\ncc.DestroySelf = cc.Class({\n name: 'cc.DestroySelf',\n extends: cc.ActionInstant,\n\n update () {\n this.target.destroy();\n },\n\n reverse () {\n return new cc.DestroySelf();\n },\n\n clone () {\n return new cc.DestroySelf();\n }\n});\n\n/**\n * !#en Destroy self\n * !#zh 创建一个销毁自身的动作。\n * @method destroySelf\n * @return {ActionInstant}\n *\n * @example\n * var destroySelfAction = cc.destroySelf();\n */\ncc.destroySelf = function () {\n return new cc.DestroySelf();\n};\n\n/*\n * Flips the sprite horizontally.\n * @class FlipX\n * @extends ActionInstant\n * @param {Boolean} flip Indicate whether the target should be flipped or not\n *\n * @example\n * var flipXAction = new cc.FlipX(true);\n */\ncc.FlipX = cc.Class({\n name: 'cc.FlipX',\n extends: cc.ActionInstant,\n\n ctor:function(flip){\n this._flippedX = false;\n\t\tflip !== undefined && this.initWithFlipX(flip);\n },\n\n /*\n * initializes the action with a set flipX.\n * @param {Boolean} flip\n * @return {Boolean}\n */\n initWithFlipX:function (flip) {\n this._flippedX = flip;\n return true;\n },\n\n update:function (dt) {\n this.target.scaleX = Math.abs(this.target.scaleX) * (this._flippedX ? -1 : 1);\n },\n\n reverse:function () {\n return new cc.FlipX(!this._flippedX);\n },\n\n clone:function(){\n var action = new cc.FlipX();\n action.initWithFlipX(this._flippedX);\n return action;\n }\n});\n\n/**\n * !#en Create a FlipX action to flip or unflip the target.\n * !#zh X轴翻转。\n * @method flipX\n * @param {Boolean} flip Indicate whether the target should be flipped or not\n * @return {ActionInstant}\n * @example\n * var flipXAction = cc.flipX(true);\n */\ncc.flipX = function (flip) {\n return new cc.FlipX(flip);\n};\n\n/*\n * Flips the sprite vertically\n * @class FlipY\n * @extends ActionInstant\n * @param {Boolean} flip\n * @example\n * var flipYAction = new cc.FlipY(true);\n */\ncc.FlipY = cc.Class({\n name: 'cc.FlipY',\n extends: cc.ActionInstant,\n\n ctor: function(flip){\n this._flippedY = false;\n\t\tflip !== undefined && this.initWithFlipY(flip);\n },\n\n /*\n * initializes the action with a set flipY.\n * @param {Boolean} flip\n * @return {Boolean}\n */\n initWithFlipY:function (flip) {\n this._flippedY = flip;\n return true;\n },\n\n update:function (dt) {\n this.target.scaleY = Math.abs(this.target.scaleY) * (this._flippedY ? -1 : 1);\n },\n\n reverse:function () {\n return new cc.FlipY(!this._flippedY);\n },\n\n clone:function(){\n var action = new cc.FlipY();\n action.initWithFlipY(this._flippedY);\n return action;\n }\n});\n\n/**\n * !#en Create a FlipY action to flip or unflip the target.\n * !#zh Y轴翻转。\n * @method flipY\n * @param {Boolean} flip\n * @return {ActionInstant}\n * @example\n * var flipYAction = cc.flipY(true);\n */\ncc.flipY = function (flip) {\n return new cc.FlipY(flip);\n};\n\n/*\n * Places the node in a certain position\n * @class Place\n * @extends ActionInstant\n * @param {Vec2|Number} pos\n * @param {Number} [y]\n * @example\n * var placeAction = new cc.Place(cc.v2(200, 200));\n * var placeAction = new cc.Place(200, 200);\n */\ncc.Place = cc.Class({\n name: 'cc.Place',\n extends: cc.ActionInstant,\n\n ctor:function(pos, y){\n this._x = 0;\n\t this._y = 0;\n\n\t\tif (pos !== undefined) {\n\t\t\tif (pos.x !== undefined) {\n\t\t\t\ty = pos.y;\n\t\t\t\tpos = pos.x;\n\t\t\t}\n\t\t\tthis.initWithPosition(pos, y);\n\t\t}\n },\n\n /*\n * Initializes a Place action with a position\n * @param {number} x\n * @param {number} y\n * @return {Boolean}\n */\n initWithPosition: function (x, y) {\n this._x = x;\n this._y = y;\n return true;\n },\n\n update:function (dt) {\n this.target.setPosition(this._x, this._y);\n },\n\n clone:function(){\n var action = new cc.Place();\n action.initWithPosition(this._x, this._y);\n return action;\n }\n});\n\n/**\n * !#en Creates a Place action with a position.\n * !#zh 放置在目标位置。\n * @method place\n * @param {Vec2|Number} pos\n * @param {Number} [y]\n * @return {ActionInstant}\n * @example\n * // example\n * var placeAction = cc.place(cc.v2(200, 200));\n * var placeAction = cc.place(200, 200);\n */\ncc.place = function (pos, y) {\n return new cc.Place(pos, y);\n};\n\n\n/*\n * Calls a 'callback'.\n * @class CallFunc\n * @extends ActionInstant\n * @param {function} selector\n * @param {object} [selectorTarget=null]\n * @param {*} [data=null] data for function, it accepts all data types.\n * @example\n * // example\n * // CallFunc without data\n * var finish = new cc.CallFunc(this.removeSprite, this);\n *\n * // CallFunc with data\n * var finish = new cc.CallFunc(this.removeFromParentAndCleanup, this, true);\n */\ncc.CallFunc = cc.Class({\n name: 'cc.CallFunc',\n extends: cc.ActionInstant,\n\n /*\n * Constructor function, override it to extend the construction behavior, remember to call \"this._super()\" in the extended \"ctor\" function. \n\t * Creates a CallFunc action with the callback.\n\t * @param {function} selector\n\t * @param {object} [selectorTarget=null]\n\t * @param {*} [data=null] data for function, it accepts all data types.\n\t */\n ctor:function(selector, selectorTarget, data){\n this._selectorTarget = null;\n this._function = null;\n this._data = null;\n this.initWithFunction(selector, selectorTarget, data);\n },\n\n /*\n * Initializes the action with a function or function and its target\n * @param {function} selector\n * @param {object|Null} selectorTarget\n * @param {*|Null} [data] data for function, it accepts all data types.\n * @return {Boolean}\n */\n initWithFunction:function (selector, selectorTarget, data) {\n if (selector) {\n this._function = selector;\n }\n if (selectorTarget) {\n this._selectorTarget = selectorTarget;\n }\n if (data !== undefined) {\n this._data = data;\n }\n return true;\n },\n\n /*\n * execute the function.\n */\n execute:function () {\n if (this._function) {\n this._function.call(this._selectorTarget, this.target, this._data);\n }\n },\n\n update:function (dt) {\n this.execute();\n },\n\n /*\n * Get selectorTarget.\n * @return {object}\n */\n getTargetCallback:function () {\n return this._selectorTarget;\n },\n\n /*\n * Set selectorTarget.\n * @param {object} sel\n */\n setTargetCallback:function (sel) {\n if (sel !== this._selectorTarget) {\n if (this._selectorTarget)\n this._selectorTarget = null;\n this._selectorTarget = sel;\n }\n },\n\n clone:function(){\n var action = new cc.CallFunc();\n action.initWithFunction(this._function, this._selectorTarget, this._data);\n return action;\n }\n});\n\n/**\n * !#en Creates the action with the callback.\n * !#zh 执行回调函数。\n * @method callFunc\n * @param {function} selector\n * @param {object} [selectorTarget=null]\n * @param {*} [data=null] - data for function, it accepts all data types.\n * @return {ActionInstant}\n * @example\n * // example\n * // CallFunc without data\n * var finish = cc.callFunc(this.removeSprite, this);\n *\n * // CallFunc with data\n * var finish = cc.callFunc(this.removeFromParentAndCleanup, this._grossini, true);\n */\ncc.callFunc = function (selector, selectorTarget, data) {\n return new cc.CallFunc(selector, selectorTarget, data);\n};\n","/****************************************************************************\n Copyright (c) 2008-2010 Ricardo Quesada\n Copyright (c) 2011-2012 cocos2d-x.org\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n\n/**\n * @module cc\n */\n\n/**\n * !#en\n *
An interval action is an action that takes place within a certain period of time. \n * It has an start time, and a finish time. The finish time is the parameter \n * duration plus the start time.
\n *\n *
These CCActionInterval actions have some interesting properties, like: \n * - They can run normally (default) \n * - They can run reversed with the reverse method \n * - They can run with the time altered with the Accelerate, AccelDeccel and Speed actions.
\n *\n *
For example, you can simulate a Ping Pong effect running the action normally and \n * then running it again in Reverse mode.
\n * !#zh 时间间隔动作,这种动作在已定时间内完成,继承 FiniteTimeAction。\n * @class ActionInterval\n * @extends FiniteTimeAction\n * @param {Number} d duration in seconds\n */\ncc.ActionInterval = cc.Class({\n name: 'cc.ActionInterval',\n extends: cc.FiniteTimeAction,\n\n ctor:function (d) {\n this.MAX_VALUE = 2;\n this._elapsed = 0;\n this._firstTick = false;\n this._easeList = null;\n this._speed = 1;\n this._timesForRepeat = 1;\n this._repeatForever = false;\n this._repeatMethod = false;//Compatible with repeat class, Discard after can be deleted\n this._speedMethod = false;//Compatible with repeat class, Discard after can be deleted\n d !== undefined && cc.ActionInterval.prototype.initWithDuration.call(this, d);\n },\n\n /*\n * How many seconds had elapsed since the actions started to run.\n * @return {Number}\n */\n getElapsed:function () {\n return this._elapsed;\n },\n\n /*\n * Initializes the action.\n * @param {Number} d duration in seconds\n * @return {Boolean}\n */\n initWithDuration:function (d) {\n this._duration = (d === 0) ? cc.macro.FLT_EPSILON : d;\n // prevent division by 0\n // This comparison could be in step:, but it might decrease the performance\n // by 3% in heavy based action games.\n this._elapsed = 0;\n this._firstTick = true;\n return true;\n },\n\n isDone:function () {\n return (this._elapsed >= this._duration);\n },\n\n _cloneDecoration: function(action){\n action._repeatForever = this._repeatForever;\n action._speed = this._speed;\n action._timesForRepeat = this._timesForRepeat;\n action._easeList = this._easeList;\n action._speedMethod = this._speedMethod;\n action._repeatMethod = this._repeatMethod;\n },\n\n _reverseEaseList: function(action){\n if(this._easeList){\n action._easeList = [];\n for(var i=0; i (this._elapsed / this._duration)) ? this._elapsed / this._duration : 1);\n //this.update(Math.max(0, Math.min(1, this._elapsed / Math.max(this._duration, cc.macro.FLT_EPSILON))));\n var t = this._elapsed / (this._duration > 0.0000001192092896 ? this._duration : 0.0000001192092896);\n t = (1 > t ? t : 1);\n this.update(t > 0 ? t : 0);\n\n //Compatible with repeat class, Discard after can be deleted (this._repeatMethod)\n if(this._repeatMethod && this._timesForRepeat > 1 && this.isDone()){\n if(!this._repeatForever){\n this._timesForRepeat--;\n }\n //var diff = locInnerAction.getElapsed() - locInnerAction._duration;\n this.startWithTarget(this.target);\n // to prevent jerk. issue #390 ,1247\n //this._innerAction.step(0);\n //this._innerAction.step(diff);\n this.step(this._elapsed - this._duration);\n\n }\n },\n\n startWithTarget:function (target) {\n cc.Action.prototype.startWithTarget.call(this, target);\n this._elapsed = 0;\n this._firstTick = true;\n },\n\n reverse:function () {\n cc.logID(1010);\n return null;\n },\n\n /*\n * Set amplitude rate.\n * @warning It should be overridden in subclass.\n * @param {Number} amp\n */\n setAmplitudeRate:function (amp) {\n // Abstract class needs implementation\n cc.logID(1011);\n },\n\n /*\n * Get amplitude rate.\n * @warning It should be overridden in subclass.\n * @return {Number} 0\n */\n getAmplitudeRate:function () {\n // Abstract class needs implementation\n cc.logID(1012);\n return 0;\n },\n\n /**\n * !#en\n * Changes the speed of an action, making it take longer (speed>1)\n * or less (speed<1) time. \n * Useful to simulate 'slow motion' or 'fast forward' effect.\n * !#zh\n * 改变一个动作的速度,使它的执行使用更长的时间(speed > 1) \n * 或更少(speed < 1)可以有效得模拟“慢动作”或“快进”的效果。\n * @param {Number} speed\n * @returns {Action}\n */\n speed: function(speed){\n if(speed <= 0){\n cc.logID(1013);\n return this;\n }\n\n this._speedMethod = true;//Compatible with repeat class, Discard after can be deleted\n this._speed *= speed;\n return this;\n },\n\n /**\n * Get this action speed.\n * @return {Number}\n */\n getSpeed: function(){\n return this._speed;\n },\n\n /**\n * Set this action speed.\n * @param {Number} speed\n * @returns {ActionInterval}\n */\n setSpeed: function(speed){\n this._speed = speed;\n return this;\n },\n\n /**\n * !#en\n * Repeats an action a number of times.\n * To repeat an action forever use the CCRepeatForever action.\n * !#zh 重复动作可以按一定次数重复一个动作,使用 RepeatForever 动作来永远重复一个动作。\n * @method repeat\n * @param {Number} times\n * @returns {ActionInterval}\n */\n repeat: function(times){\n times = Math.round(times);\n if(isNaN(times) || times < 1){\n cc.logID(1014);\n return this;\n }\n this._repeatMethod = true;//Compatible with repeat class, Discard after can be deleted\n this._timesForRepeat *= times;\n return this;\n },\n\n /**\n * !#en\n * Repeats an action for ever. \n * To repeat the an action for a limited number of times use the Repeat action. \n * !#zh 永远地重复一个动作,有限次数内重复一个动作请使用 Repeat 动作。\n * @method repeatForever\n * @returns {ActionInterval}\n */\n repeatForever: function(){\n this._repeatMethod = true;//Compatible with repeat class, Discard after can be deleted\n this._timesForRepeat = this.MAX_VALUE;\n this._repeatForever = true;\n return this;\n }\n});\n\ncc.actionInterval = function (d) {\n return new cc.ActionInterval(d);\n};\n\n/**\n * @module cc\n */\n\n/*\n * Runs actions sequentially, one after another.\n * @class Sequence\n * @extends ActionInterval\n * @param {Array|FiniteTimeAction} tempArray\n * @example\n * // create sequence with actions\n * var seq = new cc.Sequence(act1, act2);\n *\n * // create sequence with array\n * var seq = new cc.Sequence(actArray);\n */\ncc.Sequence = cc.Class({\n name: 'cc.Sequence',\n extends: cc.ActionInterval,\n\n ctor:function (tempArray) {\n this._actions = [];\n this._split = null;\n this._last = 0;\n this._reversed = false;\n\n var paramArray = (tempArray instanceof Array) ? tempArray : arguments;\n if (paramArray.length === 1) {\n cc.errorID(1019);\n return;\n }\n var last = paramArray.length - 1;\n if ((last >= 0) && (paramArray[last] == null))\n cc.logID(1015);\n\n if (last >= 0) {\n var prev = paramArray[0], action1;\n for (var i = 1; i < last; i++) {\n if (paramArray[i]) {\n action1 = prev;\n prev = cc.Sequence._actionOneTwo(action1, paramArray[i]);\n }\n }\n this.initWithTwoActions(prev, paramArray[last]);\n }\n },\n\n /*\n * Initializes the action \n * @param {FiniteTimeAction} actionOne\n * @param {FiniteTimeAction} actionTwo\n * @return {Boolean}\n */\n initWithTwoActions:function (actionOne, actionTwo) {\n if (!actionOne || !actionTwo) {\n cc.errorID(1025);\n return false;\n }\n\n var durationOne = actionOne._duration, durationTwo = actionTwo._duration;\n durationOne *= actionOne._repeatMethod ? actionOne._timesForRepeat : 1;\n durationTwo *= actionTwo._repeatMethod ? actionTwo._timesForRepeat : 1;\n var d = durationOne + durationTwo;\n this.initWithDuration(d);\n\n this._actions[0] = actionOne;\n this._actions[1] = actionTwo;\n return true;\n },\n\n clone:function () {\n var action = new cc.Sequence();\n this._cloneDecoration(action);\n action.initWithTwoActions(this._actions[0].clone(), this._actions[1].clone());\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._split = this._actions[0]._duration / this._duration;\n this._split *= this._actions[0]._repeatMethod ? this._actions[0]._timesForRepeat : 1;\n this._last = -1;\n },\n\n stop:function () {\n // Issue #1305\n if (this._last !== -1)\n this._actions[this._last].stop();\n cc.Action.prototype.stop.call(this);\n },\n\n update:function (dt) {\n var new_t, found = 0;\n var locSplit = this._split, locActions = this._actions, locLast = this._last, actionFound;\n\n dt = this._computeEaseTime(dt);\n if (dt < locSplit) {\n // action[0]\n new_t = (locSplit !== 0) ? dt / locSplit : 1;\n\n if (found === 0 && locLast === 1 && this._reversed) {\n // Reverse mode ?\n // XXX: Bug. this case doesn't contemplate when _last==-1, found=0 and in \"reverse mode\"\n // since it will require a hack to know if an action is on reverse mode or not.\n // \"step\" should be overriden, and the \"reverseMode\" value propagated to inner Sequences.\n locActions[1].update(0);\n locActions[1].stop();\n }\n } else {\n // action[1]\n found = 1;\n new_t = (locSplit === 1) ? 1 : (dt - locSplit) / (1 - locSplit);\n\n if (locLast === -1) {\n // action[0] was skipped, execute it.\n locActions[0].startWithTarget(this.target);\n locActions[0].update(1);\n locActions[0].stop();\n }\n if (locLast === 0) {\n // switching to action 1. stop action 0.\n locActions[0].update(1);\n locActions[0].stop();\n }\n }\n\n actionFound = locActions[found];\n // Last action found and it is done.\n if (locLast === found && actionFound.isDone())\n return;\n\n // Last action not found\n if (locLast !== found)\n actionFound.startWithTarget(this.target);\n\n new_t = new_t * actionFound._timesForRepeat;\n actionFound.update(new_t > 1 ? new_t % 1 : new_t);\n this._last = found;\n },\n\n reverse:function () {\n var action = cc.Sequence._actionOneTwo(this._actions[1].reverse(), this._actions[0].reverse());\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n action._reversed = true;\n return action;\n }\n});\n\n/**\n * !#en\n * Helper constructor to create an array of sequenceable actions\n * The created action will run actions sequentially, one after another.\n * !#zh 顺序执行动作,创建的动作将按顺序依次运行。\n * @method sequence\n * @param {FiniteTimeAction|FiniteTimeAction[]} actionOrActionArray\n * @param {FiniteTimeAction} ...tempArray\n * @return {ActionInterval}\n * @example\n * // example\n * // create sequence with actions\n * var seq = cc.sequence(act1, act2);\n *\n * // create sequence with array\n * var seq = cc.sequence(actArray);\n */\n// todo: It should be use new\ncc.sequence = function (/*Multiple Arguments*/tempArray) {\n var paramArray = (tempArray instanceof Array) ? tempArray : arguments;\n if (paramArray.length === 1) {\n cc.errorID(1019);\n return null;\n }\n var last = paramArray.length - 1;\n if ((last >= 0) && (paramArray[last] == null))\n cc.logID(1015);\n\n var result = null;\n if (last >= 0) {\n result = paramArray[0];\n for (var i = 1; i <= last; i++) {\n if (paramArray[i]) {\n result = cc.Sequence._actionOneTwo(result, paramArray[i]);\n }\n }\n }\n\n return result;\n};\n\ncc.Sequence._actionOneTwo = function (actionOne, actionTwo) {\n var sequence = new cc.Sequence();\n sequence.initWithTwoActions(actionOne, actionTwo);\n return sequence;\n};\n\n/*\n * Repeats an action a number of times.\n * To repeat an action forever use the CCRepeatForever action.\n * @class Repeat\n * @extends ActionInterval\n * @param {FiniteTimeAction} action\n * @param {Number} times\n * @example\n * var rep = new cc.Repeat(cc.sequence(jump2, jump1), 5);\n */\ncc.Repeat = cc.Class({\n name: 'cc.Repeat',\n extends: cc.ActionInterval,\n\n ctor: function (action, times) {\n this._times = 0;\n this._total = 0;\n this._nextDt = 0;\n this._actionInstant = false;\n this._innerAction = null;\n\t\ttimes !== undefined && this.initWithAction(action, times);\n },\n\n /*\n * @param {FiniteTimeAction} action\n * @param {Number} times\n * @return {Boolean}\n */\n initWithAction:function (action, times) {\n var duration = action._duration * times;\n\n if (this.initWithDuration(duration)) {\n this._times = times;\n this._innerAction = action;\n if (action instanceof cc.ActionInstant){\n this._actionInstant = true;\n this._times -= 1;\n }\n this._total = 0;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.Repeat();\n this._cloneDecoration(action);\n action.initWithAction(this._innerAction.clone(), this._times);\n return action;\n },\n\n startWithTarget:function (target) {\n this._total = 0;\n this._nextDt = this._innerAction._duration / this._duration;\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._innerAction.startWithTarget(target);\n },\n\n stop:function () {\n this._innerAction.stop();\n cc.Action.prototype.stop.call(this);\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n var locInnerAction = this._innerAction;\n var locDuration = this._duration;\n var locTimes = this._times;\n var locNextDt = this._nextDt;\n\n if (dt >= locNextDt) {\n while (dt > locNextDt && this._total < locTimes) {\n locInnerAction.update(1);\n this._total++;\n locInnerAction.stop();\n locInnerAction.startWithTarget(this.target);\n locNextDt += locInnerAction._duration / locDuration;\n this._nextDt = locNextDt > 1 ? 1 : locNextDt;\n }\n\n // fix for issue #1288, incorrect end value of repeat\n if (dt >= 1.0 && this._total < locTimes) {\n // fix for cocos-creator/fireball/issues/4310\n locInnerAction.update(1);\n this._total++;\n }\n\n // don't set a instant action back or update it, it has no use because it has no duration\n if (!this._actionInstant) {\n if (this._total === locTimes) {\n locInnerAction.stop();\n } else {\n // issue #390 prevent jerk, use right update\n locInnerAction.update(dt - (locNextDt - locInnerAction._duration / locDuration));\n }\n }\n } else {\n locInnerAction.update((dt * locTimes) % 1.0);\n }\n },\n\n isDone:function () {\n return this._total === this._times;\n },\n\n reverse:function () {\n var action = new cc.Repeat(this._innerAction.reverse(), this._times);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n },\n\n /*\n * Set inner Action.\n * @param {FiniteTimeAction} action\n */\n setInnerAction:function (action) {\n if (this._innerAction !== action) {\n this._innerAction = action;\n }\n },\n\n /*\n * Get inner Action.\n * @return {FiniteTimeAction}\n */\n getInnerAction:function () {\n return this._innerAction;\n }\n});\n\n/**\n * !#en Creates a Repeat action. Times is an unsigned integer between 1 and pow(2,30)\n * !#zh 重复动作,可以按一定次数重复一个动,如果想永远重复一个动作请使用 repeatForever 动作来完成。\n * @method repeat\n * @param {FiniteTimeAction} action\n * @param {Number} times\n * @return {ActionInterval}\n * @example\n * // example\n * var rep = cc.repeat(cc.sequence(jump2, jump1), 5);\n */\ncc.repeat = function (action, times) {\n return new cc.Repeat(action, times);\n};\n\n\n/*\n * Repeats an action for ever. \n * To repeat the an action for a limited number of times use the Repeat action. \n * @warning This action can't be Sequenceable because it is not an IntervalAction\n * @class RepeatForever\n * @extends ActionInterval\n * @param {FiniteTimeAction} action\n * @example\n * var rep = new cc.RepeatForever(cc.sequence(jump2, jump1), 5);\n */\ncc.RepeatForever = cc.Class({\n name: 'cc.RepeatForever',\n extends: cc.ActionInterval,\n\n ctor:function (action) {\n this._innerAction = null;\n\t\taction && this.initWithAction(action);\n },\n\n /*\n * @param {ActionInterval} action\n * @return {Boolean}\n */\n initWithAction:function (action) {\n if (!action) {\n cc.errorID(1026);\n return false;\n }\n\n this._innerAction = action;\n return true;\n },\n\n clone:function () {\n var action = new cc.RepeatForever();\n this._cloneDecoration(action);\n action.initWithAction(this._innerAction.clone());\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._innerAction.startWithTarget(target);\n },\n\n step:function (dt) {\n var locInnerAction = this._innerAction;\n locInnerAction.step(dt);\n if (locInnerAction.isDone()) {\n //var diff = locInnerAction.getElapsed() - locInnerAction._duration;\n locInnerAction.startWithTarget(this.target);\n // to prevent jerk. issue #390 ,1247\n //this._innerAction.step(0);\n //this._innerAction.step(diff);\n locInnerAction.step(locInnerAction.getElapsed() - locInnerAction._duration);\n }\n },\n\n isDone:function () {\n return false;\n },\n\n reverse:function () {\n var action = new cc.RepeatForever(this._innerAction.reverse());\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n },\n\n /*\n * Set inner action.\n * @param {ActionInterval} action\n */\n setInnerAction:function (action) {\n if (this._innerAction !== action) {\n this._innerAction = action;\n }\n },\n\n /*\n * Get inner action.\n * @return {ActionInterval}\n */\n getInnerAction:function () {\n return this._innerAction;\n }\n});\n\n/**\n * !#en Create a acton which repeat forever, as it runs forever, it can't be added into cc.sequence and cc.spawn.\n * !#zh 永远地重复一个动作,有限次数内重复一个动作请使用 repeat 动作,由于这个动作不会停止,所以不能被添加到 cc.sequence 或 cc.spawn 中。\n * @method repeatForever\n * @param {FiniteTimeAction} action\n * @return {ActionInterval}\n * @example\n * // example\n * var repeat = cc.repeatForever(cc.rotateBy(1.0, 360));\n */\ncc.repeatForever = function (action) {\n return new cc.RepeatForever(action);\n};\n\n\n/* \n * Spawn a new action immediately\n * @class Spawn\n * @extends ActionInterval\n */\ncc.Spawn = cc.Class({\n name: 'cc.Spawn',\n extends: cc.ActionInterval,\n\n ctor:function (tempArray) {\n this._one = null;\n this._two = null;\n\n\t\tvar paramArray = (tempArray instanceof Array) ? tempArray : arguments;\n if (paramArray.length === 1) {\n cc.errorID(1020);\n return;\n }\n\t\tvar last = paramArray.length - 1;\n\t\tif ((last >= 0) && (paramArray[last] == null))\n\t\t\tcc.logID(1015);\n\n if (last >= 0) {\n var prev = paramArray[0], action1;\n for (var i = 1; i < last; i++) {\n if (paramArray[i]) {\n action1 = prev;\n prev = cc.Spawn._actionOneTwo(action1, paramArray[i]);\n }\n }\n this.initWithTwoActions(prev, paramArray[last]);\n }\n },\n\n /* initializes the Spawn action with the 2 actions to spawn\n * @param {FiniteTimeAction} action1\n * @param {FiniteTimeAction} action2\n * @return {Boolean}\n */\n initWithTwoActions:function (action1, action2) {\n if (!action1 || !action2) {\n cc.errorID(1027);\n return false;\n }\n\n var ret = false;\n\n var d1 = action1._duration;\n var d2 = action2._duration;\n\n if (this.initWithDuration(Math.max(d1, d2))) {\n this._one = action1;\n this._two = action2;\n\n if (d1 > d2) {\n this._two = cc.Sequence._actionOneTwo(action2, cc.delayTime(d1 - d2));\n } else if (d1 < d2) {\n this._one = cc.Sequence._actionOneTwo(action1, cc.delayTime(d2 - d1));\n }\n\n ret = true;\n }\n return ret;\n },\n\n clone:function () {\n var action = new cc.Spawn();\n this._cloneDecoration(action);\n action.initWithTwoActions(this._one.clone(), this._two.clone());\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._one.startWithTarget(target);\n this._two.startWithTarget(target);\n },\n\n stop:function () {\n this._one.stop();\n this._two.stop();\n cc.Action.prototype.stop.call(this);\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this._one)\n this._one.update(dt);\n if (this._two)\n this._two.update(dt);\n },\n\n reverse:function () {\n var action = cc.Spawn._actionOneTwo(this._one.reverse(), this._two.reverse());\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en Create a spawn action which runs several actions in parallel.\n * !#zh 同步执行动作,同步执行一组动作。\n * @method spawn\n * @param {FiniteTimeAction|FiniteTimeAction[]} actionOrActionArray\n * @param {FiniteTimeAction} ...tempArray\n * @return {FiniteTimeAction}\n * @example\n * // example\n * var action = cc.spawn(cc.jumpBy(2, cc.v2(300, 0), 50, 4), cc.rotateBy(2, 720));\n * todo: It should be the direct use new\n */\ncc.spawn = function (/*Multiple Arguments*/tempArray) {\n var paramArray = (tempArray instanceof Array) ? tempArray : arguments;\n if (paramArray.length === 1) {\n cc.errorID(1020);\n return null;\n }\n if ((paramArray.length > 0) && (paramArray[paramArray.length - 1] == null))\n cc.logID(1015);\n\n var prev = paramArray[0];\n for (var i = 1; i < paramArray.length; i++) {\n if (paramArray[i] != null)\n prev = cc.Spawn._actionOneTwo(prev, paramArray[i]);\n }\n return prev;\n};\n\ncc.Spawn._actionOneTwo = function (action1, action2) {\n var pSpawn = new cc.Spawn();\n pSpawn.initWithTwoActions(action1, action2);\n return pSpawn;\n};\n\n\n/*\n * Rotates a Node object to a certain angle by modifying its angle property. \n * The direction will be decided by the shortest angle.\n * @class RotateTo\n * @extends ActionInterval\n * @param {Number} duration duration in seconds\n * @param {Number} dstAngle dstAngle in degrees.\n * @example\n * var rotateTo = new cc.RotateTo(2, 61.0);\n */\ncc.RotateTo = cc.Class({\n name: 'cc.RotateTo',\n extends: cc.ActionInterval,\n\n statics: {\n _reverse: false,\n },\n\n ctor:function (duration, dstAngle) {\n this._startAngle = 0;\n this._dstAngle = 0;\n this._angle = 0;\n dstAngle !== undefined && this.initWithDuration(duration, dstAngle);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration\n * @param {Number} dstAngle\n * @return {Boolean}\n */\n initWithDuration:function (duration, dstAngle) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._dstAngle = dstAngle;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.RotateTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._dstAngle);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n\n let startAngle = target.angle % 360;\n\n let angle = cc.RotateTo._reverse ? (this._dstAngle - startAngle) : (this._dstAngle + startAngle);\n if (angle > 180) angle -= 360;\n if (angle < -180) angle += 360;\n\n this._startAngle = startAngle;\n this._angle = cc.RotateTo._reverse ? angle : -angle;\n },\n\n reverse:function () {\n cc.logID(1016);\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target) {\n this.target.angle = this._startAngle + this._angle * dt;\n }\n }\n});\n\n/**\n * !#en\n * Rotates a Node object to a certain angle by modifying its angle property. \n * The direction will be decided by the shortest angle.\n * !#zh 旋转到目标角度,通过逐帧修改它的 angle 属性,旋转方向将由最短的角度决定。\n * @method rotateTo\n * @param {Number} duration duration in seconds\n * @param {Number} dstAngle dstAngle in degrees.\n * @return {ActionInterval}\n * @example\n * // example\n * var rotateTo = cc.rotateTo(2, 61.0);\n */\ncc.rotateTo = function (duration, dstAngle) {\n return new cc.RotateTo(duration, dstAngle);\n};\n\n\n/*\n * Rotates a Node object clockwise a number of degrees by modifying its angle property.\n * Relative to its properties to modify.\n * @class RotateBy\n * @extends ActionInterval\n * @param {Number} duration duration in seconds\n * @param {Number} deltaAngle deltaAngle in degrees\n * @example\n * var actionBy = new cc.RotateBy(2, 360);\n */\ncc.RotateBy = cc.Class({\n name: 'cc.RotateBy',\n extends: cc.ActionInterval,\n\n statics: {\n _reverse: false,\n },\n\n ctor: function (duration, deltaAngle) {\n deltaAngle *= cc.RotateBy._reverse ? 1 : -1;\n\n this._deltaAngle = 0;\n this._startAngle = 0;\n deltaAngle !== undefined && this.initWithDuration(duration, deltaAngle);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration duration in seconds\n * @param {Number} deltaAngle deltaAngle in degrees\n * @return {Boolean}\n */\n initWithDuration:function (duration, deltaAngle) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._deltaAngle = deltaAngle;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.RotateBy();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._deltaAngle);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._startAngle = target.angle;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target) {\n this.target.angle = this._startAngle + this._deltaAngle * dt;\n }\n },\n\n reverse:function () {\n var action = new cc.RotateBy();\n action.initWithDuration(this._duration, -this._deltaAngle);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en\n * Rotates a Node object clockwise a number of degrees by modifying its angle property.\n * Relative to its properties to modify.\n * !#zh 旋转指定的角度。\n * @method rotateBy\n * @param {Number} duration duration in seconds\n * @param {Number} deltaAngle deltaAngle in degrees\n * @return {ActionInterval}\n * @example\n * // example\n * var actionBy = cc.rotateBy(2, 360);\n */\ncc.rotateBy = function (duration, deltaAngle) {\n return new cc.RotateBy(duration, deltaAngle);\n};\n\n\n/*\n *
\n * Moves a Node object x,y pixels by modifying its position property. \n * x and y are relative to the position of the object. \n * Several MoveBy actions can be concurrently called, and the resulting \n * movement will be the sum of individual movements.\n *
\n * @class MoveBy\n * @extends ActionInterval\n * @param {Number} duration duration in seconds\n * @param {Vec2|Number} deltaPos\n * @param {Number} [deltaY]\n * @example\n * var actionTo = cc.moveBy(2, cc.v2(windowSize.width - 40, windowSize.height - 40));\n */\ncc.MoveBy = cc.Class({\n name: 'cc.MoveBy',\n extends: cc.ActionInterval,\n\n ctor:function (duration, deltaPos, deltaY) {\n this._positionDelta = cc.v2(0, 0);\n this._startPosition = cc.v2(0, 0);\n this._previousPosition = cc.v2(0, 0);\n\n deltaPos !== undefined && cc.MoveBy.prototype.initWithDuration.call(this, duration, deltaPos, deltaY);\t\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration duration in seconds\n * @param {Vec2} position\n * @param {Number} [y]\n * @return {Boolean}\n */\n initWithDuration:function (duration, position, y) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n\t if(position.x !== undefined) {\n\t\t y = position.y;\n\t\t position = position.x;\n\t }\n\n this._positionDelta.x = position;\n this._positionDelta.y = y;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.MoveBy();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._positionDelta);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n var locPosX = target.x;\n var locPosY = target.y;\n this._previousPosition.x = locPosX;\n this._previousPosition.y = locPosY;\n this._startPosition.x = locPosX;\n this._startPosition.y = locPosY;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target) {\n var x = this._positionDelta.x * dt;\n var y = this._positionDelta.y * dt;\n var locStartPosition = this._startPosition;\n if (cc.macro.ENABLE_STACKABLE_ACTIONS) {\n var targetX = this.target.x;\n var targetY = this.target.y;\n var locPreviousPosition = this._previousPosition;\n\n locStartPosition.x = locStartPosition.x + targetX - locPreviousPosition.x;\n locStartPosition.y = locStartPosition.y + targetY - locPreviousPosition.y;\n x = x + locStartPosition.x;\n y = y + locStartPosition.y;\n\t locPreviousPosition.x = x;\n\t locPreviousPosition.y = y;\n\t this.target.setPosition(x, y);\n } else {\n this.target.setPosition(locStartPosition.x + x, locStartPosition.y + y);\n }\n }\n },\n\n reverse:function () {\n var action = new cc.MoveBy(this._duration, cc.v2(-this._positionDelta.x, -this._positionDelta.y));\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en\n * Moves a Node object x,y pixels by modifying its position property. \n * x and y are relative to the position of the object. \n * Several MoveBy actions can be concurrently called, and the resulting \n * movement will be the sum of individual movements.\n * !#zh 移动指定的距离。\n * @method moveBy\n * @param {Number} duration duration in seconds\n * @param {Vec2|Number} deltaPos\n * @param {Number} [deltaY]\n * @return {ActionInterval}\n * @example\n * // example\n * var actionTo = cc.moveBy(2, cc.v2(windowSize.width - 40, windowSize.height - 40));\n */\ncc.moveBy = function (duration, deltaPos, deltaY) {\n return new cc.MoveBy(duration, deltaPos, deltaY);\n};\n\n\n/*\n * Moves a Node object to the position x,y. x and y are absolute coordinates by modifying its position property. \n * Several MoveTo actions can be concurrently called, and the resulting \n * movement will be the sum of individual movements.\n * @class MoveTo\n * @extends MoveBy\n * @param {Number} duration duration in seconds\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @example\n * var actionBy = new cc.MoveTo(2, cc.v2(80, 80));\n */\ncc.MoveTo = cc.Class({\n name: 'cc.MoveTo',\n extends: cc.MoveBy,\n\n ctor:function (duration, position, y) {\n this._endPosition = cc.v2(0, 0);\n\t\tposition !== undefined && this.initWithDuration(duration, position, y);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration duration in seconds\n * @param {Vec2} position\n * @param {Number} [y]\n * @return {Boolean}\n */\n initWithDuration:function (duration, position, y) {\n if (cc.MoveBy.prototype.initWithDuration.call(this, duration, position, y)) {\n\t if(position.x !== undefined) {\n\t\t y = position.y;\n\t\t position = position.x;\n\t }\n\n this._endPosition.x = position;\n this._endPosition.y = y;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.MoveTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._endPosition);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.MoveBy.prototype.startWithTarget.call(this, target);\n this._positionDelta.x = this._endPosition.x - target.x;\n this._positionDelta.y = this._endPosition.y - target.y;\n }\n});\n\n/**\n * !#en\n * Moves a Node object to the position x,y. x and y are absolute coordinates by modifying its position property. \n * Several MoveTo actions can be concurrently called, and the resulting \n * movement will be the sum of individual movements.\n * !#zh 移动到目标位置。\n * @method moveTo\n * @param {Number} duration duration in seconds\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @return {ActionInterval}\n * @example\n * // example\n * var actionBy = cc.moveTo(2, cc.v2(80, 80));\n */\ncc.moveTo = function (duration, position, y) {\n return new cc.MoveTo(duration, position, y);\n};\n\n/*\n * Skews a Node object to given angles by modifying its skewX and skewY properties\n * @class SkewTo\n * @extends ActionInterval\n * @param {Number} t time in seconds\n * @param {Number} sx\n * @param {Number} sy\n * @example\n * var actionTo = new cc.SkewTo(2, 37.2, -37.2);\n */\ncc.SkewTo = cc.Class({\n name: 'cc.SkewTo',\n extends: cc.ActionInterval,\n\n ctor: function (t, sx, sy) {\n this._skewX = 0;\n this._skewY = 0;\n this._startSkewX = 0;\n this._startSkewY = 0;\n this._endSkewX = 0;\n this._endSkewY = 0;\n this._deltaX = 0;\n this._deltaY = 0;\n sy !== undefined && cc.SkewTo.prototype.initWithDuration.call(this, t, sx, sy);\n },\n\n /*\n * Initializes the action.\n * @param {Number} t time in seconds\n * @param {Number} sx\n * @param {Number} sy\n * @return {Boolean}\n */\n initWithDuration:function (t, sx, sy) {\n var ret = false;\n if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) {\n this._endSkewX = sx;\n this._endSkewY = sy;\n ret = true;\n }\n return ret;\n },\n\n clone:function () {\n var action = new cc.SkewTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._endSkewX, this._endSkewY);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n\n this._startSkewX = target.skewX % 180;\n this._deltaX = this._endSkewX - this._startSkewX;\n if (this._deltaX > 180)\n this._deltaX -= 360;\n if (this._deltaX < -180)\n this._deltaX += 360;\n\n this._startSkewY = target.skewY % 360;\n this._deltaY = this._endSkewY - this._startSkewY;\n if (this._deltaY > 180)\n this._deltaY -= 360;\n if (this._deltaY < -180)\n this._deltaY += 360;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n this.target.skewX = this._startSkewX + this._deltaX * dt;\n this.target.skewY = this._startSkewY + this._deltaY * dt;\n }\n});\n\n/**\n * !#en\n * Create a action which skews a Node object to given angles by modifying its skewX and skewY properties.\n * Changes to the specified value.\n * !#zh 偏斜到目标角度。\n * @method skewTo\n * @param {Number} t time in seconds\n * @param {Number} sx\n * @param {Number} sy\n * @return {ActionInterval}\n * @example\n * // example\n * var actionTo = cc.skewTo(2, 37.2, -37.2);\n */\ncc.skewTo = function (t, sx, sy) {\n return new cc.SkewTo(t, sx, sy);\n};\n\n/*\n * Skews a Node object by skewX and skewY degrees.\n * Relative to its property modification.\n * @class SkewBy\n * @extends SkewTo\n * @param {Number} t time in seconds\n * @param {Number} sx skew in degrees for X axis\n * @param {Number} sy skew in degrees for Y axis\n */\ncc.SkewBy = cc.Class({\n name: 'cc.SkewBy',\n extends: cc.SkewTo,\n\n\tctor: function(t, sx, sy) {\n\t\tsy !== undefined && this.initWithDuration(t, sx, sy);\n\t},\n\n /*\n * Initializes the action.\n * @param {Number} t time in seconds\n * @param {Number} deltaSkewX skew in degrees for X axis\n * @param {Number} deltaSkewY skew in degrees for Y axis\n * @return {Boolean}\n */\n initWithDuration:function (t, deltaSkewX, deltaSkewY) {\n var ret = false;\n if (cc.SkewTo.prototype.initWithDuration.call(this, t, deltaSkewX, deltaSkewY)) {\n this._skewX = deltaSkewX;\n this._skewY = deltaSkewY;\n ret = true;\n }\n return ret;\n },\n\n clone:function () {\n var action = new cc.SkewBy();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._skewX, this._skewY);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.SkewTo.prototype.startWithTarget.call(this, target);\n this._deltaX = this._skewX;\n this._deltaY = this._skewY;\n this._endSkewX = this._startSkewX + this._deltaX;\n this._endSkewY = this._startSkewY + this._deltaY;\n },\n\n reverse:function () {\n var action = new cc.SkewBy(this._duration, -this._skewX, -this._skewY);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en\n * Skews a Node object by skewX and skewY degrees. \n * Relative to its property modification.\n * !#zh 偏斜指定的角度。\n * @method skewBy\n * @param {Number} t time in seconds\n * @param {Number} sx sx skew in degrees for X axis\n * @param {Number} sy sy skew in degrees for Y axis\n * @return {ActionInterval}\n * @example\n * // example\n * var actionBy = cc.skewBy(2, 0, -90);\n */\ncc.skewBy = function (t, sx, sy) {\n return new cc.SkewBy(t, sx, sy);\n};\n\n\n/*\n * Moves a Node object simulating a parabolic jump movement by modifying its position property.\n * Relative to its movement.\n * @class JumpBy\n * @extends ActionInterval\n * @param {Number} duration\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @param {Number} height\n * @param {Number} jumps\n * @example\n * var actionBy = new cc.JumpBy(2, cc.v2(300, 0), 50, 4);\n * var actionBy = new cc.JumpBy(2, 300, 0, 50, 4);\n */\ncc.JumpBy = cc.Class({\n name: 'cc.JumpBy',\n extends: cc.ActionInterval,\n\n ctor:function (duration, position, y, height, jumps) {\n this._startPosition = cc.v2(0, 0);\n this._previousPosition = cc.v2(0, 0);\n this._delta = cc.v2(0, 0);\n this._height = 0;\n this._jumps = 0;\n\n height !== undefined && cc.JumpBy.prototype.initWithDuration.call(this, duration, position, y, height, jumps);\n },\n /*\n * Initializes the action.\n * @param {Number} duration\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @param {Number} height\n * @param {Number} jumps\n * @return {Boolean}\n * @example\n * actionBy.initWithDuration(2, cc.v2(300, 0), 50, 4);\n * actionBy.initWithDuration(2, 300, 0, 50, 4);\n */\n initWithDuration:function (duration, position, y, height, jumps) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n\t if (jumps === undefined) {\n\t\t jumps = height;\n\t\t height = y;\n\t\t y = position.y;\n\t\t position = position.x;\n\t }\n this._delta.x = position;\n this._delta.y = y;\n this._height = height;\n this._jumps = jumps;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.JumpBy();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._delta, this._height, this._jumps);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n var locPosX = target.x;\n var locPosY = target.y;\n this._previousPosition.x = locPosX;\n this._previousPosition.y = locPosY;\n this._startPosition.x = locPosX;\n this._startPosition.y = locPosY;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target) {\n var frac = dt * this._jumps % 1.0;\n var y = this._height * 4 * frac * (1 - frac);\n y += this._delta.y * dt;\n\n var x = this._delta.x * dt;\n var locStartPosition = this._startPosition;\n if (cc.macro.ENABLE_STACKABLE_ACTIONS) {\n var targetX = this.target.x;\n var targetY = this.target.y;\n var locPreviousPosition = this._previousPosition;\n\n locStartPosition.x = locStartPosition.x + targetX - locPreviousPosition.x;\n locStartPosition.y = locStartPosition.y + targetY - locPreviousPosition.y;\n x = x + locStartPosition.x;\n y = y + locStartPosition.y;\n\t locPreviousPosition.x = x;\n\t locPreviousPosition.y = y;\n\t this.target.setPosition(x, y);\n } else {\n this.target.setPosition(locStartPosition.x + x, locStartPosition.y + y);\n }\n }\n },\n\n reverse:function () {\n var action = new cc.JumpBy(this._duration, cc.v2(-this._delta.x, -this._delta.y), this._height, this._jumps);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en\n * Moves a Node object simulating a parabolic jump movement by modifying it's position property.\n * Relative to its movement.\n * !#zh 用跳跃的方式移动指定的距离。\n * @method jumpBy\n * @param {Number} duration\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @param {Number} [height]\n * @param {Number} [jumps]\n * @return {ActionInterval}\n * @example\n * // example\n * var actionBy = cc.jumpBy(2, cc.v2(300, 0), 50, 4);\n * var actionBy = cc.jumpBy(2, 300, 0, 50, 4);\n */\ncc.jumpBy = function (duration, position, y, height, jumps) {\n return new cc.JumpBy(duration, position, y, height, jumps);\n};\n\n/*\n * Moves a Node object to a parabolic position simulating a jump movement by modifying it's position property. \n * Jump to the specified location.\n * @class JumpTo\n * @extends JumpBy\n * @param {Number} duration\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @param {Number} [height]\n * @param {Number} [jumps]\n * @example\n * var actionTo = new cc.JumpTo(2, cc.v2(300, 0), 50, 4);\n * var actionTo = new cc.JumpTo(2, 300, 0, 50, 4);\n */\ncc.JumpTo = cc.Class({\n name: 'cc.JumpTo',\n extends: cc.JumpBy,\n\n ctor:function (duration, position, y, height, jumps) {\n this._endPosition = cc.v2(0, 0);\n height !== undefined && this.initWithDuration(duration, position, y, height, jumps);\n },\n /*\n * Initializes the action.\n * @param {Number} duration\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @param {Number} height\n * @param {Number} jumps\n * @return {Boolean}\n * @example\n * actionTo.initWithDuration(2, cc.v2(300, 0), 50, 4);\n * actionTo.initWithDuration(2, 300, 0, 50, 4);\n */\n initWithDuration:function (duration, position, y, height, jumps) {\n if (cc.JumpBy.prototype.initWithDuration.call(this, duration, position, y, height, jumps)) {\n if (jumps === undefined) {\n y = position.y;\n position = position.x;\n }\n this._endPosition.x = position;\n this._endPosition.y = y;\n return true;\n }\n return false;\n },\n\n startWithTarget:function (target) {\n cc.JumpBy.prototype.startWithTarget.call(this, target);\n this._delta.x = this._endPosition.x - this._startPosition.x;\n this._delta.y = this._endPosition.y - this._startPosition.y;\n },\n\n clone:function () {\n var action = new cc.JumpTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._endPosition, this._height, this._jumps);\n return action;\n }\n});\n\n/**\n * !#en\n * Moves a Node object to a parabolic position simulating a jump movement by modifying its position property. \n * Jump to the specified location.\n * !#zh 用跳跃的方式移动到目标位置。\n * @method jumpTo\n * @param {Number} duration\n * @param {Vec2|Number} position\n * @param {Number} [y]\n * @param {Number} [height]\n * @param {Number} [jumps]\n * @return {ActionInterval}\n * @example\n * // example\n * var actionTo = cc.jumpTo(2, cc.v2(300, 300), 50, 4);\n * var actionTo = cc.jumpTo(2, 300, 300, 50, 4);\n */\ncc.jumpTo = function (duration, position, y, height, jumps) {\n return new cc.JumpTo(duration, position, y, height, jumps);\n};\n\n/* An action that moves the target with a cubic Bezier curve by a certain distance.\n * Relative to its movement.\n * @class BezierBy\n * @extends ActionInterval\n * @param {Number} t - time in seconds\n * @param {Vec2[]} c - Array of points\n * @example\n * var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];\n * var bezierForward = new cc.BezierBy(3, bezier);\n */\nfunction bezierAt (a, b, c, d, t) {\n return (Math.pow(1 - t, 3) * a +\n 3 * t * (Math.pow(1 - t, 2)) * b +\n 3 * Math.pow(t, 2) * (1 - t) * c +\n Math.pow(t, 3) * d );\n};\ncc.BezierBy = cc.Class({\n name: 'cc.BezierBy',\n extends: cc.ActionInterval,\n\n ctor:function (t, c) {\n this._config = [];\n this._startPosition = cc.v2(0, 0);\n this._previousPosition = cc.v2(0, 0);\n c && cc.BezierBy.prototype.initWithDuration.call(this, t, c);\n },\n\n /*\n * Initializes the action.\n * @param {Number} t - time in seconds\n * @param {Vec2[]} c - Array of points\n * @return {Boolean}\n */\n initWithDuration:function (t, c) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) {\n this._config = c;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.BezierBy();\n this._cloneDecoration(action);\n var newConfigs = [];\n for (var i = 0; i < this._config.length; i++) {\n var selConf = this._config[i];\n newConfigs.push(cc.v2(selConf.x, selConf.y));\n }\n action.initWithDuration(this._duration, newConfigs);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n var locPosX = target.x;\n var locPosY = target.y;\n this._previousPosition.x = locPosX;\n this._previousPosition.y = locPosY;\n this._startPosition.x = locPosX;\n this._startPosition.y = locPosY;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target) {\n var locConfig = this._config;\n var xa = 0;\n var xb = locConfig[0].x;\n var xc = locConfig[1].x;\n var xd = locConfig[2].x;\n\n var ya = 0;\n var yb = locConfig[0].y;\n var yc = locConfig[1].y;\n var yd = locConfig[2].y;\n\n var x = bezierAt(xa, xb, xc, xd, dt);\n var y = bezierAt(ya, yb, yc, yd, dt);\n\n var locStartPosition = this._startPosition;\n if (cc.macro.ENABLE_STACKABLE_ACTIONS) {\n var targetX = this.target.x;\n var targetY = this.target.y;\n var locPreviousPosition = this._previousPosition;\n\n locStartPosition.x = locStartPosition.x + targetX - locPreviousPosition.x;\n locStartPosition.y = locStartPosition.y + targetY - locPreviousPosition.y;\n x = x + locStartPosition.x;\n y = y + locStartPosition.y;\n\t locPreviousPosition.x = x;\n\t locPreviousPosition.y = y;\n\t this.target.setPosition(x, y);\n } else {\n this.target.setPosition(locStartPosition.x + x, locStartPosition.y + y);\n }\n }\n },\n\n reverse:function () {\n var locConfig = this._config;\n var x0 = locConfig[0].x, y0 = locConfig[0].y;\n var x1 = locConfig[1].x, y1 = locConfig[1].y;\n var x2 = locConfig[2].x, y2 = locConfig[2].y;\n var r = [\n cc.v2(x1 - x2, y1 - y2),\n cc.v2(x0 - x2, y0 - y2),\n cc.v2(-x2, -y2) ];\n var action = new cc.BezierBy(this._duration, r);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en\n * An action that moves the target with a cubic Bezier curve by a certain distance.\n * Relative to its movement.\n * !#zh 按贝赛尔曲线轨迹移动指定的距离。\n * @method bezierBy\n * @param {Number} t - time in seconds\n * @param {Vec2[]} c - Array of points\n * @return {ActionInterval}\n * @example\n * // example\n * var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];\n * var bezierForward = cc.bezierBy(3, bezier);\n */\ncc.bezierBy = function (t, c) {\n return new cc.BezierBy(t, c);\n};\n\n\n/* An action that moves the target with a cubic Bezier curve to a destination point.\n * @class BezierTo\n * @extends BezierBy\n * @param {Number} t\n * @param {Vec2[]} c - Array of points\n * @example\n * var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];\n * var bezierTo = new cc.BezierTo(2, bezier);\n */\ncc.BezierTo = cc.Class({\n name: 'cc.BezierTo',\n extends: cc.BezierBy,\n\n ctor:function (t, c) {\n this._toConfig = [];\n\t\tc && this.initWithDuration(t, c);\n },\n\n /*\n * Initializes the action.\n * @param {Number} t time in seconds\n * @param {Vec2[]} c - Array of points\n * @return {Boolean}\n */\n initWithDuration:function (t, c) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, t)) {\n this._toConfig = c;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.BezierTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._toConfig);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.BezierBy.prototype.startWithTarget.call(this, target);\n var locStartPos = this._startPosition;\n var locToConfig = this._toConfig;\n var locConfig = this._config;\n\n locConfig[0] = locToConfig[0].sub(locStartPos);\n locConfig[1] = locToConfig[1].sub(locStartPos);\n locConfig[2] = locToConfig[2].sub(locStartPos);\n }\n});\n/**\n * !#en An action that moves the target with a cubic Bezier curve to a destination point.\n * !#zh 按贝赛尔曲线轨迹移动到目标位置。\n * @method bezierTo\n * @param {Number} t\n * @param {Vec2[]} c - Array of points\n * @return {ActionInterval}\n * @example\n * // example\n * var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)];\n * var bezierTo = cc.bezierTo(2, bezier);\n */\ncc.bezierTo = function (t, c) {\n return new cc.BezierTo(t, c);\n};\n\n\n/* Scales a Node object to a zoom factor by modifying it's scale property.\n * @warning This action doesn't support \"reverse\"\n * @class ScaleTo\n * @extends ActionInterval\n * @param {Number} duration\n * @param {Number} sx scale parameter in X\n * @param {Number} [sy] scale parameter in Y, if Null equal to sx\n * @example\n * // It scales to 0.5 in both X and Y.\n * var actionTo = new cc.ScaleTo(2, 0.5);\n *\n * // It scales to 0.5 in x and 2 in Y\n * var actionTo = new cc.ScaleTo(2, 0.5, 2);\n */\ncc.ScaleTo = cc.Class({\n name: 'cc.ScaleTo',\n extends: cc.ActionInterval,\n\n ctor:function (duration, sx, sy) {\n this._scaleX = 1;\n this._scaleY = 1;\n this._startScaleX = 1;\n this._startScaleY = 1;\n this._endScaleX = 0;\n this._endScaleY = 0;\n this._deltaX = 0;\n this._deltaY = 0;\n sx !== undefined && cc.ScaleTo.prototype.initWithDuration.call(this, duration, sx, sy);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration\n * @param {Number} sx\n * @param {Number} [sy=]\n * @return {Boolean}\n */\n initWithDuration:function (duration, sx, sy) { //function overload here\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._endScaleX = sx;\n this._endScaleY = (sy != null) ? sy : sx;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.ScaleTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._endScaleX, this._endScaleY);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._startScaleX = target.scaleX;\n this._startScaleY = target.scaleY;\n this._deltaX = this._endScaleX - this._startScaleX;\n this._deltaY = this._endScaleY - this._startScaleY;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target) {\n this.target.scaleX = this._startScaleX + this._deltaX * dt;\n\t this.target.scaleY = this._startScaleY + this._deltaY * dt;\n }\n }\n});\n/**\n * !#en Scales a Node object to a zoom factor by modifying it's scale property.\n * !#zh 将节点大小缩放到指定的倍数。\n * @method scaleTo\n * @param {Number} duration\n * @param {Number} sx scale parameter in X\n * @param {Number} [sy] scale parameter in Y, if Null equal to sx\n * @return {ActionInterval}\n * @example\n * // example\n * // It scales to 0.5 in both X and Y.\n * var actionTo = cc.scaleTo(2, 0.5);\n *\n * // It scales to 0.5 in x and 2 in Y\n * var actionTo = cc.scaleTo(2, 0.5, 2);\n */\ncc.scaleTo = function (duration, sx, sy) { //function overload\n return new cc.ScaleTo(duration, sx, sy);\n};\n\n\n/* Scales a Node object a zoom factor by modifying it's scale property.\n * Relative to its changes.\n * @class ScaleBy\n * @extends ScaleTo\n */\ncc.ScaleBy = cc.Class({\n name: 'cc.ScaleBy',\n extends: cc.ScaleTo,\n\n startWithTarget:function (target) {\n cc.ScaleTo.prototype.startWithTarget.call(this, target);\n this._deltaX = this._startScaleX * this._endScaleX - this._startScaleX;\n this._deltaY = this._startScaleY * this._endScaleY - this._startScaleY;\n },\n\n reverse:function () {\n var action = new cc.ScaleBy(this._duration, 1 / this._endScaleX, 1 / this._endScaleY);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n },\n\n clone:function () {\n var action = new cc.ScaleBy();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._endScaleX, this._endScaleY);\n return action;\n }\n});\n/**\n * !#en\n * Scales a Node object a zoom factor by modifying it's scale property.\n * Relative to its changes.\n * !#zh 按指定的倍数缩放节点大小。\n * @method scaleBy\n * @param {Number} duration duration in seconds\n * @param {Number} sx sx scale parameter in X\n * @param {Number|Null} [sy=] sy scale parameter in Y, if Null equal to sx\n * @return {ActionInterval}\n * @example\n * // example without sy, it scales by 2 both in X and Y\n * var actionBy = cc.scaleBy(2, 2);\n *\n * //example with sy, it scales by 0.25 in X and 4.5 in Y\n * var actionBy2 = cc.scaleBy(2, 0.25, 4.5);\n */\ncc.scaleBy = function (duration, sx, sy) {\n return new cc.ScaleBy(duration, sx, sy);\n};\n\n/* Blinks a Node object by modifying it's visible property\n * @class Blink\n * @extends ActionInterval\n * @param {Number} duration duration in seconds\n * @param {Number} blinks blinks in times\n * @example\n * var action = new cc.Blink(2, 10);\n */\ncc.Blink = cc.Class({\n name: 'cc.Blink',\n extends: cc.ActionInterval,\n\n ctor:function (duration, blinks) {\n this._times = 0;\n this._originalState = false;\n\t\tblinks !== undefined && this.initWithDuration(duration, blinks);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration duration in seconds\n * @param {Number} blinks blinks in times\n * @return {Boolean}\n */\n initWithDuration:function (duration, blinks) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._times = blinks;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.Blink();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._times);\n return action;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n if (this.target && !this.isDone()) {\n var slice = 1.0 / this._times;\n var m = dt % slice;\n this.target.opacity = (m > (slice / 2)) ? 255 : 0;\n }\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._originalState = target.opacity;\n },\n\n stop:function () {\n this.target.opacity = this._originalState;\n cc.ActionInterval.prototype.stop.call(this);\n },\n\n reverse:function () {\n var action = new cc.Blink(this._duration, this._times);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n/**\n * !#en Blinks a Node object by modifying it's visible property.\n * !#zh 闪烁(基于透明度)。\n * @method blink\n * @param {Number} duration duration in seconds\n * @param {Number} blinks blinks in times\n * @return {ActionInterval}\n * @example\n * // example\n * var action = cc.blink(2, 10);\n */\ncc.blink = function (duration, blinks) {\n return new cc.Blink(duration, blinks);\n};\n\n/* Fades an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from the current value to a custom one.\n * @warning This action doesn't support \"reverse\"\n * @class FadeTo\n * @extends ActionInterval\n * @param {Number} duration\n * @param {Number} opacity 0-255, 0 is transparent\n * @example\n * var action = new cc.FadeTo(1.0, 0);\n */\ncc.FadeTo = cc.Class({\n name: 'cc.FadeTo',\n extends: cc.ActionInterval,\n\n ctor:function (duration, opacity) {\n this._toOpacity = 0;\n this._fromOpacity = 0;\n opacity !== undefined && cc.FadeTo.prototype.initWithDuration.call(this, duration, opacity);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration duration in seconds\n * @param {Number} opacity\n * @return {Boolean}\n */\n initWithDuration:function (duration, opacity) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._toOpacity = opacity;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.FadeTo();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._toOpacity);\n return action;\n },\n\n update:function (time) {\n time = this._computeEaseTime(time);\n var fromOpacity = this._fromOpacity !== undefined ? this._fromOpacity : 255;\n this.target.opacity = fromOpacity + (this._toOpacity - fromOpacity) * time;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._fromOpacity = target.opacity;\n }\n});\n\n/**\n * !#en\n * Fades an object that implements the cc.RGBAProtocol protocol.\n * It modifies the opacity from the current value to a custom one.\n * !#zh 修改透明度到指定值。\n * @method fadeTo\n * @param {Number} duration\n * @param {Number} opacity 0-255, 0 is transparent\n * @return {ActionInterval}\n * @example\n * // example\n * var action = cc.fadeTo(1.0, 0);\n */\ncc.fadeTo = function (duration, opacity) {\n return new cc.FadeTo(duration, opacity);\n};\n\n/* Fades In an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 0 to 255. \n * The \"reverse\" of this action is FadeOut\n * @class FadeIn\n * @extends FadeTo\n * @param {Number} duration duration in seconds\n */\ncc.FadeIn = cc.Class({\n name: 'cc.FadeIn',\n extends: cc.FadeTo,\n\n ctor:function (duration) {\n if (duration == null)\n duration = 0;\n this._reverseAction = null;\n this.initWithDuration(duration, 255);\n },\n\n reverse:function () {\n var action = new cc.FadeOut();\n action.initWithDuration(this._duration, 0);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n },\n\n clone:function () {\n var action = new cc.FadeIn();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._toOpacity);\n return action;\n },\n\n startWithTarget:function (target) {\n if(this._reverseAction)\n this._toOpacity = this._reverseAction._fromOpacity;\n cc.FadeTo.prototype.startWithTarget.call(this, target);\n }\n});\n\n/**\n * !#en Fades In an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 0 to 255.\n * !#zh 渐显效果。\n * @method fadeIn\n * @param {Number} duration duration in seconds\n * @return {ActionInterval}\n * @example\n * //example\n * var action = cc.fadeIn(1.0);\n */\ncc.fadeIn = function (duration) {\n return new cc.FadeIn(duration);\n};\n\n\n/* Fades Out an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 255 to 0.\n * The \"reverse\" of this action is FadeIn\n * @class FadeOut\n * @extends FadeTo\n * @param {Number} duration duration in seconds\n */\ncc.FadeOut = cc.Class({\n name: 'cc.FadeOut',\n extends: cc.FadeTo,\n\n ctor:function (duration) {\n if (duration == null)\n duration = 0;\n this._reverseAction = null;\n this.initWithDuration(duration, 0);\n },\n\n reverse:function () {\n var action = new cc.FadeIn();\n action._reverseAction = this;\n action.initWithDuration(this._duration, 255);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n },\n\n clone:function () {\n var action = new cc.FadeOut();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._toOpacity);\n return action;\n }\n});\n\n/**\n * !#en Fades Out an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 255 to 0.\n * !#zh 渐隐效果。\n * @method fadeOut\n * @param {Number} d duration in seconds\n * @return {ActionInterval}\n * @example\n * // example\n * var action = cc.fadeOut(1.0);\n */\ncc.fadeOut = function (d) {\n return new cc.FadeOut(d);\n};\n\n/* Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.\n * @warning This action doesn't support \"reverse\"\n * @class TintTo\n * @extends ActionInterval\n * @param {Number} duration\n * @param {Number} red 0-255\n * @param {Number} green 0-255\n * @param {Number} blue 0-255\n * @example\n * var action = new cc.TintTo(2, 255, 0, 255);\n */\ncc.TintTo = cc.Class({\n name: 'cc.TintTo',\n extends: cc.ActionInterval,\n\n ctor:function (duration, red, green, blue) {\n this._to = cc.color(0, 0, 0);\n this._from = cc.color(0, 0, 0);\n\n if (red instanceof cc.Color) {\n blue = red.b;\n green = red.g;\n red = red.r;\n }\n\n blue !== undefined && this.initWithDuration(duration, red, green, blue);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration\n * @param {Number} red 0-255\n * @param {Number} green 0-255\n * @param {Number} blue 0-255\n * @return {Boolean}\n */\n initWithDuration:function (duration, red, green, blue) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._to = cc.color(red, green, blue);\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.TintTo();\n this._cloneDecoration(action);\n var locTo = this._to;\n action.initWithDuration(this._duration, locTo.r, locTo.g, locTo.b);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n\n this._from = this.target.color;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n var locFrom = this._from, locTo = this._to;\n if (locFrom) {\n this.target.color = cc.color(\n locFrom.r + (locTo.r - locFrom.r) * dt,\n locFrom.g + (locTo.g - locFrom.g) * dt,\n locFrom.b + (locTo.b - locFrom.b) * dt);\n }\n }\n});\n\n/**\n * !#en Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.\n * !#zh 修改颜色到指定值。\n * @method tintTo\n * @param {Number} duration\n * @param {Number} red 0-255\n * @param {Number} green 0-255\n * @param {Number} blue 0-255\n * @return {ActionInterval}\n * @example\n * // example\n * var action = cc.tintTo(2, 255, 0, 255);\n */\ncc.tintTo = function (duration, red, green, blue) {\n return new cc.TintTo(duration, red, green, blue);\n};\n\n\n/* Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.\n * Relative to their own color change.\n * @class TintBy\n * @extends ActionInterval\n * @param {Number} duration duration in seconds\n * @param {Number} deltaRed\n * @param {Number} deltaGreen\n * @param {Number} deltaBlue\n * @example\n * var action = new cc.TintBy(2, -127, -255, -127);\n */\ncc.TintBy = cc.Class({\n name: 'cc.TintBy',\n extends: cc.ActionInterval,\n\n ctor:function (duration, deltaRed, deltaGreen, deltaBlue) {\n this._deltaR = 0;\n this._deltaG = 0;\n this._deltaB = 0;\n this._fromR = 0;\n this._fromG = 0;\n this._fromB = 0;\n\t\tdeltaBlue !== undefined && this.initWithDuration(duration, deltaRed, deltaGreen, deltaBlue);\n },\n\n /*\n * Initializes the action.\n * @param {Number} duration\n * @param {Number} deltaRed 0-255\n * @param {Number} deltaGreen 0-255\n * @param {Number} deltaBlue 0-255\n * @return {Boolean}\n */\n initWithDuration:function (duration, deltaRed, deltaGreen, deltaBlue) {\n if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {\n this._deltaR = deltaRed;\n this._deltaG = deltaGreen;\n this._deltaB = deltaBlue;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.TintBy();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration, this._deltaR, this._deltaG, this._deltaB);\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n\n var color = target.color;\n this._fromR = color.r;\n this._fromG = color.g;\n this._fromB = color.b;\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n\n this.target.color = cc.color(this._fromR + this._deltaR * dt,\n this._fromG + this._deltaG * dt,\n this._fromB + this._deltaB * dt);\n },\n\n reverse:function () {\n var action = new cc.TintBy(this._duration, -this._deltaR, -this._deltaG, -this._deltaB);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n }\n});\n\n/**\n * !#en\n * Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one.\n * Relative to their own color change.\n * !#zh 按照指定的增量修改颜色。\n * @method tintBy\n * @param {Number} duration duration in seconds\n * @param {Number} deltaRed\n * @param {Number} deltaGreen\n * @param {Number} deltaBlue\n * @return {ActionInterval}\n * @example\n * // example\n * var action = cc.tintBy(2, -127, -255, -127);\n */\ncc.tintBy = function (duration, deltaRed, deltaGreen, deltaBlue) {\n return new cc.TintBy(duration, deltaRed, deltaGreen, deltaBlue);\n};\n\n/* Delays the action a certain amount of seconds\n * @class DelayTime\n * @extends ActionInterval\n */\ncc.DelayTime = cc.Class({\n name: 'cc.DelayTime',\n extends: cc.ActionInterval,\n\n update:function (dt) {},\n\n reverse:function () {\n var action = new cc.DelayTime(this._duration);\n this._cloneDecoration(action);\n this._reverseEaseList(action);\n return action;\n },\n\n clone:function () {\n var action = new cc.DelayTime();\n this._cloneDecoration(action);\n action.initWithDuration(this._duration);\n return action;\n }\n});\n\n/**\n * !#en Delays the action a certain amount of seconds.\n * !#zh 延迟指定的时间量。\n * @method delayTime\n * @param {Number} d duration in seconds\n * @return {ActionInterval}\n * @example\n * // example\n * var delay = cc.delayTime(1);\n */\ncc.delayTime = function (d) {\n return new cc.DelayTime(d);\n};\n\n/*\n *
\n * Executes an action in reverse order, from time=duration to time=0 \n * @warning Use this action carefully. This action is not sequenceable. \n * Use it as the default \"reversed\" method of your own actions, but using it outside the \"reversed\" \n * scope is not recommended.\n *
\n * Overrides the target of an action so that it always runs on the target \n * specified at action creation rather than the one specified by runAction.\n *
\n * @class TargetedAction\n * @extends ActionInterval\n * @param {Node} target\n * @param {FiniteTimeAction} action\n */\ncc.TargetedAction = cc.Class({\n name: 'cc.TargetedAction',\n extends: cc.ActionInterval,\n\n ctor: function (target, action) {\n this._action = null;\n this._forcedTarget = null;\n\t\taction && this.initWithTarget(target, action);\n },\n\n /*\n * Init an action with the specified action and forced target\n * @param {Node} target\n * @param {FiniteTimeAction} action\n * @return {Boolean}\n */\n initWithTarget:function (target, action) {\n if (this.initWithDuration(action._duration)) {\n this._forcedTarget = target;\n this._action = action;\n return true;\n }\n return false;\n },\n\n clone:function () {\n var action = new cc.TargetedAction();\n this._cloneDecoration(action);\n action.initWithTarget(this._forcedTarget, this._action.clone());\n return action;\n },\n\n startWithTarget:function (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n this._action.startWithTarget(this._forcedTarget);\n },\n\n stop:function () {\n this._action.stop();\n },\n\n update:function (dt) {\n dt = this._computeEaseTime(dt);\n this._action.update(dt);\n },\n\n /*\n * return the target that the action will be forced to run with\n * @return {Node}\n */\n getForcedTarget:function () {\n return this._forcedTarget;\n },\n\n /*\n * set the target that the action will be forced to run with\n * @param {Node} forcedTarget\n */\n setForcedTarget:function (forcedTarget) {\n if (this._forcedTarget !== forcedTarget)\n this._forcedTarget = forcedTarget;\n }\n});\n\n/**\n * !#en Create an action with the specified action and forced target.\n * !#zh 用已有动作和一个新的目标节点创建动作。\n * @method targetedAction\n * @param {Node} target\n * @param {FiniteTimeAction} action\n * @return {ActionInterval}\n */\ncc.targetedAction = function (target, action) {\n return new cc.TargetedAction(target, action);\n};\n","/****************************************************************************\n Copyright (c) 2008-2010 Ricardo Quesada\n Copyright (c) 2011-2012 cocos2d-x.org\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nrequire('../core/platform/CCClass');\nvar js = require('../core/platform/js');\n\n/*\n * @class HashElement\n * @constructor\n * @private\n */\nvar HashElement = function () {\n this.actions = [];\n this.target = null; //ccobject\n this.actionIndex = 0;\n this.currentAction = null; //CCAction\n this.paused = false;\n this.lock = false;\n};\n\n/**\n * !#en\n * cc.ActionManager is a class that can manage actions. \n * Normally you won't need to use this class directly. 99% of the cases you will use the CCNode interface,\n * which uses this class's singleton object.\n * But there are some cases where you might need to use this class. \n * Examples: \n * - When you want to run an action where the target is different from a CCNode. \n * - When you want to pause / resume the actions \n * !#zh\n * cc.ActionManager 是可以管理动作的单例类。 \n * 通常你并不需要直接使用这个类,99%的情况您将使用 CCNode 的接口。 \n * 但也有一些情况下,您可能需要使用这个类。 \n * 例如:\n * - 当你想要运行一个动作,但目标不是 CCNode 类型时。 \n * - 当你想要暂停/恢复动作时。 \n * @class ActionManager\n * @example {@link cocos2d/core/CCActionManager/ActionManager.js}\n */\ncc.ActionManager = function () {\n this._hashTargets = js.createMap(true);\n this._arrayTargets = [];\n this._currentTarget = null;\n cc.director._scheduler && cc.director._scheduler.enableForTarget(this);\n};\ncc.ActionManager.prototype = {\n constructor: cc.ActionManager,\n _elementPool: [],\n\n _searchElementByTarget:function (arr, target) {\n for (var k = 0; k < arr.length; k++) {\n if (target === arr[k].target)\n return arr[k];\n }\n return null;\n },\n\n _getElement: function (target, paused) {\n var element = this._elementPool.pop();\n if (!element) {\n element = new HashElement();\n }\n element.target = target;\n element.paused = !!paused;\n return element;\n },\n\n _putElement: function (element) {\n element.actions.length = 0;\n element.actionIndex = 0;\n element.currentAction = null;\n element.paused = false;\n element.target = null;\n element.lock = false;\n this._elementPool.push(element);\n },\n\n /**\n * !#en\n * Adds an action with a target. \n * If the target is already present, then the action will be added to the existing target.\n * If the target is not present, a new instance of this target will be created either paused or not, and the action will be added to the newly created target.\n * When the target is paused, the queued actions won't be 'ticked'.\n * !#zh\n * 增加一个动作,同时还需要提供动作的目标对象,目标对象是否暂停作为参数。 \n * 如果目标已存在,动作将会被直接添加到现有的节点中。 \n * 如果目标不存在,将为这一目标创建一个新的实例,并将动作添加进去。 \n * 当目标状态的 paused 为 true,动作将不会被执行\n *\n * @method addAction\n * @param {Action} action\n * @param {Node} target\n * @param {Boolean} paused\n */\n addAction:function (action, target, paused) {\n if (!action || !target) {\n cc.errorID(1000);\n return;\n }\n\n //check if the action target already exists\n var element = this._hashTargets[target._id];\n //if doesn't exists, create a hashelement and push in mpTargets\n if (!element) {\n element = this._getElement(target, paused);\n this._hashTargets[target._id] = element;\n this._arrayTargets.push(element);\n }\n else if (!element.actions) {\n element.actions = [];\n }\n\n element.actions.push(action);\n action.startWithTarget(target);\n },\n\n /**\n * !#en Removes all actions from all the targets.\n * !#zh 移除所有对象的所有动作。\n * @method removeAllActions\n */\n removeAllActions:function () {\n var locTargets = this._arrayTargets;\n for (var i = 0; i < locTargets.length; i++) {\n var element = locTargets[i];\n if (element)\n this._putElement(element);\n }\n this._arrayTargets.length = 0;\n this._hashTargets = js.createMap(true);\n },\n /**\n * !#en\n * Removes all actions from a certain target. \n * All the actions that belongs to the target will be removed.\n * !#zh\n * 移除指定对象上的所有动作。 \n * 属于该目标的所有的动作将被删除。\n * @method removeAllActionsFromTarget\n * @param {Node} target\n * @param {Boolean} forceDelete\n */\n removeAllActionsFromTarget:function (target, forceDelete) {\n // explicit null handling\n if (target == null)\n return;\n var element = this._hashTargets[target._id];\n if (element) {\n element.actions.length = 0;\n this._deleteHashElement(element);\n }\n },\n /**\n * !#en Removes an action given an action reference.\n * !#zh 移除指定的动作。\n * @method removeAction \n * @param {Action} action\n */\n removeAction:function (action) {\n // explicit null handling\n if (!action) {\n return;\n }\n var target = action.getOriginalTarget();\n var element = this._hashTargets[target._id];\n\n if (!element) {\n return;\n }\n\n for (var i = 0; i < element.actions.length; i++) {\n if (element.actions[i] === action) {\n element.actions.splice(i, 1);\n // update actionIndex in case we are in tick. looping over the actions\n if (element.actionIndex >= i)\n element.actionIndex--;\n break;\n }\n }\n },\n\n _removeActionByTag (tag, element, target) {\n for (var i = 0, l = element.actions.length; i < l; ++i) {\n var action = element.actions[i];\n if (action && action.getTag() === tag) {\n if (target && action.getOriginalTarget() !== target) {\n continue;\n }\n this._removeActionAtIndex(i, element);\n break;\n }\n }\n },\n\n /**\n * !#en Removes an action given its tag and the target.\n * !#zh 删除指定对象下特定标签的一个动作,将删除首个匹配到的动作。\n * @method removeActionByTag\n * @param {Number} tag\n * @param {Node} [target]\n */\n removeActionByTag:function (tag, target) {\n if(tag === cc.Action.TAG_INVALID)\n cc.logID(1002);\n\n let hashTargets = this._hashTargets;\n if (target) {\n var element = hashTargets[target._id];\n if (element) {\n this._removeActionByTag(tag, element, target);\n }\n }\n else {\n for (let name in hashTargets) {\n let element = hashTargets[name];\n this._removeActionByTag(tag, element);\n }\n }\n },\n\n /**\n * !#en Gets an action given its tag an a target.\n * !#zh 通过目标对象和标签获取一个动作。\n * @method getActionByTag\n * @param {Number} tag\n * @param {Node} target\n * @return {Action|Null} return the Action with the given tag on success\n */\n getActionByTag:function (tag, target) {\n if(tag === cc.Action.TAG_INVALID)\n cc.logID(1004);\n\n var element = this._hashTargets[target._id];\n if (element) {\n if (element.actions != null) {\n for (var i = 0; i < element.actions.length; ++i) {\n var action = element.actions[i];\n if (action && action.getTag() === tag)\n return action;\n }\n }\n cc.logID(1005, tag);\n }\n return null;\n },\n\n\n /**\n * !#en\n * Returns the numbers of actions that are running in a certain target. \n * Composable actions are counted as 1 action. \n * Example: \n * - If you are running 1 Sequence of 7 actions, it will return 1. \n * - If you are running 7 Sequences of 2 actions, it will return 7.\n * !#zh\n * 返回指定对象下所有正在运行的动作数量。 \n * 组合动作被算作一个动作。 \n * 例如: \n * - 如果您正在运行 7 个动作组成的序列动作(Sequence),这个函数将返回 1。 \n * - 如果你正在运行 2 个序列动作(Sequence)和 5 个普通动作,这个函数将返回 7。 \n *\n * @method getNumberOfRunningActionsInTarget\n * @param {Node} target\n * @return {Number}\n */\n getNumberOfRunningActionsInTarget:function (target) {\n var element = this._hashTargets[target._id];\n if (element)\n return (element.actions) ? element.actions.length : 0;\n\n return 0;\n },\n /**\n * !#en Pauses the target: all running actions and newly added actions will be paused.\n * !#zh 暂停指定对象:所有正在运行的动作和新添加的动作都将会暂停。\n * @method pauseTarget\n * @param {Node} target\n */\n pauseTarget:function (target) {\n var element = this._hashTargets[target._id];\n if (element)\n element.paused = true;\n },\n /**\n * !#en Resumes the target. All queued actions will be resumed.\n * !#zh 让指定目标恢复运行。在执行序列中所有被暂停的动作将重新恢复运行。\n * @method resumeTarget\n * @param {Node} target\n */\n resumeTarget:function (target) {\n var element = this._hashTargets[target._id];\n if (element)\n element.paused = false;\n },\n\n /**\n * !#en Pauses all running actions, returning a list of targets whose actions were paused.\n * !#zh 暂停所有正在运行的动作,返回一个包含了那些动作被暂停了的目标对象的列表。\n * @method pauseAllRunningActions\n * @return {Array} a list of targets whose actions were paused.\n */\n pauseAllRunningActions:function(){\n var idsWithActions = [];\n var locTargets = this._arrayTargets;\n for(var i = 0; i< locTargets.length; i++){\n var element = locTargets[i];\n if(element && !element.paused){\n element.paused = true;\n idsWithActions.push(element.target);\n }\n }\n return idsWithActions;\n },\n\n /**\n * !#en Resume a set of targets (convenience function to reverse a pauseAllRunningActions or pauseTargets call).\n * !#zh 让一组指定对象恢复运行(用来逆转 pauseAllRunningActions 效果的便捷函数)。\n * @method resumeTargets\n * @param {Array} targetsToResume\n */\n resumeTargets:function(targetsToResume){\n if (!targetsToResume)\n return;\n\n for (var i = 0; i< targetsToResume.length; i++) {\n if(targetsToResume[i])\n this.resumeTarget(targetsToResume[i]);\n }\n },\n\n /**\n * !#en Pause a set of targets.\n * !#zh 暂停一组指定对象。\n * @method pauseTargets\n * @param {Array} targetsToPause\n */\n pauseTargets:function(targetsToPause){\n if (!targetsToPause)\n return;\n\n for (var i = 0; i< targetsToPause.length; i++) {\n if (targetsToPause[i])\n this.pauseTarget(targetsToPause[i]);\n }\n },\n\n /**\n * !#en\n * purges the shared action manager. It releases the retained instance. \n * because it uses this, so it can not be static.\n * !#zh\n * 清除共用的动作管理器。它释放了持有的实例。 \n * 因为它使用 this,因此它不能是静态的。\n * @method purgeSharedManager\n */\n purgeSharedManager:function () {\n cc.director.getScheduler().unscheduleUpdate(this);\n },\n\n //protected\n _removeActionAtIndex:function (index, element) {\n var action = element.actions[index];\n\n element.actions.splice(index, 1);\n\n // update actionIndex in case we are in tick. looping over the actions\n if (element.actionIndex >= index)\n element.actionIndex--;\n\n if (element.actions.length === 0) {\n this._deleteHashElement(element);\n }\n },\n\n _deleteHashElement:function (element) {\n var ret = false;\n if (element && !element.lock) {\n if (this._hashTargets[element.target._id]) {\n delete this._hashTargets[element.target._id];\n var targets = this._arrayTargets;\n for (var i = 0, l = targets.length; i < l; i++) {\n if (targets[i] === element) {\n targets.splice(i, 1);\n break;\n }\n }\n this._putElement(element);\n ret = true;\n }\n }\n return ret;\n },\n\n /**\n * !#en The ActionManager update。\n * !#zh ActionManager 主循环。\n * @method update\n * @param {Number} dt delta time in seconds\n */\n update:function (dt) {\n var locTargets = this._arrayTargets , locCurrTarget;\n for (var elt = 0; elt < locTargets.length; elt++) {\n this._currentTarget = locTargets[elt];\n locCurrTarget = this._currentTarget;\n if (!locCurrTarget.paused && locCurrTarget.actions) {\n locCurrTarget.lock = true;\n // The 'actions' CCMutableArray may change while inside this loop.\n for (locCurrTarget.actionIndex = 0; locCurrTarget.actionIndex < locCurrTarget.actions.length; locCurrTarget.actionIndex++) {\n locCurrTarget.currentAction = locCurrTarget.actions[locCurrTarget.actionIndex];\n if (!locCurrTarget.currentAction)\n continue;\n\n //use for speed\n locCurrTarget.currentAction.step(dt * ( locCurrTarget.currentAction._speedMethod ? locCurrTarget.currentAction._speed : 1 ) );\n \n if (locCurrTarget.currentAction && locCurrTarget.currentAction.isDone()) {\n locCurrTarget.currentAction.stop();\n var action = locCurrTarget.currentAction;\n // Make currentAction nil to prevent removeAction from salvaging it.\n locCurrTarget.currentAction = null;\n this.removeAction(action);\n }\n\n locCurrTarget.currentAction = null;\n }\n locCurrTarget.lock = false;\n }\n // only delete currentTarget if no actions were scheduled during the cycle (issue #481)\n if (locCurrTarget.actions.length === 0) {\n this._deleteHashElement(locCurrTarget) && elt--;\n }\n }\n }\n};\n\nif (CC_TEST) {\n cc.ActionManager.prototype.isTargetPaused_TEST = function (target) {\n var element = this._hashTargets[target._id];\n return element.paused;\n };\n}\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nrequire('./CCActionManager');\nrequire('./CCAction');\nrequire('./CCActionInterval');\nrequire('./CCActionInstant');\nrequire('./CCActionEase');\nrequire('./CCActionCatmullRom');\nrequire('./tween');\n","import { bezier } from '../animation/bezier';\n\nlet _tweenID = 0;\n\nlet TweenAction = cc.Class({\n name: 'cc.TweenAction',\n extends: cc.ActionInterval,\n\n ctor (duration, props, opts) {\n this._opts = opts = opts || Object.create(null);\n this._props = Object.create(null);\n\n // global easing or progress used for this action\n opts.progress = opts.progress || this.progress;\n if (opts.easing && typeof opts.easing === 'string') {\n let easingName = opts.easing;\n opts.easing = cc.easing[easingName];\n !opts.easing && cc.warnID(1031, easingName);\n }\n\n let relative = this._opts.relative;\n\n for (let name in props) {\n let value = props[name];\n\n // property may have custom easing or progress function\n let easing, progress;\n if (value.value !== undefined && (value.easing || value.progress)) {\n if (typeof value.easing === 'string') {\n easing = cc.easing[value.easing];\n !easing && cc.warnID(1031, value.easing);\n }\n else {\n easing = value.easing;\n }\n progress = value.progress;\n value = value.value;\n }\n\n let isNumber = typeof value === 'number';\n if (!isNumber && (!value.lerp || (relative && !value.add && !value.mul) || !value.clone)) {\n cc.warn(`Can not animate ${name} property, because it do not have [lerp, (add|mul), clone] function.`);\n continue;\n }\n\n let prop = Object.create(null);\n prop.value = value;\n prop.easing = easing;\n prop.progress = progress;\n this._props[name] = prop;\n }\n\n this._originProps = props;\n this.initWithDuration(duration);\n },\n\n clone () {\n var action = new TweenAction(this._duration, this._originProps, this._opts);\n this._cloneDecoration(action);\n return action;\n },\n\n startWithTarget (target) {\n cc.ActionInterval.prototype.startWithTarget.call(this, target);\n\n let relative = !!this._opts.relative;\n let props = this._props;\n for (let name in props) {\n let value = target[name];\n let prop = props[name];\n\n if (typeof value === 'number') {\n prop.start = value;\n prop.current = value;\n prop.end = relative ? value + prop.value : prop.value;\n }\n else {\n prop.start = value.clone();\n prop.current = value.clone();\n prop.end = relative ? (value.add || value.mul).call(value, prop.value) : prop.value;\n }\n }\n },\n\n update (t) {\n let opts = this._opts;\n let easingTime = t;\n if (opts.easing) easingTime = opts.easing(t);\n\n let target = this.target;\n if (!target) return;\n\n let props = this._props;\n let progress = opts.progress;\n for (let name in props) {\n let prop = props[name];\n let time = prop.easing ? prop.easing(t) : easingTime;\n let current = prop.current = (prop.progress || progress)(prop.start, prop.end, prop.current, time);\n target[name] = current;\n }\n\n let onUpdate = opts.onUpdate;\n if (onUpdate) {\n onUpdate(target, t)\n }\n },\n\n progress (start, end, current, t) {\n if (typeof start === 'number') {\n current = start + (end - start) * t;\n }\n else {\n start.lerp(end, t, current);\n }\n return current;\n }\n});\n\nlet SetAction = cc.Class({\n name: 'cc.SetAction',\n extends: cc.ActionInstant,\n\n ctor (props) {\n this._props = {};\n props !== undefined && this.init(props);\n },\n\n init (props) {\n for (let name in props) {\n this._props[name] = props[name];\n }\n return true;\n },\n\n update () {\n let props = this._props;\n let target = this.target;\n for (let name in props) {\n target[name] = props[name];\n }\n },\n\n clone () {\n var action = new SetAction();\n action.init(this._props);\n return action;\n }\n});\n\n\n\n/**\n * !#en\n * Tween provide a simple and flexible way to create action. Tween's api is more flexible than `cc.Action`:\n * - Support creating an action sequence in chained api.\n * - Support animate any objects' any properties, not limited to node's properties. By contrast, `cc.Action` needs to create a new action class to support new node property.\n * - Support working with `cc.Action`.\n * - Support easing and progress function.\n * !#zh\n * Tween 提供了一个简单灵活的方法来创建 action。相对于 Cocos 传统的 `cc.Action`,`cc.Tween` 在创建动画上要灵活非常多:\n * - 支持以链式结构的方式创建一个动画序列。\n * - 支持对任意对象的任意属性进行缓动,不再局限于节点上的属性,而 `cc.Action` 添加一个属性的支持时还需要添加一个新的 action 类型。\n * - 支持与 `cc.Action` 混用。\n * - 支持设置 {{#crossLink \"Easing\"}}{{/crossLink}} 或者 progress 函数。\n * @class Tween\n * @example\n * cc.tween(node)\n * .to(1, {scale: 2, position: cc.v3(100, 100, 100)})\n * .call(() => { console.log('This is a callback'); })\n * .by(1, {scale: 3, position: cc.v3(200, 200, 200)}, {easing: 'sineOutIn'})\n * .start(cc.find('Canvas/cocos'));\n * @typescript Tween\n */\nfunction Tween (target) {\n this._actions = [];\n this._finalAction = null;\n this._target = target;\n this._tag = cc.Action.TAG_INVALID;\n}\n\n/**\n * @method constructor\n * @param {Object} [target]\n */\n\n/**\n * !#en Stop all tweens\n * !#zh 停止所有缓动\n * @method stopAll\n * @static\n */\nTween.stopAll = function () {\n cc.director.getActionManager().removeAllActions();\n}\n/**\n * !#en Stop all tweens by tag\n * !#zh 停止所有指定标签的缓动\n * @method stopAllByTag\n * @static\n * @param {number} tag\n */\nTween.stopAllByTag = function (tag) {\n cc.director.getActionManager().removeActionByTag(tag);\n}\n/**\n * !#en Stop all tweens by target\n * !#zh 停止所有指定对象的缓动\n * @method stopAllByTarget\n * @static\n * @param {Object} target\n */\nTween.stopAllByTarget = function (target) {\n cc.director.getActionManager().removeAllActionsFromTarget(target);\n}\n\n/**\n * !#en\n * Insert an action or tween to this sequence\n * !#zh\n * 插入一个 action 或者 tween 到队列中\n * @method then \n * @param {Action|Tween} other\n * @return {Tween}\n * @typescript then(other: Action|Tween): Tween\n */\nTween.prototype.then = function (other) {\n if (other instanceof cc.Action) {\n this._actions.push(other.clone());\n }\n else {\n this._actions.push(other._union());\n }\n return this;\n};\n\n\n/**\n * !#en\n * Set tween target\n * !#zh\n * 设置 tween 的 target\n * @method target\n * @param {Object} target\n * @return {Tween}\n * @typescript target(target: any): Tween\n */\nTween.prototype.target = function (target) {\n this._target = target;\n return this;\n};\n\n/**\n * !#en\n * Start this tween\n * !#zh\n * 运行当前 tween\n * @method start\n * @return {Tween}\n * @typescript start(): Tween\n */\nTween.prototype.start = function () {\n let target = this._target;\n if (!target) {\n cc.warn('Please set target to tween first');\n return this;\n }\n if (target instanceof cc.Object && !target.isValid) {\n return;\n }\n\n if (this._finalAction) {\n cc.director.getActionManager().removeAction(this._finalAction);\n }\n this._finalAction = this._union();\n\n if (target._id === undefined) {\n target._id = ++_tweenID;\n }\n\n this._finalAction.setTag(this._tag);\n cc.director.getActionManager().addAction(this._finalAction, target, false);\n return this;\n};\n\n/**\n * !#en\n * Stop this tween\n * !#zh\n * 停止当前 tween\n * @method stop\n * @return {Tween}\n * @typescript stop(): Tween\n */\nTween.prototype.stop = function () {\n if (this._finalAction) {\n cc.director.getActionManager().removeAction(this._finalAction);\n }\n return this;\n};\n\n\n/**\n * !#en Sets tween tag\n * !#zh 设置缓动的标签\n * @method tag\n * @param {number} tag\n * @return {Tween}\n * @typescript tag(tag: number): Tween\n */\nTween.prototype.tag = function (tag) {\n this._tag = tag;\n return this;\n};\n\n\n/**\n * !#en\n * Clone a tween\n * !#zh\n * 克隆当前 tween\n * @method clone\n * @param {Object} [target]\n * @return {Tween}\n * @typescript clone(target?: any): Tween\n */\nTween.prototype.clone = function (target) {\n let action = this._union();\n return cc.tween(target).then(action.clone());\n};\n\n/**\n * !#en\n * Integrate all previous actions to an action.\n * !#zh\n * 将之前所有的 action 整合为一个 action。\n * @method union\n * @return {Tween}\n * @typescritp union(): Tween\n */\nTween.prototype.union = function () {\n let action = this._union();\n this._actions.length = 0;\n this._actions.push(action);\n return this;\n};\n\nTween.prototype._union = function () {\n let actions = this._actions;\n\n if (actions.length === 1) {\n actions = actions[0];\n }\n else {\n actions = cc.sequence(actions);\n }\n\n return actions;\n};\n\nObject.assign(Tween.prototype, {\n /**\n * !#en Sets target's position property according to the bezier curve.\n * !#zh 按照贝塞尔路径设置目标的 position 属性。\n * @method bezierTo\n * @param {number} duration\n * @param {cc.Vec2} c1\n * @param {cc.Vec2} c2\n * @param {cc.Vec2} to\n * @return {Tween}\n * @typescript bezierTo(duration: number, c1: Vec2, c2: Vec2, to: Vec2): Tween\n */\n bezierTo (duration, c1, c2, to, opts) {\n let c0x = c1.x, c0y = c1.y,\n c1x = c2.x, c1y = c2.y;\n opts = opts || Object.create(null);\n opts.progress = function (start, end, current, t) {\n current.x = bezier(start.x, c0x, c1x, end.x, t);\n current.y = bezier(start.y, c0y, c1y, end.y, t);\n return current;\n }\n return this.to(duration, { position: to }, opts);\n },\n\n /**\n * !#en Sets target's position property according to the bezier curve.\n * !#zh 按照贝塞尔路径设置目标的 position 属性。\n * @method bezierBy\n * @param {number} duration\n * @param {cc.Vec2} c1\n * @param {cc.Vec2} c2\n * @param {cc.Vec2} to\n * @return {Tween}\n * @typescript bezierBy(duration: number, c1: Vec2, c2: Vec2, to: Vec2): Tween\n */\n bezierBy (duration, c1, c2, to, opts) {\n let c0x = c1.x, c0y = c1.y,\n c1x = c2.x, c1y = c2.y;\n opts = opts || Object.create(null);\n opts.progress = function (start, end, current, t) {\n let sx = start.x, sy = start.y;\n current.x = bezier(sx, c0x + sx, c1x + sx, end.x, t);\n current.y = bezier(sy, c0y + sy, c1y + sy, end.y, t);\n return current;\n }\n return this.by(duration, { position: to }, opts);\n },\n\n /**\n * !#en Flips target's scaleX\n * !#zh 翻转目标的 scaleX 属性\n * @method flipX\n * @return {Tween}\n * @typescript flipX(): Tween\n */\n flipX () {\n return this.call(() => { this._target.scaleX *= -1; }, this);\n \n },\n /**\n * !#en Flips target's scaleY\n * !#zh 翻转目标的 scaleY 属性\n * @method flipY\n * @return {Tween}\n * @typescript flipY(): Tween\n */\n flipY () {\n return this.call(() => { this._target.scaleY *= -1; }, this);\n },\n\n /**\n * !#en Blinks target by set target's opacity property\n * !#zh 通过设置目标的 opacity 属性达到闪烁效果\n * @method blink\n * @param {number} duration\n * @param {number} times\n * @param {Object} [opts]\n * @param {Function} [opts.progress]\n * @param {Function|String} [opts.easing]\n * @return {Tween}\n * @typescript blink(duration: number, times: number, opts?: {progress?: Function; easing?: Function|string; }): Tween\n */\n blink (duration, times, opts) {\n var slice = 1.0 / times;\n opts = opts || Object.create(null);\n opts.progress = function (start, end, current, t) {\n if (t >= 1) {\n return start;\n }\n else {\n var m = t % slice;\n return (m > (slice / 2)) ? 255 : 0;\n }\n };\n return this.to(duration, { opacity: 1 }, opts);\n },\n})\n\nlet tmp_args = [];\n\nfunction wrapAction (action) {\n return function () {\n tmp_args.length = 0;\n for (let l = arguments.length, i = 0; i < l; i++) {\n let arg = tmp_args[i] = arguments[i];\n if (arg instanceof Tween) {\n tmp_args[i] = arg._union();\n }\n }\n\n return action.apply(this, tmp_args);\n };\n}\n\nlet actions = {\n /**\n * !#en\n * Add an action which calculate with absolute value\n * !#zh\n * 添加一个对属性进行绝对值计算的 action\n * @method to\n * @param {Number} duration\n * @param {Object} props - {scale: 2, position: cc.v3(100, 100, 100)}\n * @param {Object} [opts]\n * @param {Function} [opts.progress]\n * @param {Function|String} [opts.easing]\n * @return {Tween}\n * @typescript\n * to>(duration: number, props: ConstructorType, opts?: OPTS): Tween\n */\n to (duration, props, opts) {\n opts = opts || Object.create(null);\n opts.relative = false;\n return new TweenAction(duration, props, opts);\n },\n\n /**\n * !#en\n * Add an action which calculate with relative value\n * !#zh\n * 添加一个对属性进行相对值计算的 action\n * @method by\n * @param {Number} duration\n * @param {Object} props - {scale: 2, position: cc.v3(100, 100, 100)}\n * @param {Object} [opts]\n * @param {Function} [opts.progress]\n * @param {Function|String} [opts.easing]\n * @return {Tween}\n * @typescript\n * by>(duration: number, props: ConstructorType, opts?: OPTS): Tween\n */\n by (duration, props, opts) {\n opts = opts || Object.create(null);\n opts.relative = true;\n return new TweenAction(duration, props, opts);\n },\n\n /**\n * !#en\n * Directly set target properties\n * !#zh\n * 直接设置 target 的属性\n * @method set\n * @param {Object} props\n * @return {Tween}\n * @typescript\n * set (props: ConstructorType) : Tween\n */\n set (props) {\n return new SetAction(props);\n },\n\n /**\n * !#en\n * Add an delay action\n * !#zh\n * 添加一个延时 action\n * @method delay\n * @param {Number} duration\n * @return {Tween}\n * @typescript delay(duration: number): Tween\n */\n delay: cc.delayTime,\n /**\n * !#en\n * Add an callback action\n * !#zh\n * 添加一个回调 action\n * @method call\n * @param {Function} callback\n * @param {object} [selectTarget]\n * @return {Tween}\n * @typescript call(callback: Function, selectTarget?: object): Tween\n */\n call: cc.callFunc,\n /**\n * !#en\n * Add an hide action\n * !#zh\n * 添加一个隐藏 action\n * @method hide\n * @return {Tween}\n * @typescript hide(): Tween\n */\n hide: cc.hide,\n /**\n * !#en\n * Add an show action\n * !#zh\n * 添加一个显示 action\n * @method show\n * @return {Tween}\n * @typescript show(): Tween\n */\n show: cc.show,\n /**\n * !#en\n * Add an removeSelf action\n * !#zh\n * 添加一个移除自己 action\n * @method removeSelf\n * @return {Tween}\n * @typescript removeSelf(): Tween\n */\n removeSelf: cc.removeSelf,\n /**\n * !#en\n * Add an sequence action\n * !#zh\n * 添加一个队列 action\n * @method sequence\n * @param {Action|Tween} action\n * @param {Action|Tween} ...actions\n * @return {Tween}\n * @typescript sequence(action: Action|Tween, ...actions: (Action|Tween)[]): Tween\n */\n sequence: wrapAction(cc.sequence),\n /**\n * !#en\n * Add an parallel action\n * !#zh\n * 添加一个并行 action\n * @method parallel\n * @param {Action|Tween} action\n * @param {Action|Tween} ...actions\n * @return {Tween}\n * @typescript parallel(action: Action|Tween, ...actions: (Action|Tween)[]): Tween\n */\n parallel: wrapAction(cc.spawn)\n};\n\n// these action will use previous action as their parameters\nlet previousAsInputActions = {\n /**\n * !#en\n * Add an repeat action. This action will integrate before actions to a sequence action as their parameters.\n * !#zh\n * 添加一个重复 action,这个 action 会将前一个动作作为他的参数。\n * @method repeat\n * @param {Number} repeatTimes\n * @param {Action | Tween} [action]\n * @return {Tween}\n * @typescript repeat(repeatTimes: number, action?: Action|Tween): Tween\n */\n repeat: cc.repeat,\n /**\n * !#en\n * Add an repeat forever action. This action will integrate before actions to a sequence action as their parameters.\n * !#zh\n * 添加一个永久重复 action,这个 action 会将前一个动作作为他的参数。\n * @method repeatForever\n * @param {Action | Tween} [action]\n * @return {Tween}\n * @typescript repeatForever(action?: Action|Tween): Tween\n */\n repeatForever: function (action) {\n // TODO: fixed with cc.repeatForever\n return cc.repeat(action, 10e8);\n },\n /**\n * !#en\n * Add an reverse time action. This action will integrate before actions to a sequence action as their parameters.\n * !#zh\n * 添加一个倒置时间 action,这个 action 会将前一个动作作为他的参数。\n * @method reverseTime\n * @param {Action | Tween} [action]\n * @return {Tween}\n * @typescript reverseTime(action?: Action|Tween): Tween\n */\n reverseTime: cc.reverseTime,\n};\n\n\nlet keys = Object.keys(actions);\nfor (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n Tween.prototype[key] = function () {\n let action = actions[key].apply(this, arguments);\n this._actions.push(action);\n return this;\n };\n}\n\nkeys = Object.keys(previousAsInputActions);\nfor (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n Tween.prototype[key] = function () {\n\n let actions = this._actions;\n let action = arguments[arguments.length - 1];\n let length = arguments.length - 1;\n\n if (action instanceof cc.Tween) {\n action = action._union();\n }\n else if (!(action instanceof cc.Action)) {\n action = actions[actions.length - 1];\n actions.length -= 1;\n length += 1;\n }\n\n let args = [action];\n for (let i = 0; i < length; i++) {\n args.push(arguments[i]);\n }\n\n action = previousAsInputActions[key].apply(this, args);\n actions.push(action);\n\n return this;\n };\n}\n\n/**\n * @module cc\n */\n\n/**\n * @method tween\n * @param {Object} [target] - the target to animate\n * @return {Tween}\n * @typescript\n * tween (target?: T) : Tween\n */\ncc.tween = function (target) {\n return new Tween(target);\n};\n\ncc.Tween = Tween;\n \n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst js = cc.js;\nconst Playable = require('./playable');\nconst { EventAnimCurve, EventInfo } = require('./animation-curves');\nconst WrapModeMask = require('./types').WrapModeMask;\nconst binarySearch = require('../core/utils/binary-search').binarySearchEpsilon;\n\n// The actual animator for Animation Component\n\nfunction AnimationAnimator (target, animation) {\n Playable.call(this);\n this.target = target;\n this.animation = animation;\n\n this._anims = new js.array.MutableForwardIterator([]);\n}\njs.extend(AnimationAnimator, Playable);\nlet p = AnimationAnimator.prototype;\n\np.playState = function (state, startTime) {\n if (!state.clip) {\n return;\n }\n\n if (!state.curveLoaded) {\n initClipData(this.target, state);\n }\n\n state.animator = this;\n state.play();\n\n if (typeof startTime === 'number') {\n state.setTime(startTime);\n }\n\n this.play();\n};\n\np.stopStatesExcept = function (state) {\n let iterator = this._anims;\n let array = iterator.array;\n for (iterator.i = 0; iterator.i < array.length; ++iterator.i) {\n let anim = array[iterator.i];\n if (anim === state) {\n continue;\n }\n\n this.stopState(anim);\n }\n};\n\np.addAnimation = function (anim) {\n let index = this._anims.array.indexOf(anim);\n if (index === -1) {\n this._anims.push(anim);\n }\n\n anim._setEventTarget(this.animation);\n};\n\np.removeAnimation = function (anim) {\n let index = this._anims.array.indexOf(anim);\n if (index >= 0) {\n this._anims.fastRemoveAt(index);\n\n if (this._anims.array.length === 0) {\n this.stop();\n }\n }\n else {\n cc.errorID(3907);\n }\n\n anim.animator = null;\n};\n\np.sample = function () {\n let iterator = this._anims;\n let array = iterator.array;\n for (iterator.i = 0; iterator.i < array.length; ++iterator.i) {\n let anim = array[iterator.i];\n anim.sample();\n }\n};\n\np.stopState = function (state) {\n if (state) {\n state.stop();\n }\n};\n\np.pauseState = function (state) {\n if (state) {\n state.pause();\n }\n};\n\np.resumeState = function (state) {\n if (state) {\n state.resume();\n }\n\n if (this.isPaused) {\n this.resume();\n }\n};\n\np.setStateTime = function (state, time) {\n if (time !== undefined) {\n if (state) {\n state.setTime(time);\n state.sample();\n } \n }\n else {\n time = state;\n\n let array = this._anims.array;\n for (let i = 0; i < array.length; ++i) {\n let anim = array[i];\n anim.setTime(time);\n anim.sample();\n }\n }\n};\n\np.onStop = function () {\n let iterator = this._anims;\n let array = iterator.array;\n for (iterator.i = 0; iterator.i < array.length; ++iterator.i) {\n let anim = array[iterator.i];\n anim.stop();\n }\n};\n\np.onPause = function () {\n let array = this._anims.array;\n for (let i = 0; i < array.length; ++i) {\n let anim = array[i];\n anim.pause();\n\n // need to unbind animator to anim, or it maybe cannot be gc.\n anim.animator = null;\n }\n};\n\np.onResume = function () {\n let array = this._anims.array;\n for (let i = 0; i < array.length; ++i) {\n let anim = array[i];\n \n // rebind animator to anim\n anim.animator = this;\n\n anim.resume();\n }\n};\n\np._reloadClip = function (state) {\n initClipData(this.target, state);\n};\n\n// 这个方法应该是 SampledAnimCurve 才能用\nfunction createBatchedProperty (propPath, firstDotIndex, mainValue, animValue) {\n mainValue = mainValue.clone();\n let nextValue = mainValue;\n let leftIndex = firstDotIndex + 1;\n let rightIndex = propPath.indexOf('.', leftIndex);\n\n // scan property path\n while (rightIndex !== -1) {\n let nextName = propPath.slice(leftIndex, rightIndex);\n nextValue = nextValue[nextName];\n leftIndex = rightIndex + 1;\n rightIndex = propPath.indexOf('.', leftIndex);\n }\n let lastPropName = propPath.slice(leftIndex);\n nextValue[lastPropName] = animValue;\n\n return mainValue;\n}\n\nif (CC_TEST) {\n cc._Test.createBatchedProperty = createBatchedProperty;\n}\n\n\nfunction initClipData (root, state) {\n let clip = state.clip;\n\n state.duration = clip.duration;\n state.speed = clip.speed;\n state.wrapMode = clip.wrapMode;\n state.frameRate = clip.sample;\n\n if ((state.wrapMode & WrapModeMask.Loop) === WrapModeMask.Loop) {\n state.repeatCount = Infinity;\n }\n else {\n state.repeatCount = 1;\n }\n\n let curves = state.curves = clip.createCurves(state, root);\n\n // events curve\n\n let events = clip.events;\n\n if (!CC_EDITOR && events) {\n let curve;\n\n for (let i = 0, l = events.length; i < l; i++) {\n if (!curve) {\n curve = new EventAnimCurve();\n curve.target = root;\n curves.push(curve);\n }\n\n let eventData = events[i];\n let ratio = eventData.frame / state.duration;\n\n let eventInfo;\n let index = binarySearch(curve.ratios, ratio);\n if (index >= 0) {\n eventInfo = curve.events[index];\n }\n else {\n eventInfo = new EventInfo();\n curve.ratios.push(ratio);\n curve.events.push(eventInfo);\n }\n\n eventInfo.add(eventData.func, eventData.params);\n }\n }\n}\n\nif (CC_TEST) {\n cc._Test.initClipData = initClipData;\n}\n\n\nmodule.exports = AnimationAnimator;\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst WrapMode = require('./types').WrapMode;\nconst { DynamicAnimCurve, quickFindIndex } = require('./animation-curves');\nconst sampleMotionPaths = require('./motion-path-helper').sampleMotionPaths;\nconst binarySearch = require('../core/utils/binary-search').binarySearchEpsilon;\n\n/**\n * !#en Class for animation data handling.\n * !#zh 动画剪辑,用于存储动画数据。\n * @class AnimationClip\n * @extends Asset\n */\nvar AnimationClip = cc.Class({\n name: 'cc.AnimationClip',\n extends: cc.Asset,\n\n properties: {\n _duration: {\n default: 0,\n type: cc.Float,\n },\n\n /**\n * !#en Duration of this animation.\n * !#zh 动画的持续时间。\n * @property duration\n * @type {Number}\n */\n duration: {\n get: function () { return this._duration; },\n },\n\n /**\n * !#en FrameRate of this animation.\n * !#zh 动画的帧速率。\n * @property sample\n * @type {Number}\n */\n sample: {\n default: 60,\n },\n\n /**\n * !#en Speed of this animation.\n * !#zh 动画的播放速度。\n * @property speed\n * @type {Number}\n */\n speed: {\n default: 1\n },\n\n /**\n * !#en WrapMode of this animation.\n * !#zh 动画的循环模式。\n * @property wrapMode\n * @type {WrapMode}\n */\n wrapMode: {\n default: WrapMode.Normal\n },\n\n /**\n * !#en Curve data.\n * !#zh 曲线数据。\n * @property curveData\n * @type {Object}\n * @example {@link cocos2d/core/animation-clip/curve-data.js}\n */\n curveData: {\n default: {},\n visible: false,\n },\n\n /**\n * !#en Event data.\n * !#zh 事件数据。\n * @property events\n * @type {Object[]}\n * @example {@link cocos2d/core/animation-clip/event-data.js}\n * @typescript events: {frame: number, func: string, params: string[]}[]\n */\n events: {\n default: [],\n visible: false,\n }\n },\n\n statics: {\n /**\n * !#en Crate clip with a set of sprite frames\n * !#zh 使用一组序列帧图片来创建动画剪辑\n * @method createWithSpriteFrames\n * @param {[SpriteFrame]} spriteFrames\n * @param {Number} sample\n * @return {AnimationClip}\n * @static\n * @example\n *\n * var clip = cc.AnimationClip.createWithSpriteFrames(spriteFrames, 10);\n *\n */\n createWithSpriteFrames: function (spriteFrames, sample) {\n if (!Array.isArray(spriteFrames)) {\n cc.errorID(3905);\n return null;\n }\n\n var clip = new AnimationClip();\n clip.sample = sample || clip.sample;\n\n clip._duration = spriteFrames.length / clip.sample;\n\n var frames = [];\n var step = 1 / clip.sample;\n\n for (var i = 0, l = spriteFrames.length; i < l; i++) {\n frames[i] = { frame: (i * step), value: spriteFrames[i] };\n }\n\n clip.curveData = {\n comps: {\n // component\n 'cc.Sprite': {\n // component properties\n 'spriteFrame': frames\n }\n }\n };\n\n return clip;\n }\n },\n\n onLoad () {\n this._duration = Number.parseFloat(this.duration);\n this.speed = Number.parseFloat(this.speed);\n this.wrapMode = Number.parseInt(this.wrapMode);\n this.frameRate = Number.parseFloat(this.sample);\n },\n\n createPropCurve (target, propPath, keyframes) {\n let motionPaths = [];\n let isMotionPathProp = target instanceof cc.Node && propPath === 'position';\n\n let curve = new DynamicAnimCurve();\n\n // 缓存目标对象,所以 Component 必须一开始都创建好并且不能运行时动态替换……\n curve.target = target;\n curve.prop = propPath;\n\n // for each keyframes\n for (let i = 0, l = keyframes.length; i < l; i++) {\n let keyframe = keyframes[i];\n let ratio = keyframe.frame / this.duration;\n curve.ratios.push(ratio);\n\n if (isMotionPathProp) {\n motionPaths.push(keyframe.motionPath);\n }\n\n let curveValue = keyframe.value;\n curve.values.push(curveValue);\n\n let curveTypes = keyframe.curve;\n if (curveTypes) {\n if (typeof curveTypes === 'string') {\n curve.types.push(curveTypes);\n continue;\n }\n else if (Array.isArray(curveTypes)) {\n if (curveTypes[0] === curveTypes[1] &&\n curveTypes[2] === curveTypes[3]) {\n curve.types.push(DynamicAnimCurve.Linear);\n }\n else {\n curve.types.push(DynamicAnimCurve.Bezier(curveTypes));\n }\n continue;\n }\n }\n curve.types.push(DynamicAnimCurve.Linear);\n }\n \n if (isMotionPathProp) {\n sampleMotionPaths(motionPaths, curve, this.duration, this.sample, target);\n }\n\n // if every piece of ratios are the same, we can use the quick function to find frame index.\n let ratios = curve.ratios;\n let currRatioDif, lastRatioDif;\n let canOptimize = true;\n let EPSILON = 1e-6;\n for (let i = 1, l = ratios.length; i < l; i++) {\n currRatioDif = ratios[i] - ratios[i-1];\n if (i === 1) {\n lastRatioDif = currRatioDif;\n }\n else if (Math.abs(currRatioDif - lastRatioDif) > EPSILON) {\n canOptimize = false; \n break;\n }\n }\n\n curve._findFrameIndex = canOptimize ? quickFindIndex : binarySearch;\n\n // find the lerp function\n let firstValue = curve.values[0];\n if (firstValue !== undefined && firstValue !== null && !curve._lerp) {\n if (typeof firstValue === 'number') {\n curve._lerp = DynamicAnimCurve.prototype._lerpNumber;\n }\n else if (firstValue instanceof cc.Quat) {\n curve._lerp = DynamicAnimCurve.prototype._lerpQuat;\n }\n else if (firstValue instanceof cc.Vec2) {\n curve._lerp = DynamicAnimCurve.prototype._lerpVector2;\n }\n else if (firstValue instanceof cc.Vec3) {\n curve._lerp = DynamicAnimCurve.prototype._lerpVector3;\n }\n else if (firstValue.lerp) {\n curve._lerp = DynamicAnimCurve.prototype._lerpObject;\n }\n }\n\n return curve;\n },\n\n createTargetCurves (target, curveData, curves) {\n let propsData = curveData.props;\n let compsData = curveData.comps;\n\n if (propsData) {\n for (let propPath in propsData) {\n let data = propsData[propPath];\n let curve = this.createPropCurve(target, propPath, data);\n\n curves.push(curve);\n }\n }\n\n if (compsData) {\n for (let compName in compsData) {\n let comp = target.getComponent(compName);\n\n if (!comp) {\n continue;\n }\n\n let compData = compsData[compName];\n for (let propPath in compData) {\n let data = compData[propPath];\n let curve = this.createPropCurve(comp, propPath, data);\n\n curves.push(curve);\n }\n }\n }\n },\n\n createCurves (state, root) {\n let curveData = this.curveData;\n let childrenCurveDatas = curveData.paths;\n let curves = [];\n\n this.createTargetCurves(root, curveData, curves);\n\n for (let namePath in childrenCurveDatas) {\n let target = cc.find(namePath, root);\n\n if (!target) {\n continue;\n }\n\n let childCurveDatas = childrenCurveDatas[namePath];\n this.createTargetCurves(target, childCurveDatas, curves);\n }\n\n return curves;\n }\n});\n\ncc.AnimationClip = module.exports = AnimationClip;\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n\nconst bezierByTime = require('./bezier').bezierByTime;\n\nconst binarySearch = require('../core/utils/binary-search').binarySearchEpsilon;\nconst WrapModeMask = require('./types').WrapModeMask;\nconst WrappedInfo = require('./types').WrappedInfo;\n\n/**\n * Compute a new ratio by curve type\n * @param {Number} ratio - The origin ratio\n * @param {Array|String} type - If it's Array, then ratio will be computed with bezierByTime. If it's string, then ratio will be computed with cc.easing function\n */\nfunction computeRatioByType (ratio, type) {\n if (typeof type === 'string') {\n var func = cc.easing[type];\n if (func) {\n ratio = func(ratio);\n }\n else {\n cc.errorID(3906, type);\n }\n }\n else if (Array.isArray(type)) {\n // bezier curve\n ratio = bezierByTime(type, ratio);\n }\n\n return ratio;\n}\n\n//\n// 动画数据类,相当于 AnimationClip。\n// 虽然叫做 AnimCurve,但除了曲线,可以保存任何类型的值。\n//\n// @class AnimCurve\n//\n//\nvar AnimCurve = cc.Class({\n name: 'cc.AnimCurve',\n\n //\n // @method sample\n // @param {number} time\n // @param {number} ratio - The normalized time specified as a number between 0.0 and 1.0 inclusive.\n // @param {AnimationState} state\n //\n sample: function (time, ratio, state) {},\n\n onTimeChangedManually: undefined\n});\n\n/**\n * 当每两帧之前的间隔都一样的时候可以使用此函数快速查找 index\n */\nfunction quickFindIndex (ratios, ratio) {\n var length = ratios.length - 1;\n\n if (length === 0) return 0;\n\n var start = ratios[0];\n if (ratio < start) return 0;\n\n var end = ratios[length];\n if (ratio > end) return ~ratios.length;\n\n ratio = (ratio - start) / (end - start);\n\n var eachLength = 1 / length;\n var index = ratio / eachLength;\n var floorIndex = index | 0;\n var EPSILON = 1e-6;\n\n if ((index - floorIndex) < EPSILON) {\n return floorIndex;\n }\n else if ((floorIndex + 1 - index) < EPSILON) {\n return floorIndex + 1;\n }\n\n return ~(floorIndex + 1);\n}\n\n//\n//\n// @class DynamicAnimCurve\n//\n// @extends AnimCurve\n//\nvar DynamicAnimCurve = cc.Class({\n name: 'cc.DynamicAnimCurve',\n extends: AnimCurve,\n\n ctor () {\n // cache last frame index\n this._cachedIndex = 0;\n },\n\n properties: {\n\n // The object being animated.\n // @property target\n // @type {object}\n target: null,\n\n // The name of the property being animated.\n // @property prop\n // @type {string}\n prop: '',\n\n // The values of the keyframes. (y)\n // @property values\n // @type {any[]}\n values: [],\n\n // The keyframe ratio of the keyframe specified as a number between 0.0 and 1.0 inclusive. (x)\n // @property ratios\n // @type {number[]}\n ratios: [],\n\n // @property types\n // @param {object[]}\n // Each array item maybe type:\n // - [x, x, x, x]: Four control points for bezier\n // - null: linear\n types: [],\n },\n\n _findFrameIndex: binarySearch,\n _lerp: undefined,\n\n _lerpNumber (from, to, t) {\n return from + (to - from) * t;\n },\n\n _lerpObject (from, to, t) {\n return from.lerp(to, t);\n },\n\n _lerpQuat: (function () {\n let out = cc.quat();\n return function (from, to, t) {\n return from.lerp(to, t, out);\n };\n })(),\n\n _lerpVector2: (function () {\n let out = cc.v2();\n return function (from, to, t) {\n return from.lerp(to, t, out);\n };\n })(),\n\n _lerpVector3: (function () {\n let out = cc.v3();\n return function (from, to, t) {\n return from.lerp(to, t, out);\n };\n })(),\n\n sample (time, ratio, state) {\n let values = this.values;\n let ratios = this.ratios;\n let frameCount = ratios.length;\n\n if (frameCount === 0) {\n return;\n }\n\n // only need to refind frame index when ratio is out of range of last from ratio and to ratio.\n let shoudRefind = true;\n let cachedIndex = this._cachedIndex;\n if (cachedIndex < 0) {\n cachedIndex = ~cachedIndex;\n if (cachedIndex > 0 && cachedIndex < ratios.length) {\n let fromRatio = ratios[cachedIndex - 1];\n let toRatio = ratios[cachedIndex];\n if (ratio > fromRatio && ratio < toRatio) {\n shoudRefind = false;\n }\n }\n }\n\n if (shoudRefind) {\n this._cachedIndex = this._findFrameIndex(ratios, ratio);\n }\n\n // evaluate value\n let value;\n let index = this._cachedIndex;\n if (index < 0) {\n index = ~index;\n\n if (index <= 0) {\n value = values[0];\n }\n else if (index >= frameCount) {\n value = values[frameCount - 1];\n }\n else {\n var fromVal = values[index - 1];\n\n if (!this._lerp) {\n value = fromVal;\n }\n else {\n var fromRatio = ratios[index - 1];\n var toRatio = ratios[index];\n var type = this.types[index - 1];\n var ratioBetweenFrames = (ratio - fromRatio) / (toRatio - fromRatio);\n\n if (type) {\n ratioBetweenFrames = computeRatioByType(ratioBetweenFrames, type);\n }\n\n // calculate value\n var toVal = values[index];\n\n value = this._lerp(fromVal, toVal, ratioBetweenFrames);\n }\n }\n }\n else {\n value = values[index];\n }\n\n this.target[this.prop] = value;\n }\n});\n\nDynamicAnimCurve.Linear = null;\nDynamicAnimCurve.Bezier = function (controlPoints) {\n return controlPoints;\n};\n\n\n/**\n * Event information,\n * @class EventInfo\n *\n */\nvar EventInfo = function () {\n this.events = [];\n};\n\n/**\n * @param {Function} [func] event function\n * @param {Object[]} [params] event params\n */\nEventInfo.prototype.add = function (func, params) {\n this.events.push({\n func: func || '',\n params: params || []\n });\n};\n\n\n/**\n *\n * @class EventAnimCurve\n *\n * @extends AnimCurve\n */\nvar EventAnimCurve = cc.Class({\n name: 'cc.EventAnimCurve',\n extends: AnimCurve,\n\n properties: {\n /**\n * The object being animated.\n * @property target\n * @type {object}\n */\n target: null,\n\n /** The keyframe ratio of the keyframe specified as a number between 0.0 and 1.0 inclusive. (x)\n * @property ratios\n * @type {number[]}\n */\n ratios: [],\n\n /**\n * @property events\n * @type {EventInfo[]}\n */\n events: [],\n\n _wrappedInfo: {\n default: function () {\n return new WrappedInfo();\n }\n },\n\n _lastWrappedInfo: null,\n\n _ignoreIndex: NaN\n },\n\n _wrapIterations: function (iterations) {\n if (iterations - (iterations | 0) === 0) iterations -= 1;\n return iterations | 0;\n },\n\n sample: function (time, ratio, state) {\n var length = this.ratios.length;\n\n var currentWrappedInfo = state.getWrappedInfo(state.time, this._wrappedInfo);\n var direction = currentWrappedInfo.direction;\n var currentIndex = binarySearch(this.ratios, currentWrappedInfo.ratio);\n if (currentIndex < 0) {\n currentIndex = ~currentIndex - 1;\n\n // if direction is inverse, then increase index\n if (direction < 0) currentIndex += 1;\n }\n\n if (this._ignoreIndex !== currentIndex) {\n this._ignoreIndex = NaN;\n }\n\n currentWrappedInfo.frameIndex = currentIndex;\n\n if (!this._lastWrappedInfo) {\n this._fireEvent(currentIndex);\n this._lastWrappedInfo = new WrappedInfo(currentWrappedInfo);\n return;\n }\n\n var wrapMode = state.wrapMode;\n var currentIterations = this._wrapIterations(currentWrappedInfo.iterations);\n\n var lastWrappedInfo = this._lastWrappedInfo;\n var lastIterations = this._wrapIterations(lastWrappedInfo.iterations);\n var lastIndex = lastWrappedInfo.frameIndex;\n var lastDirection = lastWrappedInfo.direction;\n\n var interationsChanged = lastIterations !== -1 && currentIterations !== lastIterations;\n\n if (lastIndex === currentIndex && interationsChanged && length === 1) {\n this._fireEvent(0);\n }\n else if (lastIndex !== currentIndex || interationsChanged) {\n direction = lastDirection;\n\n do {\n if (lastIndex !== currentIndex) {\n if (direction === -1 && lastIndex === 0 && currentIndex > 0) {\n if ((wrapMode & WrapModeMask.PingPong) === WrapModeMask.PingPong) {\n direction *= -1;\n }\n else {\n lastIndex = length;\n }\n\n lastIterations ++;\n }\n else if (direction === 1 && lastIndex === length - 1 && currentIndex < length - 1) {\n if ((wrapMode & WrapModeMask.PingPong) === WrapModeMask.PingPong) {\n direction *= -1;\n }\n else {\n lastIndex = -1;\n }\n\n lastIterations ++;\n }\n\n if (lastIndex === currentIndex) break;\n if (lastIterations > currentIterations) break;\n }\n\n lastIndex += direction;\n\n cc.director.getAnimationManager().pushDelayEvent(this, '_fireEvent', [lastIndex]);\n } while (lastIndex !== currentIndex && lastIndex > -1 && lastIndex < length);\n }\n\n this._lastWrappedInfo.set(currentWrappedInfo);\n },\n\n _fireEvent: function (index) {\n if (index < 0 || index >= this.events.length || this._ignoreIndex === index) return;\n\n var eventInfo = this.events[index];\n var events = eventInfo.events;\n \n if ( !this.target.isValid ) { \n return; \n }\n \n var components = this.target._components;\n\n for (var i = 0; i < events.length; i++) {\n var event = events[i];\n var funcName = event.func;\n\n for (var j = 0; j < components.length; j++) {\n var component = components[j];\n var func = component[funcName];\n\n if (func) func.apply(component, event.params);\n }\n }\n },\n\n onTimeChangedManually: function (time, state) {\n this._lastWrappedInfo = null;\n this._ignoreIndex = NaN;\n\n var info = state.getWrappedInfo(time, this._wrappedInfo);\n var direction = info.direction;\n var frameIndex = binarySearch(this.ratios, info.ratio);\n\n // only ignore when time not on a frame index\n if (frameIndex < 0) {\n frameIndex = ~frameIndex - 1;\n\n // if direction is inverse, then increase index\n if (direction < 0) frameIndex += 1;\n\n this._ignoreIndex = frameIndex;\n }\n }\n});\n\n\nif (CC_TEST) {\n cc._Test.DynamicAnimCurve = DynamicAnimCurve;\n cc._Test.EventAnimCurve = EventAnimCurve;\n cc._Test.quickFindIndex = quickFindIndex;\n}\n\nmodule.exports = {\n AnimCurve: AnimCurve,\n DynamicAnimCurve: DynamicAnimCurve,\n EventAnimCurve: EventAnimCurve,\n EventInfo: EventInfo,\n computeRatioByType: computeRatioByType,\n quickFindIndex: quickFindIndex\n};\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar js = cc.js;\n\nvar AnimationManager = cc.Class({\n ctor: function () {\n this._anims = new js.array.MutableForwardIterator([]);\n this._delayEvents = [];\n\n cc.director._scheduler && cc.director._scheduler.enableForTarget(this);\n },\n\n // for manager\n\n update: function (dt) {\n var iterator = this._anims;\n var array = iterator.array;\n for (iterator.i = 0; iterator.i < array.length; ++iterator.i) {\n var anim = array[iterator.i];\n if (anim._isPlaying && !anim._isPaused) {\n anim.update(dt);\n }\n }\n\n var events = this._delayEvents;\n for (let i = 0; i < events.length; i++) {\n var event = events[i];\n event.target[event.func].apply(event.target, event.args);\n }\n events.length = 0;\n \n },\n\n destruct: function () {},\n\n\n /**\n * @param {AnimationState} anim\n */\n addAnimation: function (anim) {\n var index = this._anims.array.indexOf(anim);\n if (index === -1) {\n this._anims.push(anim);\n }\n },\n\n /**\n * @param {AnimationState} anim\n */\n removeAnimation: function (anim) {\n var index = this._anims.array.indexOf(anim);\n if (index >= 0) {\n this._anims.fastRemoveAt(index);\n }\n else {\n cc.errorID(3907);\n }\n },\n\n pushDelayEvent: function (target, func, args) {\n this._delayEvents.push({\n target: target,\n func: func,\n args: args\n });\n }\n});\n\n\ncc.AnimationManager = module.exports = AnimationManager;\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n\nvar js = cc.js;\nvar Playable = require('./playable');\n\nvar Types = require('./types');\nvar WrappedInfo = Types.WrappedInfo;\nvar WrapMode = Types.WrapMode;\nvar WrapModeMask = Types.WrapModeMask;\n\n/**\n * !#en\n * The AnimationState gives full control over animation playback process.\n * In most cases the Animation Component is sufficient and easier to use. Use the AnimationState if you need full control.\n * !#zh\n * AnimationState 完全控制动画播放过程。 \n * 大多数情况下 动画组件 是足够和易于使用的。如果您需要更多的动画控制接口,请使用 AnimationState。\n * @class AnimationState\n * @extends Playable\n *\n */\n\n/**\n * @method constructor\n * @param {AnimationClip} clip\n * @param {String} [name]\n */\nfunction AnimationState (clip, name) {\n Playable.call(this);\n \n // Mark whether the current frame is played.\n // When set new time to animation state, we should ensure the frame at the specified time being played at next update.\n this._currentFramePlayed = false;\n \n this._delay = 0;\n this._delayTime = 0;\n\n this._wrappedInfo = new WrappedInfo();\n this._lastWrappedInfo = null;\n\n this._process = process;\n\n this._clip = clip;\n this._name = name || (clip && clip.name);\n\n /**\n * @property animator\n * @type {AnimationAnimator}\n * @private\n */\n this.animator = null;\n\n /**\n * !#en The curves list.\n * !#zh 曲线列表。\n * @property curves\n * @type {Object[]}\n */\n this.curves = [];\n\n // http://www.w3.org/TR/web-animations/#idl-def-AnimationTiming\n\n /**\n * !#en The start delay which represents the number of seconds from an animation's start time to the start of\n * the active interval.\n * !#zh 延迟多少秒播放。\n *\n * @property delay\n * @type {Number}\n * @default 0\n */\n this.delay = 0;\n\n /**\n * !#en The animation's iteration count property.\n *\n * A real number greater than or equal to zero (including positive infinity) representing the number of times\n * to repeat the animation node.\n *\n * Values less than zero and NaN values are treated as the value 1.0 for the purpose of timing model\n * calculations.\n *\n * !#zh 迭代次数,指动画播放多少次后结束, normalize time。 如 2.5(2次半)\n *\n * @property repeatCount\n * @type {Number}\n * @default 1\n */\n this.repeatCount = 1;\n\n /**\n * !#en The iteration duration of this animation in seconds. (length)\n * !#zh 单次动画的持续时间,秒。\n *\n * @property duration\n * @type {Number}\n * @readOnly\n */\n this.duration = 1;\n\n /**\n * !#en The animation's playback speed. 1 is normal playback speed.\n * !#zh 播放速率。\n * @property speed\n * @type {Number}\n * @default: 1.0\n */\n this.speed = 1;\n\n /**\n * !#en\n * Wrapping mode of the playing animation.\n * Notice : dynamic change wrapMode will reset time and repeatCount property\n * !#zh\n * 动画循环方式。\n * 需要注意的是,动态修改 wrapMode 时,会重置 time 以及 repeatCount\n *\n * @property wrapMode\n * @type {WrapMode}\n * @default: WrapMode.Normal\n */\n this.wrapMode = WrapMode.Normal;\n\n /**\n * !#en The current time of this animation in seconds.\n * !#zh 动画当前的时间,秒。\n * @property time\n * @type {Number}\n * @default 0\n */\n this.time = 0;\n\n // Animation as event target\n this._target = null;\n this._lastframeEventOn = false;\n this.emit = function () {\n var args = new Array(arguments.length);\n for (var i = 0, l = args.length; i < l; i++) {\n args[i] = arguments[i];\n }\n cc.director.getAnimationManager().pushDelayEvent(this, '_emit', args);\n };\n}\njs.extend(AnimationState, Playable);\n\nvar proto = AnimationState.prototype;\n\nproto._emit = function (type, state) {\n if (this._target && this._target.isValid) {\n this._target.emit(type, type, state);\n }\n};\n\nproto.on = function (type, callback, target) {\n if (this._target && this._target.isValid) {\n if (type === 'lastframe') {\n this._lastframeEventOn = true;\n }\n return this._target.on(type, callback, target);\n }\n else {\n return null;\n }\n};\n\nproto.once = function (type, callback, target) {\n if (this._target && this._target.isValid) {\n if (type === 'lastframe') {\n this._lastframeEventOn = true;\n }\n let self = this;\n return this._target.once(type, function (event) {\n callback.call(target, event);\n self._lastframeEventOn = false;\n });\n }\n else {\n return null;\n }\n};\n\nproto.off = function (type, callback, target) {\n if (this._target && this._target.isValid) {\n if (type === 'lastframe') {\n if (!this._target.hasEventListener(type)) {\n this._lastframeEventOn = false;\n }\n }\n this._target.off(type, callback, target);\n }\n};\n\nproto._setEventTarget = function (target) {\n this._target = target;\n};\n\nproto.onPlay = function () {\n // replay\n this.setTime(0);\n this._delayTime = this._delay;\n \n cc.director.getAnimationManager().addAnimation(this);\n\n if (this.animator) {\n this.animator.addAnimation(this);\n }\n \n this.emit('play', this);\n};\n\nproto.onStop = function () {\n if (!this.isPaused) {\n cc.director.getAnimationManager().removeAnimation(this);\n }\n\n if (this.animator) {\n this.animator.removeAnimation(this);\n }\n\n this.emit('stop', this);\n};\n\nproto.onResume = function () {\n cc.director.getAnimationManager().addAnimation(this);\n this.emit('resume', this);\n};\n\nproto.onPause = function () {\n cc.director.getAnimationManager().removeAnimation(this);\n this.emit('pause', this);\n};\n\nproto.setTime = function (time) {\n this._currentFramePlayed = false;\n this.time = time || 0;\n\n var curves = this.curves;\n for (var i = 0, l = curves.length; i < l; i++) {\n var curve = curves[i];\n if (curve.onTimeChangedManually) {\n curve.onTimeChangedManually(time, this);\n }\n }\n};\n\nfunction process () {\n // sample\n var info = this.sample();\n\n if (this._lastframeEventOn) {\n var lastInfo;\n if (!this._lastWrappedInfo) {\n lastInfo = this._lastWrappedInfo = new WrappedInfo(info);\n } else {\n lastInfo = this._lastWrappedInfo;\n }\n\n if (this.repeatCount > 1 && ((info.iterations | 0) > (lastInfo.iterations | 0))) {\n this.emit('lastframe', this);\n }\n\n lastInfo.set(info);\n }\n\n if (info.stopped) {\n this.stop();\n this.emit('finished', this);\n }\n}\n\nfunction simpleProcess () {\n var time = this.time;\n var duration = this.duration;\n\n if (time > duration) {\n time = time % duration;\n if (time === 0) time = duration;\n }\n else if (time < 0) {\n time = time % duration;\n if (time !== 0) time += duration;\n }\n\n var ratio = time / duration;\n\n var curves = this.curves;\n for (var i = 0, len = curves.length; i < len; i++) {\n var curve = curves[i];\n curve.sample(time, ratio, this);\n }\n\n if (this._lastframeEventOn) {\n if (this._lastIterations === undefined) {\n this._lastIterations = ratio;\n }\n\n if ((this.time > 0 && this._lastIterations > ratio) || (this.time < 0 && this._lastIterations < ratio)) {\n this.emit('lastframe', this);\n }\n\n this._lastIterations = ratio;\n }\n}\n\nproto.update = function (delta) {\n // calculate delay time\n\n if (this._delayTime > 0) {\n this._delayTime -= delta;\n if (this._delayTime > 0) {\n // still waiting\n return;\n }\n }\n\n // make first frame perfect\n\n //var playPerfectFirstFrame = (this.time === 0);\n if (this._currentFramePlayed) {\n this.time += (delta * this.speed);\n }\n else {\n this._currentFramePlayed = true;\n }\n\n this._process();\n};\n\nproto._needRevers = function (currentIterations) {\n var wrapMode = this.wrapMode;\n var needRevers = false;\n\n if ((wrapMode & WrapModeMask.PingPong) === WrapModeMask.PingPong) {\n var isEnd = currentIterations - (currentIterations | 0) === 0;\n if (isEnd && (currentIterations > 0)) {\n currentIterations -= 1;\n }\n\n var isOddIteration = currentIterations & 1;\n if (isOddIteration) {\n needRevers = !needRevers;\n }\n }\n if ((wrapMode & WrapModeMask.Reverse) === WrapModeMask.Reverse) {\n needRevers = !needRevers;\n }\n return needRevers;\n};\n\nproto.getWrappedInfo = function (time, info) {\n info = info || new WrappedInfo();\n \n var stopped = false;\n var duration = this.duration;\n var repeatCount = this.repeatCount;\n\n var currentIterations = time > 0 ? (time / duration) : -(time / duration);\n if (currentIterations >= repeatCount) {\n currentIterations = repeatCount;\n\n stopped = true;\n var tempRatio = repeatCount - (repeatCount | 0);\n if (tempRatio === 0) {\n tempRatio = 1; // 如果播放过,动画不复位\n }\n time = tempRatio * duration * (time > 0 ? 1 : -1);\n }\n\n if (time > duration) {\n var tempTime = time % duration;\n time = tempTime === 0 ? duration : tempTime;\n }\n else if (time < 0) {\n time = time % duration;\n if (time !== 0 ) time += duration;\n }\n\n var needRevers = false;\n var shouldWrap = this._wrapMode & WrapModeMask.ShouldWrap;\n if (shouldWrap) {\n needRevers = this._needRevers(currentIterations);\n }\n\n var direction = needRevers ? -1 : 1;\n if (this.speed < 0) {\n direction *= -1;\n }\n\n // calculate wrapped time\n if (shouldWrap && needRevers) {\n time = duration - time;\n }\n\n info.ratio = time / duration;\n info.time = time;\n info.direction = direction;\n info.stopped = stopped;\n info.iterations = currentIterations;\n\n return info;\n};\n\nproto.sample = function () {\n var info = this.getWrappedInfo(this.time, this._wrappedInfo);\n var curves = this.curves;\n for (var i = 0, len = curves.length; i < len; i++) {\n var curve = curves[i];\n curve.sample(info.time, info.ratio, this);\n }\n\n return info;\n};\n\n\n/**\n * !#en The clip that is being played by this animation state.\n * !#zh 此动画状态正在播放的剪辑。\n * @property clip\n * @type {AnimationClip}\n * @final\n */\njs.get(proto, 'clip', function () {\n return this._clip;\n});\n\n/**\n * !#en The name of the playing animation.\n * !#zh 动画的名字\n * @property name\n * @type {String}\n * @readOnly\n */\njs.get(proto, 'name', function () {\n return this._name;\n});\n\njs.obsolete(proto, 'AnimationState.length', 'duration');\n\njs.getset(proto, 'curveLoaded',\n function () {\n return this.curves.length > 0;\n },\n function () {\n this.curves.length = 0;\n }\n);\n\n\njs.getset(proto, 'wrapMode',\n function () {\n return this._wrapMode;\n },\n function (value) {\n this._wrapMode = value;\n\n if (CC_EDITOR) return;\n\n // dynamic change wrapMode will need reset time to 0\n this.time = 0;\n\n if (value & WrapModeMask.Loop) {\n this.repeatCount = Infinity;\n }\n else {\n this.repeatCount = 1;\n }\n \n }\n);\n\njs.getset(proto, 'repeatCount',\n function () {\n return this._repeatCount;\n },\n function (value) {\n this._repeatCount = value;\n \n var shouldWrap = this._wrapMode & WrapModeMask.ShouldWrap;\n var reverse = (this.wrapMode & WrapModeMask.Reverse) === WrapModeMask.Reverse;\n if (value === Infinity && !shouldWrap && !reverse) {\n this._process = simpleProcess;\n }\n else {\n this._process = process;\n }\n }\n);\n\njs.getset(proto, 'delay', \n function () {\n return this._delay;\n },\n function (value) {\n this._delayTime = this._delay = value;\n }\n);\n\n\ncc.AnimationState = module.exports = AnimationState;\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n//var bezier = (function () {\n// function B1 (t) { return (t * t * t); }\n// function B2 (t) { return (3 * t * t * (1 - t)); }\n// function B3 (t) { return (3 * t * (1 - t) * (1 - t)); }\n// function B4 (t) { return ((1 - t) * (1 - t) * (1 - t)); }\n// function bezier (C1, C2, C3, C4, t) {\n// return C1 * B1(t) + C2 * B2(t) + C3 * B3(t) + C4 * B4(t);\n// }\n//\n// //function bezier (C1, C2, C3, C4, t, out) {\n// // out.x = C1.x * B1(t) + C2.x * B2(t) + C3.x * B3(t) + C4.x * B4(t);\n// // out.y = C1.y * B1(t) + C2.y * B2(t) + C3.y * B3(t) + C4.y * B4(t);\n// //}\n//\n// return bezier;\n//})();\nfunction bezier (C1, C2, C3, C4, t) {\n var t1 = 1 - t;\n return t1 * (t1 * (C1 + (C2 * 3 - C1) * t) + C3 * 3 * t * t) + C4 * t * t * t;\n}\n//function bezier (c0, c1, c2, c3, t) {\n// var cy = 3.0 * (c1);\n// var by = 3.0 * (c3 - c1) - cy;\n// var ay = 1 - cy - by;\n// return (ay * t * t * t) + (by * t * t) + (cy * t);\n//}\n\n//var sin = Math.sin;\nvar cos = Math.cos,\n acos = Math.acos,\n max = Math.max,\n //atan2 = Math.atan2,\n pi = Math.PI,\n tau = 2 * pi,\n sqrt = Math.sqrt;\n\nfunction crt (v) {\n if (v < 0) {\n return -Math.pow(-v, 1 / 3);\n }\n else {\n return Math.pow(v, 1 / 3);\n }\n}\n\n//function align (curve, line) {\n// var tx = line.p1.x,\n// ty = line.p1.y,\n// a = -atan2(line.p2.y-ty, line.p2.x-tx);\n// curve = [{x:0, y:1}, {x: curve[0], y: 1-curve[1]}, {x: curve[2], y: 1-curve[3]}, {x:1, y:0}];\n// return curve.map(function(v) {\n// return {\n// x: (v.x-tx)*cos(a) - (v.y-ty)*sin(a),\n// y: (v.x-tx)*sin(a) + (v.y-ty)*cos(a)\n// };\n// });\n//}\n\n// Modified from http://jsbin.com/yibipofeqi/1/edit, optimized for animations.\n// The origin Cardano's algorithm is based on http://www.trans4mind.com/personal_development/mathematics/polynomials/cubicAlgebra.htm\nfunction cardano (curve, x) {\n // align curve with the intersecting line:\n //var line = {p1: {x: x, y: 0}, p2: {x: x, y: 1}};\n //var aligned = align(curve, line);\n //// and rewrite from [a(1-t)^3 + 3bt(1-t)^2 + 3c(1-t)t^2 + dt^3] form\n // pa = aligned[0].y,\n // pb = aligned[1].y,\n // pc = aligned[2].y,\n // pd = aligned[3].y;\n ////// curve = [{x:0, y:1}, {x: curve[0], y: 1-curve[1]}, {x: curve[2], y: 1-curve[3]}, {x:1, y:0}];\n var pa = x - 0;\n var pb = x - curve[0];\n var pc = x - curve[2];\n var pd = x - 1;\n\n // to [t^3 + at^2 + bt + c] form:\n var pa3 = pa * 3;\n var pb3 = pb * 3;\n var pc3 = pc * 3;\n var d = (-pa + pb3 - pc3 + pd),\n rd = 1 / d,\n r3 = 1 / 3,\n a = (pa3 - 6 * pb + pc3) * rd,\n a3 = a * r3,\n b = (-pa3 + pb3) * rd,\n c = pa * rd,\n // then, determine p and q:\n p = (3 * b - a * a) * r3,\n p3 = p * r3,\n q = (2 * a * a * a - 9 * a * b + 27 * c) / 27,\n q2 = q / 2,\n // and determine the discriminant:\n discriminant = q2 * q2 + p3 * p3 * p3,\n // and some reserved variables\n u1, v1, x1, x2, x3;\n\n // If the discriminant is negative, use polar coordinates\n // to get around square roots of negative numbers\n if (discriminant < 0) {\n var mp3 = -p * r3,\n mp33 = mp3 * mp3 * mp3,\n r = sqrt(mp33),\n // compute cosphi corrected for IEEE float rounding:\n t = -q / (2 * r),\n cosphi = t < -1 ? -1 : t > 1 ? 1 : t,\n phi = acos(cosphi),\n crtr = crt(r),\n t1 = 2 * crtr;\n x1 = t1 * cos(phi * r3) - a3;\n x2 = t1 * cos((phi + tau) * r3) - a3;\n x3 = t1 * cos((phi + 2 * tau) * r3) - a3;\n\n // choose best percentage\n if (0 <= x1 && x1 <= 1) {\n if (0 <= x2 && x2 <= 1) {\n if (0 <= x3 && x3 <= 1) {\n return max(x1, x2, x3);\n }\n else {\n return max(x1, x2);\n }\n }\n else if (0 <= x3 && x3 <= 1) {\n return max(x1, x3);\n }\n else {\n return x1;\n }\n }\n else {\n if (0 <= x2 && x2 <= 1) {\n if (0 <= x3 && x3 <= 1) {\n return max(x2, x3);\n }\n else {\n return x2;\n }\n }\n else {\n return x3;\n }\n }\n }\n else if (discriminant === 0) {\n u1 = q2 < 0 ? crt(-q2) : -crt(q2);\n x1 = 2 * u1 - a3;\n x2 = -u1 - a3;\n\n // choose best percentage\n if (0 <= x1 && x1 <= 1) {\n if (0 <= x2 && x2 <= 1) {\n return max(x1, x2);\n }\n else {\n return x1;\n }\n }\n else {\n return x2;\n }\n }\n // one real root, and two imaginary roots\n else {\n var sd = sqrt(discriminant);\n u1 = crt(-q2 + sd);\n v1 = crt(q2 + sd);\n x1 = u1 - v1 - a3;\n return x1;\n }\n}\n\nfunction bezierByTime (controlPoints, x) {\n var percent = cardano(controlPoints, x); // t\n var p1y = controlPoints[1]; // b\n var p2y = controlPoints[3]; // c\n // return bezier(0, p1y, p2y, 1, percent);\n return ((1 - percent) * (p1y + (p2y - p1y) * percent) * 3 + percent * percent) * percent;\n}\n\nif (CC_TEST) {\n cc._Test.bezier = bezier;\n cc._Test.bezierByTime = bezierByTime;\n}\n\nmodule.exports = {\n bezier: bezier,\n bezierByTime: bezierByTime\n};\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc\n */\n\n /**\n * !#en\n * This class provide easing methods for {{#crossLink \"tween\"}}{{/crossLink}} class. \n * Demonstratio: https://easings.net/\n * !#zh\n * 缓动函数类,为 {{#crossLink \"Tween\"}}{{/crossLink}} 提供缓动效果函数。 \n * 函数效果演示: https://easings.net/\n * @class Easing\n */\n\nvar easing = {\n constant: function () { return 0; },\n linear: function (k) { return k; },\n\n // quad\n // easing equation function for a quadratic (t^2)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in with quadratic formula. From slow to fast.\n * !#zh 平方曲线缓入函数。运动由慢到快。\n * @method quadIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value\n */\n quadIn: function (k) { return k * k; },\n /**\n * !#en Easing out with quadratic formula. From fast to slow.\n * !#zh 平方曲线缓出函数。运动由快到慢。\n * @method quadOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value\n */\n quadOut: function (k) { return k * ( 2 - k ); },\n /**\n * !#en Easing in and out with quadratic formula. From slow to fast, then back to slow.\n * !#zh 平方曲线缓入缓出函数。运动由慢到快再到慢。\n * @method quadInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value\n */\n quadInOut: function (k) {\n if (( k *= 2 ) < 1) {\n return 0.5 * k * k;\n }\n return -0.5 * ( --k * ( k - 2 ) - 1 );\n },\n\n // cubic\n // easing equation function for a cubic (t^3)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in with cubic formula. From slow to fast.\n * !#zh 立方曲线缓入函数。运动由慢到快。\n * @method cubicIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n cubicIn: function (k) { return k * k * k; },\n /**\n * !#en Easing out with cubic formula. From slow to fast.\n * !#zh 立方曲线缓出函数。运动由快到慢。\n * @method cubicOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n cubicOut: function (k) { return --k * k * k + 1; },\n /**\n * !#en Easing in and out with cubic formula. From slow to fast, then back to slow.\n * !#zh 立方曲线缓入缓出函数。运动由慢到快再到慢。\n * @method cubicInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n cubicInOut: function (k) {\n if (( k *= 2 ) < 1) {\n return 0.5 * k * k * k;\n }\n return 0.5 * ( ( k -= 2 ) * k * k + 2 );\n },\n\n // quart\n // easing equation function for a quartic (t^4)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in with quartic formula. From slow to fast.\n * !#zh 四次方曲线缓入函数。运动由慢到快。\n * @method quartIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n quartIn: function (k) { return k * k * k * k; },\n /**\n * !#en Easing out with quartic formula. From fast to slow.\n * !#zh 四次方曲线缓出函数。运动由快到慢。\n * @method quartOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n quartOut: function (k) { return 1 - ( --k * k * k * k ); },\n /**\n * !#en Easing in and out with quartic formula. From slow to fast, then back to slow.\n * !#zh 四次方曲线缓入缓出函数。运动由慢到快再到慢。\n * @method quartInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n quartInOut: function (k) {\n if (( k *= 2 ) < 1) {\n return 0.5 * k * k * k * k;\n }\n return -0.5 * ( ( k -= 2 ) * k * k * k - 2 );\n },\n\n // quint\n // easing equation function for a quintic (t^5)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in with quintic formula. From slow to fast.\n * !#zh 五次方曲线缓入函数。运动由慢到快。\n * @method quintIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n quintIn: function (k) { return k * k * k * k * k; },\n /**\n * !#en Easing out with quintic formula. From fast to slow.\n * !#zh 五次方曲线缓出函数。运动由快到慢。\n * @method quintOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n quintOut: function (k) { return --k * k * k * k * k + 1; },\n /**\n * !#en Easing in and out with quintic formula. From slow to fast, then back to slow.\n * !#zh 五次方曲线缓入缓出函数。运动由慢到快再到慢。\n * @method quintInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n quintInOut: function (k) {\n if (( k *= 2 ) < 1) {\n return 0.5 * k * k * k * k * k;\n }\n return 0.5 * ( ( k -= 2 ) * k * k * k * k + 2 );\n },\n\n // sine\n // easing equation function for a sinusoidal (sin(t))\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in and out with sine formula. From slow to fast.\n * !#zh 正弦曲线缓入函数。运动由慢到快。\n * @method sineIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n sineIn: function (k) { return 1 - Math.cos(k * Math.PI / 2); },\n /**\n * !#en Easing in and out with sine formula. From fast to slow.\n * !#zh 正弦曲线缓出函数。运动由快到慢。\n * @method sineOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n sineOut: function (k) { return Math.sin(k * Math.PI / 2); },\n /**\n * !#en Easing in and out with sine formula. From slow to fast, then back to slow.\n * !#zh 正弦曲线缓入缓出函数。运动由慢到快再到慢。\n * @method sineInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n sineInOut: function (k) { return 0.5 * ( 1 - Math.cos(Math.PI * k) ); },\n\n // expo\n // easing equation function for an exponential (2^t)\n // param t: Current time (in frames or seconds).\n // return: The correct value.\n\n /**\n * !#en Easing in and out with exponential formula. From slow to fast.\n * !#zh 指数曲线缓入函数。运动由慢到快。\n * @method expoIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n expoIn: function (k) { return k === 0 ? 0 : Math.pow(1024, k - 1); },\n /**\n * !#en Easing in and out with exponential formula. From fast to slow.\n * !#zh 指数曲线缓出函数。运动由快到慢。\n * @method expoOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n expoOut: function (k) { return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); },\n /**\n * !#en Easing in and out with exponential formula. From slow to fast.\n * !#zh 指数曲线缓入和缓出函数。运动由慢到很快再到慢。\n * @method expoInOut\n * @param {Number} t The current time as a percentage of the total time, then back to slow.\n * @return {Number} The correct value.\n */\n expoInOut: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (( k *= 2 ) < 1) {\n return 0.5 * Math.pow(1024, k - 1);\n }\n return 0.5 * ( -Math.pow(2, -10 * ( k - 1 )) + 2 );\n },\n\n // circ\n // easing equation function for a circular (sqrt(1-t^2))\n // @param t: Current time (in frames or seconds).\n // @return:\tThe correct value.\n\n /**\n * !#en Easing in and out with circular formula. From slow to fast.\n * !#zh 循环公式缓入函数。运动由慢到快。\n * @method circIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n circIn: function (k) { return 1 - Math.sqrt(1 - k * k); },\n /**\n * !#en Easing in and out with circular formula. From fast to slow.\n * !#zh 循环公式缓出函数。运动由快到慢。\n * @method circOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n circOut: function (k) { return Math.sqrt(1 - ( --k * k )); },\n /**\n * !#en Easing in and out with circular formula. From slow to fast.\n * !#zh 指数曲线缓入缓出函数。运动由慢到很快再到慢。\n * @method circInOut\n * @param {Number} t The current time as a percentage of the total time, then back to slow.\n * @return {Number} The correct value.\n */\n circInOut: function (k) {\n if (( k *= 2 ) < 1) {\n return -0.5 * ( Math.sqrt(1 - k * k) - 1);\n }\n return 0.5 * ( Math.sqrt(1 - ( k -= 2) * k) + 1);\n },\n\n // elastic\n // easing equation function for an elastic (exponentially decaying sine wave)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n // recommand value: elastic (t)\n\n /**\n * !#en Easing in action with a spring oscillating effect.\n * !#zh 弹簧回震效果的缓入函数。\n * @method elasticIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n elasticIn: function (k) {\n var s, a = 0.1, p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / ( 2 * Math.PI );\n }\n return -( a * Math.pow(2, 10 * ( k -= 1 )) * Math.sin(( k - s ) * ( 2 * Math.PI ) / p) );\n },\n /**\n * !#en Easing out action with a spring oscillating effect.\n * !#zh 弹簧回震效果的缓出函数。\n * @method elasticOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n elasticOut: function (k) {\n var s, a = 0.1, p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / ( 2 * Math.PI );\n }\n return ( a * Math.pow(2, -10 * k) * Math.sin(( k - s ) * ( 2 * Math.PI ) / p) + 1 );\n },\n /**\n * !#en Easing in and out action with a spring oscillating effect.\n * !#zh 弹簧回震效果的缓入缓出函数。\n * @method elasticInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n elasticInOut: function (k) {\n var s, a = 0.1, p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / ( 2 * Math.PI );\n }\n if (( k *= 2 ) < 1) {\n return -0.5 *\n ( a * Math.pow(2, 10 * ( k -= 1 )) * Math.sin(( k - s ) * ( 2 * Math.PI ) / p) );\n }\n return a * Math.pow(2, -10 * ( k -= 1 )) * Math.sin(( k - s ) * ( 2 * Math.PI ) / p) * 0.5 + 1;\n },\n\n // back\n // easing equation function for a back (overshooting cubic easing: (s+1)*t^3 - s*t^2)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in action with \"back up\" behavior.\n * !#zh 回退效果的缓入函数。\n * @method backIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n backIn: function (k) {\n var s = 1.70158;\n return k * k * ( ( s + 1 ) * k - s );\n },\n /**\n * !#en Easing out action with \"back up\" behavior.\n * !#zh 回退效果的缓出函数。\n * @method backOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n backOut: function (k) {\n var s = 1.70158;\n return --k * k * ( ( s + 1 ) * k + s ) + 1;\n },\n /**\n * !#en Easing in and out action with \"back up\" behavior.\n * !#zh 回退效果的缓入缓出函数。\n * @method backInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n backInOut: function (k) {\n var s = 1.70158 * 1.525;\n if (( k *= 2 ) < 1) {\n return 0.5 * ( k * k * ( ( s + 1 ) * k - s ) );\n }\n return 0.5 * ( ( k -= 2 ) * k * ( ( s + 1 ) * k + s ) + 2 );\n },\n\n // bounce\n // easing equation function for a bounce (exponentially decaying parabolic bounce)\n // @param t: Current time (in frames or seconds).\n // @return: The correct value.\n\n /**\n * !#en Easing in action with bouncing effect.\n * !#zh 弹跳效果的缓入函数。\n * @method bounceIn\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n bounceIn: function (k) {\n return 1 - easing.bounceOut(1 - k);\n },\n /**\n * !#en Easing out action with bouncing effect.\n * !#zh 弹跳效果的缓出函数。\n * @method bounceOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n bounceOut: function (k) {\n if (k < ( 1 / 2.75 )) {\n return 7.5625 * k * k;\n }\n else if (k < ( 2 / 2.75 )) {\n return 7.5625 * ( k -= ( 1.5 / 2.75 ) ) * k + 0.75;\n }\n else if (k < ( 2.5 / 2.75 )) {\n return 7.5625 * ( k -= ( 2.25 / 2.75 ) ) * k + 0.9375;\n }\n else {\n return 7.5625 * ( k -= ( 2.625 / 2.75 ) ) * k + 0.984375;\n }\n },\n /**\n * !#en Easing in and out action with bouncing effect.\n * !#zh 弹跳效果的缓入缓出函数。\n * @method bounceInOut\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n bounceInOut: function (k) {\n if (k < 0.5) {\n return easing.bounceIn(k * 2) * 0.5;\n }\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n },\n\n /**\n * !#en Target will run action with smooth effect.\n * !#zh 平滑效果函数。\n * @method smooth\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n // t<=0: 0 | 0=1: 1\n smooth: function (t) {\n if (t <= 0) {\n return 0;\n }\n if (t >= 1) {\n return 1;\n }\n return t * t * (3 - 2 * t);\n },\n\n /**\n * !#en Target will run action with fade effect.\n * !#zh 渐褪效果函数。\n * @method fade\n * @param {Number} t The current time as a percentage of the total time.\n * @return {Number} The correct value.\n */\n // t<=0: 0 | 0=1: 1\n fade: function (t) {\n if (t <= 0) {\n return 0;\n }\n if (t >= 1) {\n return 1;\n }\n return t * t * t * (t * (t * 6 - 15) + 10);\n },\n};\n\nfunction _makeOutIn (fnIn, fnOut) {\n return function (k) {\n if (k < 0.5) {\n return fnOut(k * 2) / 2;\n }\n return fnIn(2 * k - 1) / 2 + 0.5;\n };\n}\neasing.quadOutIn = _makeOutIn(easing.quadIn, easing.quadOut);\neasing.cubicOutIn = _makeOutIn(easing.cubicIn, easing.cubicOut);\neasing.quartOutIn = _makeOutIn(easing.quartIn, easing.quartOut);\neasing.quintOutIn = _makeOutIn(easing.quintIn, easing.quintOut);\neasing.sineOutIn = _makeOutIn(easing.sineIn, easing.sineOut);\neasing.expoOutIn = _makeOutIn(easing.expoIn, easing.expoOut);\neasing.circOutIn = _makeOutIn(easing.circIn, easing.circOut);\neasing.backOutIn = _makeOutIn(easing.backIn, easing.backOut);\neasing.bounceIn = function (k) { return 1 - easing.bounceOut(1 - k); };\neasing.bounceInOut = function (k) {\n if (k < 0.5) {\n return easing.bounceIn(k * 2) * 0.5;\n }\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n};\neasing.bounceOutIn = _makeOutIn(easing.bounceIn, easing.bounceOut);\n\n/**\n * @module cc\n */\n\n/**\n * !#en This is a Easing instance.\n * !#zh 这是一个 Easing 类实例。\n * @property easing\n * @type Easing\n */\n\ncc.easing = module.exports = easing;\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nrequire('./bezier');\nrequire('./easing');\nrequire('./types');\nrequire('./motion-path-helper');\nrequire('./animation-curves');\nrequire('./animation-clip');\nrequire('./animation-manager');\nrequire('./animation-state');\nrequire('./animation-animator');\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar DynamicAnimCurve = require('./animation-curves').DynamicAnimCurve;\nvar computeRatioByType = require('./animation-curves').computeRatioByType;\n\nvar bezier = require('./bezier').bezier;\nvar binarySearch = require('../core/utils/binary-search').binarySearchEpsilon;\n\nvar v2 = cc.v2;\n\nfunction Curve (points) {\n this.points = points || [];\n this.beziers = [];\n this.ratios = [];\n this.progresses = [];\n\n this.length = 0;\n\n this.computeBeziers();\n}\nCurve.prototype.computeBeziers = function () {\n this.beziers.length = 0;\n this.ratios.length = 0;\n this.progresses.length = 0;\n this.length = 0;\n\n var bezier;\n\n for (var i = 1; i < this.points.length; i++) {\n var startPoint = this.points[i - 1];\n var endPoint = this.points[i];\n bezier = new Bezier();\n bezier.start = startPoint.pos;\n bezier.startCtrlPoint = startPoint.out;\n bezier.end = endPoint.pos;\n bezier.endCtrlPoint = endPoint.in;\n this.beziers.push(bezier);\n\n this.length += bezier.getLength();\n }\n\n var current = 0;\n for (var i = 0; i < this.beziers.length; i++) {\n bezier = this.beziers[i];\n this.ratios[i] = bezier.getLength() / this.length;\n this.progresses[i] = current = current + this.ratios[i];\n }\n\n return this.beziers;\n};\n\nfunction Bezier () {\n this.start = v2();\n this.end = v2();\n this.startCtrlPoint = v2(); // cp0, cp1\n this.endCtrlPoint = v2(); // cp2, cp3\n}\n\n// Get point at relative position in curve according to arc length\n// - u [0 .. 1]\nBezier.prototype.getPointAt = function ( u ) {\n var t = this.getUtoTmapping( u );\n return this.getPoint( t );\n};\n\n\n// Get point at time t\n// - t [0 .. 1]\nBezier.prototype.getPoint = function ( t ) {\n var x = bezier(this.start.x, this.startCtrlPoint.x, this.endCtrlPoint.x, this.end.x, t);\n var y = bezier(this.start.y, this.startCtrlPoint.y, this.endCtrlPoint.y, this.end.y, t);\n\n return new v2(x, y);\n};\n\n// Get total curve arc length\nBezier.prototype.getLength = function () {\n\n var lengths = this.getLengths();\n return lengths[ lengths.length - 1 ];\n\n};\n\n// Get list of cumulative segment lengths\nBezier.prototype.getLengths = function ( divisions ) {\n\n if ( ! divisions ) divisions = (this.__arcLengthDivisions) ? (this.__arcLengthDivisions): 200;\n\n if ( this.cacheArcLengths\n && ( this.cacheArcLengths.length === divisions + 1 )) {\n\n //console.log( \"cached\", this.cacheArcLengths );\n return this.cacheArcLengths;\n\n }\n\n var cache = [];\n var current, last = this.getPoint( 0 ), vector = v2();\n var p, sum = 0;\n\n cache.push( 0 );\n\n for ( p = 1; p <= divisions; p ++ ) {\n\n current = this.getPoint ( p / divisions );\n vector.x = last.x - current.x;\n vector.y = last.y - current.y;\n sum += vector.mag();\n cache.push( sum );\n last = current;\n\n }\n\n this.cacheArcLengths = cache;\n\n return cache; // { sums: cache, sum:sum }; Sum is in the last element.\n};\n\nBezier.prototype.getUtoTmapping = function ( u, distance ) {\n\n var arcLengths = this.getLengths();\n\n var i = 0, il = arcLengths.length;\n\n var targetArcLength; // The targeted u distance value to get\n\n if ( distance ) {\n targetArcLength = distance;\n } else {\n targetArcLength = u * arcLengths[ il - 1 ];\n }\n\n //var time = Date.now();\n\n // binary search for the index with largest value smaller than target u distance\n\n var low = 0, high = il - 1, comparison;\n\n while ( low <= high ) {\n\n i = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n comparison = arcLengths[ i ] - targetArcLength;\n\n if ( comparison < 0 ) {\n\n low = i + 1;\n continue;\n\n } else if ( comparison > 0 ) {\n\n high = i - 1;\n continue;\n\n } else {\n\n high = i;\n break;\n\n // DONE\n\n }\n\n }\n\n i = high;\n\n //console.log('b' , i, low, high, Date.now()- time);\n\n if ( arcLengths[ i ] === targetArcLength ) {\n\n var t = i / ( il - 1 );\n return t;\n\n }\n\n // we could get finer grain at lengths, or use simple interpolatation between two points\n\n var lengthBefore = arcLengths[ i ];\n var lengthAfter = arcLengths[ i + 1 ];\n\n var segmentLength = lengthAfter - lengthBefore;\n\n // determine where we are between the 'before' and 'after' points\n\n var segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n // add that fractional amount to t\n\n var t = ( i + segmentFraction ) / ( il -1 );\n\n return t;\n};\n\n\nfunction checkMotionPath(motionPath) {\n if (!Array.isArray(motionPath)) return false;\n\n for (let i = 0, l = motionPath.length; i < l; i++) {\n let controls = motionPath[i];\n\n if (!Array.isArray(controls) || controls.length !== 6) return false;\n }\n\n return true;\n}\n\nfunction sampleMotionPaths (motionPaths, data, duration, fps, target) {\n\n function createControlPoints(array) {\n if (array instanceof cc.Vec2) {\n return {\n in: array,\n pos: array,\n out: array\n };\n }\n else if (Array.isArray(array) && array.length === 6) {\n return {\n in: v2(array[2], array[3]),\n pos: v2(array[0], array[1]),\n out: v2(array[4], array[5])\n };\n }\n\n return {\n in: cc.Vec2.ZERO,\n pos: cc.Vec2.ZERO,\n out: cc.Vec2.ZERO\n };\n }\n\n let values = data.values = data.values.map(function (value) {\n if (Array.isArray(value)) {\n value = value.length === 2 ? cc.v2(value[0], value[1]) : cc.v3(value[0], value[1], value[2]);\n }\n return value;\n });\n\n if (motionPaths.length === 0 || values.length === 0) {\n return;\n }\n\n let motionPathValid = false;\n for (let i = 0; i < motionPaths.length; i++) {\n let motionPath = motionPaths[i];\n if (motionPath && !checkMotionPath(motionPath)) {\n cc.errorID(3904, target ? target.name : '', 'position', i);\n motionPath = null;\n }\n if (motionPath && motionPath.length > 0) {\n motionPathValid = true;\n break;\n }\n }\n\n if (!motionPathValid) {\n return;\n }\n\n if (values.length === 1) {\n return;\n }\n\n var types = data.types;\n var ratios = data.ratios;\n\n var newValues = data.values = [];\n var newTypes = data.types = [];\n var newRatios = data.ratios = [];\n\n function addNewDatas (value, type, ratio) {\n newValues.push(value);\n newTypes.push(type);\n newRatios.push(ratio);\n }\n\n // ensure every ratio section's length is the same\n var startRatioOffset = 0;\n\n var EPSILON = 1e-6;\n var newType = DynamicAnimCurve.Linear;\n\n // do not need to compute last path\n for (var i = 0, l = motionPaths.length; i < l-1; i++) {\n var motionPath = motionPaths[i];\n\n var ratio = ratios[i];\n var nextRatio = ratios[i + 1];\n var betweenRatio = nextRatio - ratio;\n\n var value = values[i];\n var nextValue = values[i + 1];\n\n var type = types[i];\n\n var results = [];\n var progress = startRatioOffset / betweenRatio;\n var speed = 1 / (betweenRatio * duration * fps);\n var finalProgress;\n\n if (motionPath && motionPath.length > 0) {\n var points = [];\n points.push(createControlPoints(value));\n\n for (var j = 0, l2 = motionPath.length; j < l2; j++) {\n var controlPoints = createControlPoints(motionPath[j]);\n points.push(controlPoints);\n }\n\n points.push(createControlPoints(nextValue));\n\n // create Curve to compute beziers\n var curve = new Curve(points);\n curve.computeBeziers();\n\n // sample beziers\n var progresses = curve.progresses;\n\n while ( 1 - progress > EPSILON) {\n finalProgress = progress;\n\n finalProgress = computeRatioByType(finalProgress, type);\n\n var pos, bezier, normal, length;\n\n if (finalProgress < 0) {\n bezier = curve.beziers[0];\n length = (0 - finalProgress) * bezier.getLength();\n normal = bezier.start.sub(bezier.endCtrlPoint).normalize();\n pos = bezier.start.add(normal.mul(length));\n }\n else if (finalProgress > 1) {\n bezier = curve.beziers[curve.beziers.length - 1];\n length = (finalProgress - 1) * bezier.getLength();\n normal = bezier.end.sub(bezier.startCtrlPoint).normalize();\n pos = bezier.end.add(normal.mul(length));\n }\n else {\n var bezierIndex = binarySearch(progresses, finalProgress);\n if (bezierIndex < 0) bezierIndex = ~bezierIndex;\n\n finalProgress -= bezierIndex > 0 ? progresses[bezierIndex - 1] : 0;\n finalProgress = finalProgress / curve.ratios[bezierIndex];\n\n pos = curve.beziers[bezierIndex].getPointAt(finalProgress);\n }\n\n results.push(pos);\n progress += speed;\n }\n\n }\n else {\n while ( 1 - progress > EPSILON) {\n finalProgress = progress;\n\n finalProgress = computeRatioByType(finalProgress, type);\n\n results.push(value.lerp(nextValue, finalProgress));\n\n progress += speed;\n }\n }\n\n newType = type === 'constant' ? type : DynamicAnimCurve.Linear;\n\n for (var j = 0, l2 = results.length; j < l2; j++) {\n var newRatio = ratio + startRatioOffset + speed * j * betweenRatio;\n addNewDatas(results[j], newType, newRatio);\n }\n\n if (Math.abs(progress - 1) > EPSILON) // progress > 1\n startRatioOffset = (progress - 1) * betweenRatio;\n else\n startRatioOffset = 0;\n }\n\n if (ratios[ratios.length - 1] !== newRatios[newRatios.length -1]) {\n addNewDatas(values[values.length - 1], newType, ratios[ratios.length - 1]);\n }\n}\n\nif (CC_TEST) {\n cc._Test.sampleMotionPaths = sampleMotionPaths;\n}\n\nmodule.exports = {\n sampleMotionPaths: sampleMotionPaths,\n Curve: Curve,\n Bezier: Bezier\n};\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar js = cc.js;\nconst debug = require('../core/CCDebug');\n\n/**\n * @class Playable\n *\n */\nfunction Playable () {\n this._isPlaying = false;\n this._isPaused = false;\n this._stepOnce = false;\n}\n\nvar prototype = Playable.prototype;\n\n/**\n * !#en Is playing or paused in play mode?\n * !#zh 当前是否正在播放。\n * @property isPlaying\n * @type {boolean}\n * @default false\n * @readOnly\n */\njs.get(prototype, 'isPlaying', function () {\n return this._isPlaying;\n}, true);\n\n/**\n * !#en Is currently paused? This can be true even if in edit mode(isPlaying == false).\n * !#zh 当前是否正在暂停\n * @property isPaused\n * @type {boolean}\n * @default false\n * @readOnly\n */\njs.get(prototype, 'isPaused', function () {\n return this._isPaused;\n}, true);\n\n// virtual\n\nvar virtual = function () {};\n/**\n * @method onPlay\n * @private\n */\nprototype.onPlay = virtual;\n/**\n * @method onPause\n * @private\n */\nprototype.onPause = virtual;\n/**\n * @method onResume\n * @private\n */\nprototype.onResume = virtual;\n/**\n * @method onStop\n * @private\n */\nprototype.onStop = virtual;\n/**\n * @method onError\n * @param {string} errorCode\n * @private\n */\nprototype.onError = virtual;\n\n// public\n\n/**\n * !#en Play this animation.\n * !#zh 播放动画。\n * @method play\n */\nprototype.play = function () {\n if (this._isPlaying) {\n if (this._isPaused) {\n this._isPaused = false;\n this.onResume();\n }\n else {\n this.onError(debug.getError(3912));\n }\n }\n else {\n this._isPlaying = true;\n this.onPlay();\n }\n};\n\n/**\n * !#en Stop this animation.\n * !#zh 停止动画播放。\n * @method stop\n */\nprototype.stop = function () {\n if (this._isPlaying) {\n this._isPlaying = false;\n this.onStop();\n\n // need reset pause flag after onStop\n this._isPaused = false;\n }\n};\n\n/**\n * !#en Pause this animation.\n * !#zh 暂停动画。\n * @method pause\n */\nprototype.pause = function () {\n if (this._isPlaying && !this._isPaused) {\n this._isPaused = true;\n this.onPause();\n }\n};\n\n/**\n * !#en Resume this animation.\n * !#zh 重新播放动画。\n * @method resume\n */\nprototype.resume = function () {\n if (this._isPlaying && this._isPaused) {\n this._isPaused = false;\n this.onResume();\n }\n};\n\n/**\n * !#en Perform a single frame step.\n * !#zh 执行一帧动画。\n * @method step\n */\nprototype.step = function () {\n this.pause();\n this._stepOnce = true;\n if (!this._isPlaying) {\n this.play();\n }\n};\n\nmodule.exports = Playable;\n","/****************************************************************************\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar WrapModeMask = {\n Loop: 1 << 1,\n ShouldWrap: 1 << 2,\n // Reserved: 1 << 3,\n PingPong: 1 << 4 | 1 << 1 | 1 << 2, // Loop, ShouldWrap\n Reverse: 1 << 5 | 1 << 2, // ShouldWrap\n};\n\n/**\n * !#en Specifies how time is treated when it is outside of the keyframe range of an Animation.\n * !#zh 动画使用的循环模式。\n * @enum WrapMode\n * @memberof cc\n */\nvar WrapMode = cc.Enum({\n\n /**\n * !#en Reads the default wrap mode set higher up.\n * !#zh 向 Animation Component 或者 AnimationClip 查找 wrapMode\n * @property {Number} Default\n */\n Default: 0,\n\n /**\n * !#en All iterations are played as specified.\n * !#zh 动画只播放一遍\n * @property {Number} Normal\n */\n Normal: 1,\n\n /**\n * !#en All iterations are played in the reverse direction from the way they are specified.\n * !#zh 从最后一帧或结束位置开始反向播放,到第一帧或开始位置停止\n * @property {Number} Reverse\n */\n Reverse: WrapModeMask.Reverse,\n\n /**\n * !#en When time reaches the end of the animation, time will continue at the beginning.\n * !#zh 循环播放\n * @property {Number} Loop\n */\n Loop: WrapModeMask.Loop,\n\n /**\n * !#en All iterations are played in the reverse direction from the way they are specified.\n * And when time reaches the start of the animation, time will continue at the ending.\n * !#zh 反向循环播放\n * @property {Number} LoopReverse\n */\n LoopReverse: WrapModeMask.Loop | WrapModeMask.Reverse,\n\n /**\n * !#en Even iterations are played as specified, odd iterations are played in the reverse direction from the way they\n * are specified.\n * !#zh 从第一帧播放到最后一帧,然后反向播放回第一帧,到第一帧后再正向播放,如此循环\n * @property {Number} PingPong\n */\n PingPong: WrapModeMask.PingPong,\n\n /**\n * !#en Even iterations are played in the reverse direction from the way they are specified, odd iterations are played\n * as specified.\n * !#zh 从最后一帧开始反向播放,其他同 PingPong\n * @property {Number} PingPongReverse\n */\n PingPongReverse: WrapModeMask.PingPong | WrapModeMask.Reverse\n});\n\ncc.WrapMode = WrapMode;\n\n// For internal\nfunction WrappedInfo (info) {\n if (info) {\n this.set(info);\n return;\n }\n\n this.ratio = 0;\n this.time = 0;\n this.direction = 1;\n this.stopped = true;\n this.iterations = 0;\n this.frameIndex = undefined;\n}\n\nWrappedInfo.prototype.set = function (info) {\n this.ratio = info.ratio;\n this.time = info.time;\n this.direction = info.direction;\n this.stopped = info.stopped;\n this.iterations = info.iterations;\n this.frameIndex = info.frameIndex;\n};\n\nmodule.exports = {\n WrapModeMask,\n WrapMode,\n WrappedInfo\n};\n","/****************************************************************************\n Copyright (c) 2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst utils = require('./platform/utils');\nconst debugInfos = require('../../DebugInfos') || {};\nconst ERROR_MAP_URL = 'https://github.com/cocos-creator/engine/blob/master/EngineErrorMap.md';\n\n// the html element displays log in web page (DebugMode.INFO_FOR_WEB_PAGE)\nlet logList;\n\n/**\n * @module cc\n */\n\ncc.log = cc.warn = cc.error = cc.assert = console.log.bind ? console.log.bind(console) : console.log;\n\nlet resetDebugSetting = function (mode) {\n // reset\n cc.log = cc.warn = cc.error = cc.assert = function () {};\n\n if (mode === DebugMode.NONE)\n return;\n\n if (mode > DebugMode.ERROR) {\n //log to web page\n\n function logToWebPage (msg) {\n if (!cc.game.canvas)\n return;\n\n if (!logList) {\n var logDiv = document.createElement(\"Div\");\n logDiv.setAttribute(\"id\", \"logInfoDiv\");\n logDiv.setAttribute(\"width\", \"200\");\n logDiv.setAttribute(\"height\", cc.game.canvas.height);\n var logDivStyle = logDiv.style;\n logDivStyle.zIndex = \"99999\";\n logDivStyle.position = \"absolute\";\n logDivStyle.top = logDivStyle.left = \"0\";\n\n logList = document.createElement(\"textarea\");\n logList.setAttribute(\"rows\", \"20\");\n logList.setAttribute(\"cols\", \"30\");\n logList.setAttribute(\"disabled\", \"true\");\n var logListStyle = logList.style;\n logListStyle.backgroundColor = \"transparent\";\n logListStyle.borderBottom = \"1px solid #cccccc\";\n logListStyle.borderTopWidth = logListStyle.borderLeftWidth = logListStyle.borderRightWidth = \"0px\";\n logListStyle.borderTopStyle = logListStyle.borderLeftStyle = logListStyle.borderRightStyle = \"none\";\n logListStyle.padding = \"0px\";\n logListStyle.margin = 0;\n\n logDiv.appendChild(logList);\n cc.game.canvas.parentNode.appendChild(logDiv);\n }\n\n logList.value = logList.value + msg + \"\\r\\n\";\n logList.scrollTop = logList.scrollHeight;\n }\n\n cc.error = function () {\n logToWebPage(\"ERROR : \" + cc.js.formatStr.apply(null, arguments));\n };\n cc.assert = function (cond, msg) {\n 'use strict';\n if (!cond && msg) {\n msg = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments));\n logToWebPage(\"ASSERT: \" + msg);\n }\n };\n if (mode !== DebugMode.ERROR_FOR_WEB_PAGE) {\n cc.warn = function () {\n logToWebPage(\"WARN : \" + cc.js.formatStr.apply(null, arguments));\n };\n }\n if (mode === DebugMode.INFO_FOR_WEB_PAGE) {\n cc.log = function () {\n logToWebPage(cc.js.formatStr.apply(null, arguments));\n };\n }\n }\n else if (console && console.log.apply) {//console is null when user doesn't open dev tool on IE9\n //log to console\n\n // For JSB\n if (!console.error) console.error = console.log;\n if (!console.warn) console.warn = console.log;\n\n /**\n * !#en\n * Outputs an error message to the Cocos Creator Console (editor) or Web Console (runtime). \n * - In Cocos Creator, error is red. \n * - In Chrome, error have a red icon along with red message text. \n * !#zh\n * 输出错误消息到 Cocos Creator 编辑器的 Console 或运行时页面端的 Console 中。 \n * - 在 Cocos Creator 中,错误信息显示是红色的。 \n * - 在 Chrome 中,错误信息有红色的图标以及红色的消息文本。 \n *\n * @method error\n * @param {any} msg - A JavaScript string containing zero or more substitution strings.\n * @param {any} ...subst - JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.\n */\n if (CC_EDITOR) {\n cc.error = Editor.error;\n }\n else if (console.error.bind) {\n // use bind to avoid pollute call stacks\n cc.error = console.error.bind(console);\n }\n else {\n cc.error = CC_JSB || CC_RUNTIME ? console.error : function () {\n return console.error.apply(console, arguments);\n };\n }\n cc.assert = function (cond, msg) {\n if (!cond) {\n if (msg) {\n msg = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments));\n }\n if (CC_DEV) {\n debugger;\n }\n if (CC_TEST) {\n ok(false, msg);\n }\n else {\n throw new Error(msg);\n }\n }\n }\n }\n if (mode !== DebugMode.ERROR) {\n /**\n * !#en\n * Outputs a warning message to the Cocos Creator Console (editor) or Web Console (runtime).\n * - In Cocos Creator, warning is yellow.\n * - In Chrome, warning have a yellow warning icon with the message text.\n * !#zh\n * 输出警告消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。 \n * - 在 Cocos Creator 中,警告信息显示是黄色的。 \n * - 在 Chrome 中,警告信息有着黄色的图标以及黄色的消息文本。 \n * @method warn\n * @param {any} msg - A JavaScript string containing zero or more substitution strings.\n * @param {any} ...subst - JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.\n */\n if (CC_EDITOR) {\n cc.warn = Editor.warn;\n }\n else if (console.warn.bind) {\n // use bind to avoid pollute call stacks\n cc.warn = console.warn.bind(console);\n }\n else {\n cc.warn = CC_JSB || CC_RUNTIME ? console.warn : function () {\n return console.warn.apply(console, arguments);\n };\n }\n }\n if (CC_EDITOR) {\n cc.log = Editor.log;\n }\n else if (mode === DebugMode.INFO) {\n /**\n * !#en Outputs a message to the Cocos Creator Console (editor) or Web Console (runtime).\n * !#zh 输出一条消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。\n * @method log\n * @param {String|any} msg - A JavaScript string containing zero or more substitution strings.\n * @param {any} ...subst - JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.\n */\n if (CC_JSB || CC_RUNTIME) {\n if (scriptEngineType === \"JavaScriptCore\") {\n // console.log has to use `console` as its context for iOS 8~9. Therefore, apply it.\n cc.log = function () {\n return console.log.apply(console, arguments);\n };\n } else {\n cc.log = console.log;\n }\n }\n else if (console.log.bind) {\n // use bind to avoid pollute call stacks\n cc.log = console.log.bind(console);\n }\n else {\n cc.log = function () {\n return console.log.apply(console, arguments);\n };\n }\n }\n};\n\ncc._throw = CC_EDITOR ? Editor.error : function (error) {\n utils.callInNextTick(function () {\n throw error;\n });\n};\n\nfunction getTypedFormatter (type) {\n return function () {\n var id = arguments[0];\n var msg = CC_DEBUG ? (debugInfos[id] || 'unknown id') : `${type} ${id}, please go to ${ERROR_MAP_URL}#${id} to see details.`;\n if (arguments.length === 1) {\n return msg;\n }\n else if (arguments.length === 2) {\n return CC_DEBUG ? cc.js.formatStr(msg, arguments[1]) :\n msg + ' Arguments: ' + arguments[1];\n }\n else {\n var argsArray = cc.js.shiftArguments.apply(null, arguments);\n return CC_DEBUG ? cc.js.formatStr.apply(null, [msg].concat(argsArray)) :\n msg + ' Arguments: ' + argsArray.join(', ');\n }\n };\n}\n\nvar logFormatter = getTypedFormatter('Log');\ncc.logID = function () {\n cc.log(logFormatter.apply(null, arguments));\n};\n\nvar warnFormatter = getTypedFormatter('Warning');\ncc.warnID = function () {\n cc.warn(warnFormatter.apply(null, arguments));\n};\n\nvar errorFormatter = getTypedFormatter('Error');\ncc.errorID = function () {\n cc.error(errorFormatter.apply(null, arguments));\n};\n\nvar assertFormatter = getTypedFormatter('Assert');\ncc.assertID = function (cond) {\n 'use strict';\n if (cond) {\n return;\n }\n cc.assert(false, assertFormatter.apply(null, cc.js.shiftArguments.apply(null, arguments)));\n};\n\n/**\n* !#en Enum for debug modes.\n* !#zh 调试模式\n* @enum debug.DebugMode\n* @memberof cc\n */\nvar DebugMode = cc.Enum({\n /**\n * !#en The debug mode none.\n * !#zh 禁止模式,禁止显示任何日志信息。\n * @property NONE\n * @type {Number}\n * @static\n */\n NONE: 0,\n /**\n * !#en The debug mode info.\n * !#zh 信息模式,在 console 中显示所有日志。\n * @property INFO\n * @type {Number}\n * @static\n */\n INFO: 1,\n /**\n * !#en The debug mode warn.\n * !#zh 警告模式,在 console 中只显示 warn 级别以上的(包含 error)日志。\n * @property WARN\n * @type {Number}\n * @static\n */\n WARN: 2,\n /**\n * !#en The debug mode error.\n * !#zh 错误模式,在 console 中只显示 error 日志。\n * @property ERROR\n * @type {Number}\n * @static\n */\n ERROR: 3,\n /**\n * !#en The debug mode info for web page.\n * !#zh 信息模式(仅 WEB 端有效),在画面上输出所有信息。\n * @property INFO_FOR_WEB_PAGE\n * @type {Number}\n * @static\n */\n INFO_FOR_WEB_PAGE: 4,\n /**\n * !#en The debug mode warn for web page.\n * !#zh 警告模式(仅 WEB 端有效),在画面上输出 warn 级别以上的(包含 error)信息。\n * @property WARN_FOR_WEB_PAGE\n * @type {Number}\n * @static\n */\n WARN_FOR_WEB_PAGE: 5,\n /**\n * !#en The debug mode error for web page.\n * !#zh 错误模式(仅 WEB 端有效),在画面上输出 error 信息。\n * @property ERROR_FOR_WEB_PAGE\n * @type {Number}\n * @static\n */\n ERROR_FOR_WEB_PAGE: 6\n});\n/**\n * !#en An object to boot the game.\n * !#zh 包含游戏主体信息并负责驱动游戏的游戏对象。\n * @class debug\n * @main\n * @static\n */\nmodule.exports = cc.debug = {\n DebugMode: DebugMode,\n\n _resetDebugSetting: resetDebugSetting,\n\n /**\n * !#en Gets error message with the error id and possible parameters.\n * !#zh 通过 error id 和必要的参数来获取错误信息。\n * @method getError\n * @param {Number} errorId\n * @param {any} [param]\n * @return {String}\n */\n getError: getTypedFormatter('ERROR'),\n\n /**\n * !#en Returns whether or not to display the FPS informations.\n * !#zh 是否显示 FPS 信息。\n * @method isDisplayStats\n * @return {Boolean}\n */\n isDisplayStats: function () {\n return cc.profiler ? cc.profiler.isShowingStats() : false;\n },\n\n /**\n * !#en Sets whether display the FPS on the bottom-left corner.\n * !#zh 设置是否在左下角显示 FPS。\n * @method setDisplayStats\n * @param {Boolean} displayStats\n */\n setDisplayStats: function (displayStats) {\n if (cc.profiler && cc.game.renderType !== cc.game.RENDER_TYPE_CANVAS) {\n displayStats ? cc.profiler.showStats() : cc.profiler.hideStats();\n cc.game.config.showFPS = !!displayStats;\n }\n },\n}","/****************************************************************************\n Copyright (c) 2008-2010 Ricardo Quesada\n Copyright (c) 2011-2012 cocos2d-x.org\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst EventTarget = require('./event/event-target');\nconst ComponentScheduler = require('./component-scheduler');\nconst NodeActivator = require('./node-activator');\nconst Obj = require('./platform/CCObject');\nconst game = require('./CCGame');\nconst renderer = require('./renderer');\nconst eventManager = require('./event-manager');\nconst Scheduler = require('./CCScheduler');\n\n//----------------------------------------------------------------------------------------------------------------------\n\n/**\n * !#en\n *
\n * ATTENTION: USE cc.director INSTEAD OF cc.Director. \n * cc.director is a singleton object which manage your game's logic flow. \n * Since the cc.director is a singleton, you don't need to call any constructor or create functions, \n * the standard way to use it is by calling: \n * - cc.director.methodName(); \n *\n * It creates and handle the main Window and manages how and when to execute the Scenes. \n * \n * The cc.director is also responsible for: \n * - initializing the OpenGL context \n * - setting the OpenGL pixel format (default on is RGB565) \n * - setting the OpenGL buffer depth (default on is 0-bit) \n * - setting the color for clear screen (default one is BLACK) \n * - setting the projection (default one is 3D) \n * - setting the orientation (default one is Portrait) \n * \n * \n * The cc.director also sets the default OpenGL context: \n * - GL_TEXTURE_2D is enabled \n * - GL_VERTEX_ARRAY is enabled \n * - GL_COLOR_ARRAY is enabled \n * - GL_TEXTURE_COORD_ARRAY is enabled \n *
\n *
\n * cc.director also synchronizes timers with the refresh rate of the display. \n * Features and Limitations: \n * - Scheduled timers & drawing are synchronizes with the refresh rate of the display \n * - Only supports animation intervals of 1/60 1/30 & 1/15 \n *
\n *\n * @class Director\n * @extends EventTarget\n */\ncc.Director = function () {\n EventTarget.call(this);\n\n // paused?\n this._paused = false;\n // purge?\n this._purgeDirectorInNextLoop = false;\n\n this._winSizeInPoints = null;\n\n // scenes\n this._scene = null;\n this._loadingScene = '';\n\n // FPS\n this._totalFrames = 0;\n this._lastUpdate = 0;\n this._deltaTime = 0.0;\n this._startTime = 0.0;\n\n // ParticleSystem max step delta time\n this._maxParticleDeltaTime = 0.0;\n\n // Scheduler for user registration update\n this._scheduler = null;\n // Scheduler for life-cycle methods in component\n this._compScheduler = null;\n // Node activator\n this._nodeActivator = null;\n // Action manager\n this._actionManager = null;\n\n var self = this;\n game.on(game.EVENT_SHOW, function () {\n self._lastUpdate = performance.now();\n });\n\n game.once(game.EVENT_ENGINE_INITED, this.init, this);\n};\n\ncc.Director.prototype = {\n constructor: cc.Director,\n init: function () {\n this._totalFrames = 0;\n this._lastUpdate = performance.now();\n this._startTime = this._lastUpdate;\n this._paused = false;\n this._purgeDirectorInNextLoop = false;\n this._winSizeInPoints = cc.size(0, 0);\n this._scheduler = new Scheduler();\n\n if (cc.ActionManager) {\n this._actionManager = new cc.ActionManager();\n this._scheduler.scheduleUpdate(this._actionManager, Scheduler.PRIORITY_SYSTEM, false);\n } else {\n this._actionManager = null;\n }\n\n this.sharedInit();\n return true;\n },\n\n /*\n * Manage all init process shared between the web engine and jsb engine.\n * All platform independent init process should be occupied here.\n */\n sharedInit: function () {\n this._compScheduler = new ComponentScheduler();\n this._nodeActivator = new NodeActivator();\n\n // Event manager\n if (eventManager) {\n eventManager.setEnabled(true);\n }\n\n // Animation manager\n if (cc.AnimationManager) {\n this._animationManager = new cc.AnimationManager();\n this._scheduler.scheduleUpdate(this._animationManager, Scheduler.PRIORITY_SYSTEM, false);\n }\n else {\n this._animationManager = null;\n }\n\n // collision manager\n if (cc.CollisionManager) {\n this._collisionManager = new cc.CollisionManager();\n this._scheduler.scheduleUpdate(this._collisionManager, Scheduler.PRIORITY_SYSTEM, false);\n }\n else {\n this._collisionManager = null;\n }\n\n // physics manager\n if (cc.PhysicsManager) {\n this._physicsManager = new cc.PhysicsManager();\n this._scheduler.scheduleUpdate(this._physicsManager, Scheduler.PRIORITY_SYSTEM, false);\n }\n else {\n this._physicsManager = null;\n }\n\n // physics 3d manager\n if (cc.Physics3DManager && (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON)) {\n this._physics3DManager = new cc.Physics3DManager();\n this._scheduler.scheduleUpdate(this._physics3DManager, Scheduler.PRIORITY_SYSTEM, false);\n } else {\n this._physics3DManager = null;\n }\n\n // WidgetManager\n if (cc._widgetManager) {\n cc._widgetManager.init(this);\n }\n },\n\n /**\n * calculates delta time since last time it was called\n */\n calculateDeltaTime: function (now) {\n if (!now) now = performance.now();\n\n // avoid delta time from being negative\n // negative deltaTime would be caused by the precision of now's value, for details please see: https://developer.mozilla.org/zh-CN/docs/Web/API/window/requestAnimationFrame\n this._deltaTime = now > this._lastUpdate ? (now - this._lastUpdate) / 1000 : 0;\n if (CC_DEBUG && (this._deltaTime > 1))\n this._deltaTime = 1 / 60.0;\n\n this._lastUpdate = now;\n },\n\n /**\n * !#en\n * Converts a view coordinate to an WebGL coordinate \n * Useful to convert (multi) touches coordinates to the current layout (portrait or landscape) \n * Implementation can be found in CCDirectorWebGL.\n * !#zh 将触摸点的屏幕坐标转换为 WebGL View 下的坐标。\n * @method convertToGL\n * @param {Vec2} uiPoint\n * @return {Vec2}\n * @deprecated since v2.0\n */\n convertToGL: function (uiPoint) {\n var container = game.container;\n var view = cc.view;\n var box = container.getBoundingClientRect();\n var left = box.left + window.pageXOffset - container.clientLeft;\n var top = box.top + window.pageYOffset - container.clientTop;\n var x = view._devicePixelRatio * (uiPoint.x - left);\n var y = view._devicePixelRatio * (top + box.height - uiPoint.y);\n return view._isRotated ? cc.v2(view._viewportRect.width - y, x) : cc.v2(x, y);\n },\n\n /**\n * !#en\n * Converts an OpenGL coordinate to a view coordinate \n * Useful to convert node points to window points for calls such as glScissor \n * Implementation can be found in CCDirectorWebGL.\n * !#zh 将触摸点的 WebGL View 坐标转换为屏幕坐标。\n * @method convertToUI\n * @param {Vec2} glPoint\n * @return {Vec2}\n * @deprecated since v2.0\n */\n convertToUI: function (glPoint) {\n var container = game.container;\n var view = cc.view;\n var box = container.getBoundingClientRect();\n var left = box.left + window.pageXOffset - container.clientLeft;\n var top = box.top + window.pageYOffset - container.clientTop;\n var uiPoint = cc.v2(0, 0);\n if (view._isRotated) {\n uiPoint.x = left + glPoint.y / view._devicePixelRatio;\n uiPoint.y = top + box.height - (view._viewportRect.width - glPoint.x) / view._devicePixelRatio;\n }\n else {\n uiPoint.x = left + glPoint.x * view._devicePixelRatio;\n uiPoint.y = top + box.height - glPoint.y * view._devicePixelRatio;\n }\n return uiPoint;\n },\n\n /**\n * End the life of director in the next frame\n * @method end\n */\n end: function () {\n this._purgeDirectorInNextLoop = true;\n },\n\n /**\n * !#en\n * Returns the size of the WebGL view in points. \n * It takes into account any possible rotation (device orientation) of the window.\n * !#zh 获取视图的大小,以点为单位。\n * @method getWinSize\n * @return {Size}\n * @deprecated since v2.0\n */\n getWinSize: function () {\n return cc.size(cc.winSize);\n },\n\n /**\n * !#en\n * Returns the size of the OpenGL view in pixels. \n * It takes into account any possible rotation (device orientation) of the window. \n * On Mac winSize and winSizeInPixels return the same value.\n * (The pixel here refers to the resource resolution. If you want to get the physics resolution of device, you need to use cc.view.getFrameSize())\n * !#zh\n * 获取视图大小,以像素为单位(这里的像素指的是资源分辨率。\n * 如果要获取屏幕物理分辨率,需要用 cc.view.getFrameSize())\n * @method getWinSizeInPixels\n * @return {Size}\n * @deprecated since v2.0\n */\n getWinSizeInPixels: function () {\n return cc.size(cc.winSize);\n },\n\n /**\n * !#en Pause the director's ticker, only involve the game logic execution.\n * It won't pause the rendering process nor the event manager.\n * If you want to pause the entier game including rendering, audio and event, \n * please use {{#crossLink \"Game.pause\"}}cc.game.pause{{/crossLink}}\n * !#zh 暂停正在运行的场景,该暂停只会停止游戏逻辑执行,但是不会停止渲染和 UI 响应。\n * 如果想要更彻底得暂停游戏,包含渲染,音频和事件,请使用 {{#crossLink \"Game.pause\"}}cc.game.pause{{/crossLink}}。\n * @method pause\n */\n pause: function () {\n if (this._paused)\n return;\n this._paused = true;\n },\n\n /**\n * Removes cached all cocos2d cached data.\n * @deprecated since v2.0\n */\n purgeCachedData: function () {\n cc.assetManager.releaseAll();\n },\n\n /**\n * Purge the cc.director itself, including unschedule all schedule, remove all event listeners, clean up and exit the running scene, stops all animations, clear cached data.\n */\n purgeDirector: function () {\n //cleanup scheduler\n this._scheduler.unscheduleAll();\n this._compScheduler.unscheduleAll();\n\n this._nodeActivator.reset();\n\n // Disable event dispatching\n if (eventManager)\n eventManager.setEnabled(false);\n\n if (!CC_EDITOR) {\n if (cc.isValid(this._scene)) {\n this._scene.destroy();\n }\n this._scene = null;\n\n cc.renderer.clear();\n cc.assetManager.builtins.clear();\n }\n\n cc.game.pause();\n\n // Clear all caches\n cc.assetManager.releaseAll();\n },\n\n /**\n * Reset the cc.director, can be used to restart the director after purge\n */\n reset: function () {\n this.purgeDirector();\n\n if (eventManager)\n eventManager.setEnabled(true);\n\n // Action manager\n if (this._actionManager){\n this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, false);\n }\n\n // Animation manager\n if (this._animationManager) {\n this._scheduler.scheduleUpdate(this._animationManager, cc.Scheduler.PRIORITY_SYSTEM, false);\n }\n\n // Collider manager\n if (this._collisionManager) {\n this._scheduler.scheduleUpdate(this._collisionManager, cc.Scheduler.PRIORITY_SYSTEM, false);\n }\n\n // Physics manager\n if (this._physicsManager) {\n this._scheduler.scheduleUpdate(this._physicsManager, cc.Scheduler.PRIORITY_SYSTEM, false);\n }\n\n cc.game.resume();\n },\n\n /**\n * !#en\n * Run a scene. Replaces the running scene with a new one or enter the first scene. \n * The new scene will be launched immediately.\n * !#zh 立刻切换指定场景。\n * @method runSceneImmediate\n * @param {Scene|SceneAsset} scene - The need run scene.\n * @param {Function} [onBeforeLoadScene] - The function invoked at the scene before loading.\n * @param {Function} [onLaunched] - The function invoked at the scene after launch.\n */\n runSceneImmediate: function (scene, onBeforeLoadScene, onLaunched) {\n cc.assertID(scene instanceof cc.Scene || scene instanceof cc.SceneAsset, 1216);\n\n if (scene instanceof cc.SceneAsset) scene = scene.scene;\n\n CC_BUILD && CC_DEBUG && console.time('InitScene');\n scene._load(); // ensure scene initialized\n CC_BUILD && CC_DEBUG && console.timeEnd('InitScene');\n\n // Re-attach or replace persist nodes\n CC_BUILD && CC_DEBUG && console.time('AttachPersist');\n var persistNodeList = Object.keys(game._persistRootNodes).map(function (x) {\n return game._persistRootNodes[x];\n });\n for (let i = 0; i < persistNodeList.length; i++) {\n let node = persistNodeList[i];\n var existNode = scene.getChildByUuid(node.uuid);\n if (existNode) {\n // scene also contains the persist node, select the old one\n var index = existNode.getSiblingIndex();\n existNode._destroyImmediate();\n scene.insertChild(node, index);\n }\n else {\n node.parent = scene;\n }\n }\n CC_BUILD && CC_DEBUG && console.timeEnd('AttachPersist');\n\n var oldScene = this._scene;\n if (!CC_EDITOR) {\n // auto release assets\n CC_BUILD && CC_DEBUG && console.time('AutoRelease');\n cc.assetManager._releaseManager._autoRelease(oldScene, scene, game._persistRootNodes);\n CC_BUILD && CC_DEBUG && console.timeEnd('AutoRelease');\n }\n\n // unload scene\n CC_BUILD && CC_DEBUG && console.time('Destroy');\n if (cc.isValid(oldScene)) {\n oldScene.destroy();\n }\n\n this._scene = null;\n\n // purge destroyed nodes belongs to old scene\n Obj._deferredDestroy();\n CC_BUILD && CC_DEBUG && console.timeEnd('Destroy');\n\n if (onBeforeLoadScene) {\n onBeforeLoadScene();\n }\n this.emit(cc.Director.EVENT_BEFORE_SCENE_LAUNCH, scene);\n\n // Run an Entity Scene\n this._scene = scene;\n\n CC_BUILD && CC_DEBUG && console.time('Activate');\n scene._activate();\n CC_BUILD && CC_DEBUG && console.timeEnd('Activate');\n\n //start scene\n cc.game.resume();\n\n if (onLaunched) {\n onLaunched(null, scene);\n }\n this.emit(cc.Director.EVENT_AFTER_SCENE_LAUNCH, scene);\n },\n\n /**\n * !#en\n * Run a scene. Replaces the running scene with a new one or enter the first scene.\n * The new scene will be launched at the end of the current frame.\n * !#zh 运行指定场景。\n * @method runScene\n * @param {Scene|SceneAsset} scene - The need run scene.\n * @param {Function} [onBeforeLoadScene] - The function invoked at the scene before loading.\n * @param {Function} [onLaunched] - The function invoked at the scene after launch.\n */\n runScene: function (scene, onBeforeLoadScene, onLaunched) {\n cc.assertID(scene, 1205);\n cc.assertID(scene instanceof cc.Scene || scene instanceof cc.SceneAsset, 1216);\n\n if (scene instanceof cc.SceneAsset) scene = scene.scene;\n // ensure scene initialized\n scene._load();\n\n // Delay run / replace scene to the end of the frame\n this.once(cc.Director.EVENT_AFTER_DRAW, function () {\n this.runSceneImmediate(scene, onBeforeLoadScene, onLaunched);\n }, this);\n },\n\n /**\n * !#en Loads the scene by its name.\n * !#zh 通过场景名称进行加载场景。\n *\n * @method loadScene\n * @param {String} sceneName - The name of the scene to load.\n * @param {Function} [onLaunched] - callback, will be called after scene launched.\n * @return {Boolean} if error, return false\n */\n loadScene: function (sceneName, onLaunched, _onUnloaded) {\n if (this._loadingScene) {\n cc.warnID(1208, sceneName, this._loadingScene);\n return false;\n }\n var bundle = cc.assetManager.bundles.find(function (bundle) {\n return bundle.getSceneInfo(sceneName);\n });\n if (bundle) {\n this.emit(cc.Director.EVENT_BEFORE_SCENE_LOADING, sceneName);\n this._loadingScene = sceneName;\n var self = this;\n console.time('LoadScene ' + sceneName);\n bundle.loadScene(sceneName, function (err, scene) {\n console.timeEnd('LoadScene ' + sceneName);\n self._loadingScene = '';\n if (err) {\n err = 'Failed to load scene: ' + err;\n cc.error(err);\n onLaunched && onLaunched(err);\n }\n else {\n self.runSceneImmediate(scene, _onUnloaded, onLaunched);\n }\n });\n return true;\n }\n else {\n cc.errorID(1209, sceneName);\n return false;\n }\n },\n\n /**\n * !#en\n * Preloads the scene to reduces loading time. You can call this method at any time you want.\n * After calling this method, you still need to launch the scene by `cc.director.loadScene`.\n * It will be totally fine to call `cc.director.loadScene` at any time even if the preloading is not\n * yet finished, the scene will be launched after loaded automatically.\n * !#zh 预加载场景,你可以在任何时候调用这个方法。\n * 调用完后,你仍然需要通过 `cc.director.loadScene` 来启动场景,因为这个方法不会执行场景加载操作。\n * 就算预加载还没完成,你也可以直接调用 `cc.director.loadScene`,加载完成后场景就会启动。\n *\n * @method preloadScene\n * @param {String} sceneName - The name of the scene to preload.\n * @param {Function} [onProgress] - callback, will be called when the load progression change.\n * @param {Number} onProgress.completedCount - The number of the items that are already completed\n * @param {Number} onProgress.totalCount - The total number of the items\n * @param {Object} onProgress.item - The latest item which flow out the pipeline\n * @param {Function} [onLoaded] - callback, will be called after scene loaded.\n * @param {Error} onLoaded.error - null or the error object.\n */\n preloadScene (sceneName, onProgress, onLoaded) {\n var bundle = cc.assetManager.bundles.find(function (bundle) {\n return bundle.getSceneInfo(sceneName);\n });\n if (bundle) {\n bundle.preloadScene(sceneName, null, onProgress, onLoaded);\n }\n else {\n cc.errorID(1209, sceneName);\n return null;\n }\n },\n\n\n /**\n * !#en Resume game logic execution after pause, if the current scene is not paused, nothing will happen.\n * !#zh 恢复暂停场景的游戏逻辑,如果当前场景没有暂停将没任何事情发生。\n * @method resume\n */\n resume: function () {\n if (!this._paused) {\n return;\n }\n\n this._lastUpdate = performance.now();\n if (!this._lastUpdate) {\n cc.logID(1200);\n }\n\n this._paused = false;\n this._deltaTime = 0;\n },\n\n /**\n * !#en\n * Enables or disables WebGL depth test. \n * Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js\n * !#zh 启用/禁用深度测试(在 Canvas 渲染模式下不会生效)。\n * @method setDepthTest\n * @param {Boolean} on\n * @deprecated since v2.0\n */\n setDepthTest: function (value) {\n if (!cc.Camera.main) {\n return;\n }\n cc.Camera.main.depth = !!value;\n },\n\n /**\n * !#en\n * Set color for clear screen. \n * (Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js)\n * !#zh\n * 设置场景的默认擦除颜色。 \n * 支持全透明,但不支持透明度为中间值。要支持全透明需手工开启 cc.macro.ENABLE_TRANSPARENT_CANVAS。\n * @method setClearColor\n * @param {Color} clearColor\n * @deprecated since v2.0\n */\n setClearColor: function (clearColor) {\n if (!cc.Camera.main) {\n return;\n }\n cc.Camera.main.backgroundColor = clearColor;\n },\n\n /**\n * !#en Returns current logic Scene.\n * !#zh 获取当前逻辑场景。\n * @method getRunningScene\n * @private\n * @return {Scene}\n * @deprecated since v2.0\n */\n getRunningScene: function () {\n return this._scene;\n },\n\n /**\n * !#en Returns current logic Scene.\n * !#zh 获取当前逻辑场景。\n * @method getScene\n * @return {Scene}\n * @example\n * // This will help you to get the Canvas node in scene\n * cc.director.getScene().getChildByName('Canvas');\n */\n getScene: function () {\n return this._scene;\n },\n\n /**\n * !#en Returns the FPS value. Please use {{#crossLink \"Game.setFrameRate\"}}cc.game.setFrameRate{{/crossLink}} to control animation interval.\n * !#zh 获取单位帧执行时间。请使用 {{#crossLink \"Game.setFrameRate\"}}cc.game.setFrameRate{{/crossLink}} 来控制游戏帧率。\n * @method getAnimationInterval\n * @deprecated since v2.0\n * @return {Number}\n */\n getAnimationInterval: function () {\n return 1000 / game.getFrameRate();\n },\n\n /**\n * Sets animation interval, this doesn't control the main loop.\n * To control the game's frame rate overall, please use {{#crossLink \"Game.setFrameRate\"}}cc.game.setFrameRate{{/crossLink}}\n * @method setAnimationInterval\n * @deprecated since v2.0\n * @param {Number} value - The animation interval desired.\n */\n setAnimationInterval: function (value) {\n game.setFrameRate(Math.round(1000 / value));\n },\n\n /**\n * !#en Returns the delta time since last frame.\n * !#zh 获取上一帧的增量时间。\n * @method getDeltaTime\n * @return {Number}\n */\n getDeltaTime: function () {\n return this._deltaTime;\n },\n\n /**\n * !#en Returns the total passed time since game start, unit: ms\n * !#zh 获取从游戏开始到现在总共经过的时间,单位为 ms\n * @method getTotalTime\n * @return {Number}\n */\n getTotalTime: function () {\n return performance.now() - this._startTime;\n },\n\n /**\n * !#en Returns how many frames were called since the director started.\n * !#zh 获取 director 启动以来游戏运行的总帧数。\n * @method getTotalFrames\n * @return {Number}\n */\n getTotalFrames: function () {\n return this._totalFrames;\n },\n\n /**\n * !#en Returns whether or not the Director is paused.\n * !#zh 是否处于暂停状态。\n * @method isPaused\n * @return {Boolean}\n */\n isPaused: function () {\n return this._paused;\n },\n\n /**\n * !#en Returns the cc.Scheduler associated with this director.\n * !#zh 获取和 director 相关联的 cc.Scheduler。\n * @method getScheduler\n * @return {Scheduler}\n */\n getScheduler: function () {\n return this._scheduler;\n },\n\n /**\n * !#en Sets the cc.Scheduler associated with this director.\n * !#zh 设置和 director 相关联的 cc.Scheduler。\n * @method setScheduler\n * @param {Scheduler} scheduler\n */\n setScheduler: function (scheduler) {\n if (this._scheduler !== scheduler) {\n this._scheduler = scheduler;\n }\n },\n\n /**\n * !#en Returns the cc.ActionManager associated with this director.\n * !#zh 获取和 director 相关联的 cc.ActionManager(动作管理器)。\n * @method getActionManager\n * @return {ActionManager}\n */\n getActionManager: function () {\n return this._actionManager;\n },\n /**\n * !#en Sets the cc.ActionManager associated with this director.\n * !#zh 设置和 director 相关联的 cc.ActionManager(动作管理器)。\n * @method setActionManager\n * @param {ActionManager} actionManager\n */\n setActionManager: function (actionManager) {\n if (this._actionManager !== actionManager) {\n if (this._actionManager) {\n this._scheduler.unscheduleUpdate(this._actionManager);\n }\n this._actionManager = actionManager;\n this._scheduler.scheduleUpdate(this._actionManager, cc.Scheduler.PRIORITY_SYSTEM, false);\n }\n },\n\n /* \n * !#en Returns the cc.AnimationManager associated with this director.\n * !#zh 获取和 director 相关联的 cc.AnimationManager(动画管理器)。\n * @method getAnimationManager\n * @return {AnimationManager}\n */\n getAnimationManager: function () {\n return this._animationManager;\n },\n\n /**\n * !#en Returns the cc.CollisionManager associated with this director.\n * !#zh 获取和 director 相关联的 cc.CollisionManager (碰撞管理器)。\n * @method getCollisionManager\n * @return {CollisionManager}\n */\n getCollisionManager: function () {\n return this._collisionManager;\n },\n\n /**\n * !#en Returns the cc.PhysicsManager associated with this director.\n * !#zh 返回与 director 相关联的 cc.PhysicsManager (物理管理器)。\n * @method getPhysicsManager\n * @return {PhysicsManager}\n */\n getPhysicsManager: function () {\n return this._physicsManager;\n },\n\n /**\n * !#en Returns the cc.Physics3DManager associated with this director.\n * !#zh 返回与 director 相关联的 cc.Physics3DManager (物理管理器)。\n * @method getPhysics3DManager\n * @return {Physics3DManager}\n */\n getPhysics3DManager: function () {\n return this._physics3DManager;\n },\n\n // Loop management\n /*\n * Starts Animation\n * @deprecated since v2.1.2\n */\n startAnimation: function () {\n cc.game.resume();\n },\n\n /*\n * Stops animation\n * @deprecated since v2.1.2\n */\n stopAnimation: function () {\n cc.game.pause();\n },\n\n _resetDeltaTime () {\n this._lastUpdate = performance.now();\n this._deltaTime = 0;\n },\n\n /*\n * Run main loop of director\n */\n mainLoop: CC_EDITOR ? function (deltaTime, updateAnimate) {\n this._deltaTime = deltaTime;\n\n // Update\n if (!this._paused) {\n this.emit(cc.Director.EVENT_BEFORE_UPDATE);\n\n this._compScheduler.startPhase();\n this._compScheduler.updatePhase(deltaTime);\n\n if (updateAnimate) {\n this._scheduler.update(deltaTime);\n }\n\n this._compScheduler.lateUpdatePhase(deltaTime);\n\n this.emit(cc.Director.EVENT_AFTER_UPDATE);\n }\n\n // Render\n this.emit(cc.Director.EVENT_BEFORE_DRAW);\n renderer.render(this._scene, deltaTime);\n \n // After draw\n this.emit(cc.Director.EVENT_AFTER_DRAW);\n\n this._totalFrames++;\n\n } : function (now) {\n if (this._purgeDirectorInNextLoop) {\n this._purgeDirectorInNextLoop = false;\n this.purgeDirector();\n }\n else {\n // calculate \"global\" dt\n this.calculateDeltaTime(now);\n\n // Update\n if (!this._paused) {\n // before update\n this.emit(cc.Director.EVENT_BEFORE_UPDATE);\n\n // Call start for new added components\n this._compScheduler.startPhase();\n\n // Update for components\n this._compScheduler.updatePhase(this._deltaTime);\n // Engine update with scheduler\n this._scheduler.update(this._deltaTime);\n\n // Late update for components\n this._compScheduler.lateUpdatePhase(this._deltaTime);\n\n // User can use this event to do things after update\n this.emit(cc.Director.EVENT_AFTER_UPDATE);\n \n // Destroy entities that have been removed recently\n Obj._deferredDestroy();\n }\n\n // Render\n this.emit(cc.Director.EVENT_BEFORE_DRAW);\n renderer.render(this._scene, this._deltaTime);\n\n // After draw\n this.emit(cc.Director.EVENT_AFTER_DRAW);\n\n eventManager.frameUpdateListeners();\n this._totalFrames++;\n }\n },\n\n __fastOn: function (type, callback, target) {\n this.on(type, callback, target);\n },\n\n __fastOff: function (type, callback, target) {\n this.off(type, callback, target);\n },\n};\n\n// Event target\ncc.js.addon(cc.Director.prototype, EventTarget.prototype);\n\n/**\n * !#en The event projection changed of cc.Director. This event will not get triggered since v2.0\n * !#zh cc.Director 投影变化的事件。从 v2.0 开始这个事件不会再被触发\n * @property {String} EVENT_PROJECTION_CHANGED\n * @readonly\n * @static\n * @deprecated since v2.0\n */\ncc.Director.EVENT_PROJECTION_CHANGED = \"director_projection_changed\";\n\n/**\n * !#en The event which will be triggered before loading a new scene.\n * !#zh 加载新场景之前所触发的事件。\n * @event cc.Director.EVENT_BEFORE_SCENE_LOADING\n * @param {String} sceneName - The loading scene name\n */\n/**\n * !#en The event which will be triggered before loading a new scene.\n * !#zh 加载新场景之前所触发的事件。\n * @property {String} EVENT_BEFORE_SCENE_LOADING\n * @readonly\n * @static\n */\ncc.Director.EVENT_BEFORE_SCENE_LOADING = \"director_before_scene_loading\";\n\n/*\n * !#en The event which will be triggered before launching a new scene.\n * !#zh 运行新场景之前所触发的事件。\n * @event cc.Director.EVENT_BEFORE_SCENE_LAUNCH\n * @param {String} sceneName - New scene which will be launched\n */\n/**\n * !#en The event which will be triggered before launching a new scene.\n * !#zh 运行新场景之前所触发的事件。\n * @property {String} EVENT_BEFORE_SCENE_LAUNCH\n * @readonly\n * @static\n */\ncc.Director.EVENT_BEFORE_SCENE_LAUNCH = \"director_before_scene_launch\";\n\n/**\n * !#en The event which will be triggered after launching a new scene.\n * !#zh 运行新场景之后所触发的事件。\n * @event cc.Director.EVENT_AFTER_SCENE_LAUNCH\n * @param {String} sceneName - New scene which is launched\n */\n/**\n * !#en The event which will be triggered after launching a new scene.\n * !#zh 运行新场景之后所触发的事件。\n * @property {String} EVENT_AFTER_SCENE_LAUNCH\n * @readonly\n * @static\n */\ncc.Director.EVENT_AFTER_SCENE_LAUNCH = \"director_after_scene_launch\";\n\n/**\n * !#en The event which will be triggered at the beginning of every frame.\n * !#zh 每个帧的开始时所触发的事件。\n * @event cc.Director.EVENT_BEFORE_UPDATE\n */\n/**\n * !#en The event which will be triggered at the beginning of every frame.\n * !#zh 每个帧的开始时所触发的事件。\n * @property {String} EVENT_BEFORE_UPDATE\n * @readonly\n * @static\n */\ncc.Director.EVENT_BEFORE_UPDATE = \"director_before_update\";\n\n/**\n * !#en The event which will be triggered after engine and components update logic.\n * !#zh 将在引擎和组件 “update” 逻辑之后所触发的事件。\n * @event cc.Director.EVENT_AFTER_UPDATE\n */\n/**\n * !#en The event which will be triggered after engine and components update logic.\n * !#zh 将在引擎和组件 “update” 逻辑之后所触发的事件。\n * @property {String} EVENT_AFTER_UPDATE\n * @readonly\n * @static\n */\ncc.Director.EVENT_AFTER_UPDATE = \"director_after_update\";\n\n/**\n * !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead\n * !#zh 这个事件从 v2.0 开始被废弃,请直接使用 cc.Director.EVENT_BEFORE_DRAW\n * @property {String} EVENT_BEFORE_VISIT\n * @readonly\n * @deprecated since v2.0\n * @static\n */\ncc.Director.EVENT_BEFORE_VISIT = \"director_before_draw\";\n\n/**\n * !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead\n * !#zh 这个事件从 v2.0 开始被废弃,请直接使用 cc.Director.EVENT_BEFORE_DRAW\n * @property {String} EVENT_AFTER_VISIT\n * @readonly\n * @deprecated since v2.0\n * @static\n */\ncc.Director.EVENT_AFTER_VISIT = \"director_before_draw\";\n\n/**\n * !#en The event which will be triggered before the rendering process.\n * !#zh 渲染过程之前所触发的事件。\n * @event cc.Director.EVENT_BEFORE_DRAW\n */\n/**\n * !#en The event which will be triggered before the rendering process.\n * !#zh 渲染过程之前所触发的事件。\n * @property {String} EVENT_BEFORE_DRAW\n * @readonly\n * @static\n */\ncc.Director.EVENT_BEFORE_DRAW = \"director_before_draw\";\n\n/**\n * !#en The event which will be triggered after the rendering process.\n * !#zh 渲染过程之后所触发的事件。\n * @event cc.Director.EVENT_AFTER_DRAW\n */\n/**\n * !#en The event which will be triggered after the rendering process.\n * !#zh 渲染过程之后所触发的事件。\n * @property {String} EVENT_AFTER_DRAW\n * @readonly\n * @static\n */\ncc.Director.EVENT_AFTER_DRAW = \"director_after_draw\";\n\n//Possible OpenGL projections used by director\n\n/**\n * Constant for 2D projection (orthogonal projection)\n * @property {Number} PROJECTION_2D\n * @default 0\n * @readonly\n * @static\n * @deprecated since v2.0\n */\ncc.Director.PROJECTION_2D = 0;\n\n/**\n * Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500.\n * @property {Number} PROJECTION_3D\n * @default 1\n * @readonly\n * @static\n * @deprecated since v2.0\n */\ncc.Director.PROJECTION_3D = 1;\n\n/**\n * Constant for custom projection, if cc.Director's projection set to it, it calls \"updateProjection\" on the projection delegate.\n * @property {Number} PROJECTION_CUSTOM\n * @default 3\n * @readonly\n * @static\n * @deprecated since v2.0\n */\ncc.Director.PROJECTION_CUSTOM = 3;\n\n/**\n * Constant for default projection of cc.Director, default projection is 2D projection\n * @property {Number} PROJECTION_DEFAULT\n * @default cc.Director.PROJECTION_2D\n * @readonly\n * @static\n * @deprecated since v2.0\n */\ncc.Director.PROJECTION_DEFAULT = cc.Director.PROJECTION_2D;\n\n/**\n * The event which will be triggered before the physics process. \n * 物理过程之前所触发的事件。\n * @event Director.EVENT_BEFORE_PHYSICS\n * @readonly\n */\ncc.Director.EVENT_BEFORE_PHYSICS = 'director_before_physics';\n\n/**\n * The event which will be triggered after the physics process. \n * 物理过程之后所触发的事件。\n * @event Director.EVENT_AFTER_PHYSICS\n * @readonly\n */\ncc.Director.EVENT_AFTER_PHYSICS = 'director_after_physics';\n\n/**\n * @module cc\n */\n\n/**\n * !#en Director\n * !#zh 导演类。\n * @property director\n * @type {Director}\n */\ncc.director = new cc.Director();\n\nmodule.exports = cc.director;","/****************************************************************************\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar EventTarget = require('./event/event-target');\nrequire('../audio/CCAudioEngine');\nconst debug = require('./CCDebug');\nconst renderer = require('./renderer/index.js');\nconst dynamicAtlasManager = require('../core/renderer/utils/dynamic-atlas/manager');\n\n/**\n * @module cc\n */\n\n/**\n * !#en An object to boot the game.\n * !#zh 包含游戏主体信息并负责驱动游戏的游戏对象。\n * @class Game\n * @extends EventTarget\n */\nvar game = {\n /**\n * !#en Event triggered when game hide to background.\n * Please note that this event is not 100% guaranteed to be fired on Web platform,\n * on native platforms, it corresponds to enter background event, os status bar or notification center may not trigger this event.\n * !#zh 游戏进入后台时触发的事件。\n * 请注意,在 WEB 平台,这个事件不一定会 100% 触发,这完全取决于浏览器的回调行为。\n * 在原生平台,它对应的是应用被切换到后台事件,下拉菜单和上拉状态栏等不一定会触发这个事件,这取决于系统行为。\n * @property EVENT_HIDE\n * @type {String}\n * @example\n * cc.game.on(cc.game.EVENT_HIDE, function () {\n * cc.audioEngine.pauseMusic();\n * cc.audioEngine.pauseAllEffects();\n * });\n */\n EVENT_HIDE: \"game_on_hide\",\n\n /**\n * !#en Event triggered when game back to foreground\n * Please note that this event is not 100% guaranteed to be fired on Web platform,\n * on native platforms, it corresponds to enter foreground event.\n * !#zh 游戏进入前台运行时触发的事件。\n * 请注意,在 WEB 平台,这个事件不一定会 100% 触发,这完全取决于浏览器的回调行为。\n * 在原生平台,它对应的是应用被切换到前台事件。\n * @property EVENT_SHOW\n * @constant\n * @type {String}\n */\n EVENT_SHOW: \"game_on_show\",\n\n /**\n * !#en Event triggered when game restart\n * !#zh 调用restart后,触发事件。\n * @property EVENT_RESTART\n * @constant\n * @type {String}\n */\n EVENT_RESTART: \"game_on_restart\",\n\n /**\n * Event triggered after game inited, at this point all engine objects and game scripts are loaded\n * @property EVENT_GAME_INITED\n * @constant\n * @type {String}\n */\n EVENT_GAME_INITED: \"game_inited\",\n\n /**\n * Event triggered after engine inited, at this point you will be able to use all engine classes.\n * It was defined as EVENT_RENDERER_INITED in cocos creator v1.x and renamed in v2.0\n * @property EVENT_ENGINE_INITED\n * @constant\n * @type {String}\n */\n EVENT_ENGINE_INITED: \"engine_inited\",\n // deprecated\n EVENT_RENDERER_INITED: \"engine_inited\",\n\n /**\n * Web Canvas 2d API as renderer backend\n * @property RENDER_TYPE_CANVAS\n * @constant\n * @type {Number}\n */\n RENDER_TYPE_CANVAS: 0,\n /**\n * WebGL API as renderer backend\n * @property RENDER_TYPE_WEBGL\n * @constant\n * @type {Number}\n */\n RENDER_TYPE_WEBGL: 1,\n /**\n * OpenGL API as renderer backend\n * @property RENDER_TYPE_OPENGL\n * @constant\n * @type {Number}\n */\n RENDER_TYPE_OPENGL: 2,\n\n _persistRootNodes: {},\n\n // states\n _paused: true,//whether the game is paused\n _configLoaded: false,//whether config loaded\n _isCloning: false, // deserializing or instantiating\n _prepared: false, //whether the engine has prepared\n _rendererInitialized: false,\n\n _renderContext: null,\n\n _intervalId: null,//interval target of main\n\n _lastTime: null,\n _frameTime: null,\n\n /**\n * !#en The outer frame of the game canvas, parent of game container.\n * !#zh 游戏画布的外框,container 的父容器。\n * @property frame\n * @type {Object}\n */\n frame: null,\n /**\n * !#en The container of game canvas.\n * !#zh 游戏画布的容器。\n * @property container\n * @type {HTMLDivElement}\n */\n container: null,\n /**\n * !#en The canvas of the game.\n * !#zh 游戏的画布。\n * @property canvas\n * @type {HTMLCanvasElement}\n */\n canvas: null,\n\n /**\n * !#en The renderer backend of the game.\n * !#zh 游戏的渲染器类型。\n * @property renderType\n * @type {Number}\n */\n renderType: -1,\n\n /**\n * !#en\n * The current game configuration, including: \n * 1. debugMode \n * \"debugMode\" possible values : \n * 0 - No message will be printed. \n * 1 - cc.error, cc.assert, cc.warn, cc.log will print in console. \n * 2 - cc.error, cc.assert, cc.warn will print in console. \n * 3 - cc.error, cc.assert will print in console. \n * 4 - cc.error, cc.assert, cc.warn, cc.log will print on canvas, available only on web. \n * 5 - cc.error, cc.assert, cc.warn will print on canvas, available only on web. \n * 6 - cc.error, cc.assert will print on canvas, available only on web. \n * 2. showFPS \n * Left bottom corner fps information will show when \"showFPS\" equals true, otherwise it will be hide. \n * 3. exposeClassName \n * Expose class name to chrome debug tools, the class intantiate performance is a little bit slower when exposed. \n * 4. frameRate \n * \"frameRate\" set the wanted frame rate for your game, but the real fps depends on your game implementation and the running environment. \n * 5. id \n * \"gameCanvas\" sets the id of your canvas element on the web page, it's useful only on web. \n * 6. renderMode \n * \"renderMode\" sets the renderer type, only useful on web : \n * 0 - Automatically chosen by engine \n * 1 - Forced to use canvas renderer \n * 2 - Forced to use WebGL renderer, but this will be ignored on mobile browsers \n * \n * Please DO NOT modify this object directly, it won't have any effect. \n * !#zh\n * 当前的游戏配置,包括: \n * 1. debugMode(debug 模式,但是在浏览器中这个选项会被忽略) \n * \"debugMode\" 各种设置选项的意义。 \n * 0 - 没有消息被打印出来。 \n * 1 - cc.error,cc.assert,cc.warn,cc.log 将打印在 console 中。 \n * 2 - cc.error,cc.assert,cc.warn 将打印在 console 中。 \n * 3 - cc.error,cc.assert 将打印在 console 中。 \n * 4 - cc.error,cc.assert,cc.warn,cc.log 将打印在 canvas 中(仅适用于 web 端)。 \n * 5 - cc.error,cc.assert,cc.warn 将打印在 canvas 中(仅适用于 web 端)。 \n * 6 - cc.error,cc.assert 将打印在 canvas 中(仅适用于 web 端)。 \n * 2. showFPS(显示 FPS) \n * 当 showFPS 为 true 的时候界面的左下角将显示 fps 的信息,否则被隐藏。 \n * 3. exposeClassName \n * 暴露类名让 Chrome DevTools 可以识别,如果开启会稍稍降低类的创建过程的性能,但对对象构造没有影响。 \n * 4. frameRate (帧率) \n * “frameRate” 设置想要的帧率你的游戏,但真正的FPS取决于你的游戏实现和运行环境。 \n * 5. id \n * \"gameCanvas\" Web 页面上的 Canvas Element ID,仅适用于 web 端。 \n * 6. renderMode(渲染模式) \n * “renderMode” 设置渲染器类型,仅适用于 web 端: \n * 0 - 通过引擎自动选择。 \n * 1 - 强制使用 canvas 渲染。\n * 2 - 强制使用 WebGL 渲染,但是在部分 Android 浏览器中这个选项会被忽略。 \n * \n * 注意:请不要直接修改这个对象,它不会有任何效果。\n * @property config\n * @type {Object}\n */\n config: null,\n\n /**\n * !#en Callback when the scripts of engine have been load.\n * !#zh 当引擎完成启动后的回调函数。\n * @method onStart\n * @type {Function}\n */\n onStart: null,\n\n//@Public Methods\n\n// @Game play control\n /**\n * !#en Set frame rate of game.\n * !#zh 设置游戏帧率。\n * @method setFrameRate\n * @param {Number} frameRate\n */\n setFrameRate: function (frameRate) {\n var config = this.config;\n config.frameRate = frameRate;\n if (this._intervalId)\n window.cancelAnimFrame(this._intervalId);\n this._intervalId = 0;\n this._paused = true;\n this._setAnimFrame();\n this._runMainLoop();\n },\n\n /**\n * !#en Get frame rate set for the game, it doesn't represent the real frame rate.\n * !#zh 获取设置的游戏帧率(不等同于实际帧率)。\n * @method getFrameRate\n * @return {Number} frame rate\n */\n getFrameRate: function () {\n return this.config.frameRate;\n },\n\n /**\n * !#en Run the game frame by frame.\n * !#zh 执行一帧游戏循环。\n * @method step\n */\n step: function () {\n cc.director.mainLoop();\n },\n\n /**\n * !#en Pause the game main loop. This will pause:\n * game logic execution, rendering process, event manager, background music and all audio effects.\n * This is different with cc.director.pause which only pause the game logic execution.\n * !#zh 暂停游戏主循环。包含:游戏逻辑,渲染,事件处理,背景音乐和所有音效。这点和只暂停游戏逻辑的 cc.director.pause 不同。\n * @method pause\n */\n pause: function () {\n if (this._paused) return;\n this._paused = true;\n // Pause audio engine\n if (cc.audioEngine) {\n cc.audioEngine._break();\n }\n // Pause main loop\n if (this._intervalId)\n window.cancelAnimFrame(this._intervalId);\n this._intervalId = 0;\n },\n\n /**\n * !#en Resume the game from pause. This will resume:\n * game logic execution, rendering process, event manager, background music and all audio effects.\n * !#zh 恢复游戏主循环。包含:游戏逻辑,渲染,事件处理,背景音乐和所有音效。\n * @method resume\n */\n resume: function () {\n if (!this._paused) return;\n this._paused = false;\n // Resume audio engine\n if (cc.audioEngine) {\n cc.audioEngine._restore();\n }\n cc.director._resetDeltaTime();\n // Resume main loop\n this._runMainLoop();\n },\n\n /**\n * !#en Check whether the game is paused.\n * !#zh 判断游戏是否暂停。\n * @method isPaused\n * @return {Boolean}\n */\n isPaused: function () {\n return this._paused;\n },\n\n /**\n * !#en Restart game.\n * !#zh 重新开始游戏\n * @method restart\n */\n restart: function () {\n cc.director.once(cc.Director.EVENT_AFTER_DRAW, function () {\n for (var id in game._persistRootNodes) {\n game.removePersistRootNode(game._persistRootNodes[id]);\n }\n\n // Clear scene\n cc.director.getScene().destroy();\n cc.Object._deferredDestroy();\n\n // Clean up audio\n if (cc.audioEngine) {\n cc.audioEngine.uncacheAll();\n }\n\n cc.director.reset();\n\n game.pause();\n cc.assetManager.builtins.init(() => {\n game.onStart();\n game.emit(game.EVENT_RESTART);\n });\n });\n },\n\n /**\n * !#en End game, it will close the game window\n * !#zh 退出游戏\n * @method end\n */\n end: function () {\n close();\n },\n\n// @Game loading\n\n _initEngine () {\n if (this._rendererInitialized) {\n return;\n }\n\n this._initRenderer();\n\n if (!CC_EDITOR) {\n this._initEvents();\n }\n\n this.emit(this.EVENT_ENGINE_INITED);\n },\n\n _loadPreviewScript (cb) {\n if (CC_PREVIEW && window.__quick_compile_project__) {\n window.__quick_compile_project__.load(cb);\n }\n else {\n cb();\n }\n },\n\n _prepareFinished (cb) {\n // Init engine\n this._initEngine();\n this._setAnimFrame();\n cc.assetManager.builtins.init(() => {\n // Log engine version\n console.log('Cocos Creator SP v' + cc.ENGINE_VERSION);\n this._prepared = true;\n this._runMainLoop();\n\n this.emit(this.EVENT_GAME_INITED);\n\n if (cb) cb();\n });\n },\n\n eventTargetOn: EventTarget.prototype.on,\n eventTargetOnce: EventTarget.prototype.once,\n\n /**\n * !#en\n * Register an callback of a specific event type on the game object.\n * This type of event should be triggered via `emit`.\n * !#zh\n * 注册 game 的特定事件类型回调。这种类型的事件应该被 `emit` 触发。\n *\n * @method on\n * @param {String} type - A string representing the event type to listen for.\n * @param {Function} callback - The callback that will be invoked when the event is dispatched.\n * The callback is ignored if it is a duplicate (the callbacks are unique).\n * @param {any} [callback.arg1] arg1\n * @param {any} [callback.arg2] arg2\n * @param {any} [callback.arg3] arg3\n * @param {any} [callback.arg4] arg4\n * @param {any} [callback.arg5] arg5\n * @param {Object} [target] - The target (this object) to invoke the callback, can be null\n * @return {Function} - Just returns the incoming callback so you can save the anonymous function easier.\n * @typescript\n * on(type: string, callback: T, target?: any, useCapture?: boolean): T\n */\n on (type, callback, target, once) {\n // Make sure EVENT_ENGINE_INITED and EVENT_GAME_INITED callbacks to be invoked\n if ((this._prepared && type === this.EVENT_ENGINE_INITED) ||\n (!this._paused && type === this.EVENT_GAME_INITED)) {\n callback.call(target);\n }\n else {\n this.eventTargetOn(type, callback, target, once);\n }\n },\n /**\n * !#en\n * Register an callback of a specific event type on the game object,\n * the callback will remove itself after the first time it is triggered.\n * !#zh\n * 注册 game 的特定事件类型回调,回调会在第一时间被触发后删除自身。\n *\n * @method once\n * @param {String} type - A string representing the event type to listen for.\n * @param {Function} callback - The callback that will be invoked when the event is dispatched.\n * The callback is ignored if it is a duplicate (the callbacks are unique).\n * @param {any} [callback.arg1] arg1\n * @param {any} [callback.arg2] arg2\n * @param {any} [callback.arg3] arg3\n * @param {any} [callback.arg4] arg4\n * @param {any} [callback.arg5] arg5\n * @param {Object} [target] - The target (this object) to invoke the callback, can be null\n */\n once (type, callback, target) {\n // Make sure EVENT_ENGINE_INITED and EVENT_GAME_INITED callbacks to be invoked\n if ((this._prepared && type === this.EVENT_ENGINE_INITED) ||\n (!this._paused && type === this.EVENT_GAME_INITED)) {\n callback.call(target);\n }\n else {\n this.eventTargetOnce(type, callback, target);\n }\n },\n\n /**\n * !#en Prepare game.\n * !#zh 准备引擎,请不要直接调用这个函数。\n * @param {Function} cb\n * @method prepare\n */\n prepare (cb) {\n // Already prepared\n if (this._prepared) {\n if (cb) cb();\n return;\n }\n\n this._loadPreviewScript(() => {\n this._prepareFinished(cb);\n });\n },\n\n /**\n * !#en Run game with configuration object and onStart function.\n * !#zh 运行游戏,并且指定引擎配置和 onStart 的回调。\n * @method run\n * @param {Object} config - Pass configuration object or onStart function\n * @param {Function} onStart - function to be executed after game initialized\n */\n run: function (config, onStart) {\n this._initConfig(config);\n this.onStart = onStart;\n this.prepare(game.onStart && game.onStart.bind(game));\n },\n\n// @ Persist root node section\n /**\n * !#en\n * Add a persistent root node to the game, the persistent node won't be destroyed during scene transition. \n * The target node must be placed in the root level of hierarchy, otherwise this API won't have any effect.\n * !#zh\n * 声明常驻根节点,该节点不会被在场景切换中被销毁。 \n * 目标节点必须位于为层级的根节点,否则无效。\n * @method addPersistRootNode\n * @param {Node} node - The node to be made persistent\n */\n addPersistRootNode: function (node) {\n if (!cc.Node.isNode(node) || !node.uuid) {\n cc.warnID(3800);\n return;\n }\n var id = node.uuid;\n if (!this._persistRootNodes[id]) {\n var scene = cc.director._scene;\n if (cc.isValid(scene)) {\n if (!node.parent) {\n node.parent = scene;\n }\n else if ( !(node.parent instanceof cc.Scene) ) {\n cc.warnID(3801);\n return;\n }\n else if (node.parent !== scene) {\n cc.warnID(3802);\n return;\n }\n }\n this._persistRootNodes[id] = node;\n node._persistNode = true;\n cc.assetManager._releaseManager._addPersistNodeRef(node);\n }\n },\n\n /**\n * !#en Remove a persistent root node.\n * !#zh 取消常驻根节点。\n * @method removePersistRootNode\n * @param {Node} node - The node to be removed from persistent node list\n */\n removePersistRootNode: function (node) {\n var id = node.uuid || '';\n if (node === this._persistRootNodes[id]) {\n delete this._persistRootNodes[id];\n node._persistNode = false;\n cc.assetManager._releaseManager._removePersistNodeRef(node);\n }\n },\n\n /**\n * !#en Check whether the node is a persistent root node.\n * !#zh 检查节点是否是常驻根节点。\n * @method isPersistRootNode\n * @param {Node} node - The node to be checked\n * @return {Boolean}\n */\n isPersistRootNode: function (node) {\n return node._persistNode;\n },\n\n//@Private Methods\n\n// @Time ticker section\n _setAnimFrame: function () {\n this._lastTime = performance.now();\n var frameRate = game.config.frameRate;\n this._frameTime = 1000 / frameRate;\n cc.director._maxParticleDeltaTime = this._frameTime / 1000 * 2;\n if (CC_JSB || CC_RUNTIME) {\n jsb.setPreferredFramesPerSecond(frameRate);\n window.requestAnimFrame = window.requestAnimationFrame;\n window.cancelAnimFrame = window.cancelAnimationFrame;\n }\n else {\n let rAF = window.requestAnimationFrame = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame;\n\n if (frameRate !== 60 && frameRate !== 30) {\n window.requestAnimFrame = rAF ? this._stTimeWithRAF : this._stTime;\n window.cancelAnimFrame = this._ctTime;\n }\n else {\n window.requestAnimFrame = rAF || this._stTime;\n\n window.cancelAnimFrame = window.cancelAnimationFrame ||\n window.cancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.msCancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.oCancelAnimationFrame ||\n this._ctTime;\n }\n }\n },\n\n _stTimeWithRAF: function(callback){\n var currTime = performance.now();\n var timeToCall = Math.max(0, game._frameTime - (currTime - game._lastTime));\n var id = window.setTimeout(function() {\n window.requestAnimationFrame(callback);\n }, timeToCall);\n game._lastTime = currTime + timeToCall;\n return id;\n },\n\n _stTime: function(callback){\n var currTime = performance.now();\n var timeToCall = Math.max(0, game._frameTime - (currTime - game._lastTime));\n var id = window.setTimeout(function() { callback(); },\n timeToCall);\n game._lastTime = currTime + timeToCall;\n return id;\n },\n _ctTime: function(id){\n window.clearTimeout(id);\n },\n //Run game.\n _runMainLoop: function () {\n if (CC_EDITOR) {\n return;\n }\n if (!this._prepared) return;\n\n var self = this, callback, config = self.config,\n director = cc.director,\n skip = true, frameRate = config.frameRate;\n\n debug.setDisplayStats(config.showFPS);\n\n callback = function (now) {\n if (!self._paused) {\n self._intervalId = window.requestAnimFrame(callback);\n if (!CC_JSB && !CC_RUNTIME && frameRate === 30) {\n if (skip = !skip) {\n return;\n }\n }\n director.mainLoop(now);\n }\n };\n\n self._intervalId = window.requestAnimFrame(callback);\n self._paused = false;\n },\n\n// @Game loading section\n _initConfig (config) {\n // Configs adjustment\n if (typeof config.debugMode !== 'number') {\n config.debugMode = 0;\n }\n config.exposeClassName = !!config.exposeClassName;\n if (typeof config.frameRate !== 'number') {\n config.frameRate = 60;\n }\n let renderMode = config.renderMode;\n if (typeof renderMode !== 'number' || renderMode > 2 || renderMode < 0) {\n config.renderMode = 0;\n }\n if (typeof config.registerSystemEvent !== 'boolean') {\n config.registerSystemEvent = true;\n }\n if (renderMode === 1) {\n config.showFPS = false;\n }\n else {\n config.showFPS = !!config.showFPS;\n }\n\n // Collide Map and Group List\n this.collisionMatrix = config.collisionMatrix || [];\n this.groupList = config.groupList || [];\n\n debug._resetDebugSetting(config.debugMode);\n\n this.config = config;\n this._configLoaded = true;\n },\n\n _determineRenderType () {\n let config = this.config,\n userRenderMode = parseInt(config.renderMode) || 0;\n\n // Determine RenderType\n this.renderType = this.RENDER_TYPE_CANVAS;\n let supportRender = false;\n\n if (userRenderMode === 0) {\n if (cc.sys.capabilities['opengl']) {\n this.renderType = this.RENDER_TYPE_WEBGL;\n supportRender = true;\n }\n else if (cc.sys.capabilities['canvas']) {\n this.renderType = this.RENDER_TYPE_CANVAS;\n supportRender = true;\n }\n }\n else if (userRenderMode === 1 && cc.sys.capabilities['canvas']) {\n this.renderType = this.RENDER_TYPE_CANVAS;\n supportRender = true;\n }\n else if (userRenderMode === 2 && cc.sys.capabilities['opengl']) {\n this.renderType = this.RENDER_TYPE_WEBGL;\n supportRender = true;\n }\n\n if (!supportRender) {\n throw new Error(debug.getError(3820, userRenderMode));\n }\n },\n\n _initRenderer () {\n // Avoid setup to be called twice.\n if (this._rendererInitialized) return;\n\n let el = this.config.id,\n width, height,\n localCanvas, localContainer;\n\n if (CC_JSB || CC_RUNTIME) {\n this.container = localContainer = document.createElement(\"DIV\");\n this.frame = localContainer.parentNode === document.body ? document.documentElement : localContainer.parentNode;\n localCanvas = window.__canvas;\n this.canvas = localCanvas;\n }\n else {\n var element = (el instanceof HTMLElement) ? el : (document.querySelector(el) || document.querySelector('#' + el));\n\n if (element.tagName === \"CANVAS\") {\n width = element.width;\n height = element.height;\n\n //it is already a canvas, we wrap it around with a div\n this.canvas = localCanvas = element;\n this.container = localContainer = document.createElement(\"DIV\");\n if (localCanvas.parentNode)\n localCanvas.parentNode.insertBefore(localContainer, localCanvas);\n } else {\n //we must make a new canvas and place into this element\n if (element.tagName !== \"DIV\") {\n cc.warnID(3819);\n }\n width = element.clientWidth;\n height = element.clientHeight;\n this.canvas = localCanvas = document.createElement(\"CANVAS\");\n this.container = localContainer = document.createElement(\"DIV\");\n element.appendChild(localContainer);\n }\n localContainer.setAttribute('id', 'Cocos2dGameContainer');\n localContainer.appendChild(localCanvas);\n this.frame = (localContainer.parentNode === document.body) ? document.documentElement : localContainer.parentNode;\n\n function addClass (element, name) {\n var hasClass = (' ' + element.className + ' ').indexOf(' ' + name + ' ') > -1;\n if (!hasClass) {\n if (element.className) {\n element.className += \" \";\n }\n element.className += name;\n }\n }\n addClass(localCanvas, \"gameCanvas\");\n localCanvas.setAttribute(\"width\", width || 480);\n localCanvas.setAttribute(\"height\", height || 320);\n localCanvas.setAttribute(\"tabindex\", 99);\n }\n\n this._determineRenderType();\n // WebGL context created successfully\n if (this.renderType === this.RENDER_TYPE_WEBGL) {\n var opts = {\n 'stencil': true,\n // MSAA is causing serious performance dropdown on some browsers.\n 'antialias': cc.macro.ENABLE_WEBGL_ANTIALIAS,\n 'alpha': cc.macro.ENABLE_TRANSPARENT_CANVAS\n };\n renderer.initWebGL(localCanvas, opts);\n this._renderContext = renderer.device._gl;\n\n // Enable dynamic atlas manager by default\n if (!cc.macro.CLEANUP_IMAGE_CACHE && dynamicAtlasManager) {\n dynamicAtlasManager.enabled = true;\n }\n }\n if (!this._renderContext) {\n this.renderType = this.RENDER_TYPE_CANVAS;\n // Could be ignored by module settings\n renderer.initCanvas(localCanvas);\n this._renderContext = renderer.device._ctx;\n }\n\n this.canvas.oncontextmenu = function () {\n if (!cc._isContextMenuEnable) return false;\n };\n\n this._rendererInitialized = true;\n },\n\n _initEvents: function () {\n var win = window, hiddenPropName;\n\n // register system events\n if (this.config.registerSystemEvent)\n cc.internal.inputManager.registerSystemEvent(this.canvas);\n\n if (typeof document.hidden !== 'undefined') {\n hiddenPropName = \"hidden\";\n } else if (typeof document.mozHidden !== 'undefined') {\n hiddenPropName = \"mozHidden\";\n } else if (typeof document.msHidden !== 'undefined') {\n hiddenPropName = \"msHidden\";\n } else if (typeof document.webkitHidden !== 'undefined') {\n hiddenPropName = \"webkitHidden\";\n }\n\n var hidden = false;\n\n function onHidden () {\n if (!hidden) {\n hidden = true;\n game.emit(game.EVENT_HIDE);\n }\n }\n // In order to adapt the most of platforms the onshow API.\n function onShown (arg0, arg1, arg2, arg3, arg4) {\n if (hidden) {\n hidden = false;\n game.emit(game.EVENT_SHOW, arg0, arg1, arg2, arg3, arg4);\n }\n }\n\n if (hiddenPropName) {\n var changeList = [\n \"visibilitychange\",\n \"mozvisibilitychange\",\n \"msvisibilitychange\",\n \"webkitvisibilitychange\",\n \"qbrowserVisibilityChange\"\n ];\n for (var i = 0; i < changeList.length; i++) {\n document.addEventListener(changeList[i], function (event) {\n var visible = document[hiddenPropName];\n // QQ App\n visible = visible || event[\"hidden\"];\n if (visible)\n onHidden();\n else\n onShown();\n });\n }\n } else {\n win.addEventListener(\"blur\", onHidden);\n win.addEventListener(\"focus\", onShown);\n }\n\n if (navigator.userAgent.indexOf(\"MicroMessenger\") > -1) {\n win.onfocus = onShown;\n }\n\n if (\"onpageshow\" in window && \"onpagehide\" in window) {\n win.addEventListener(\"pagehide\", onHidden);\n win.addEventListener(\"pageshow\", onShown);\n // Taobao UIWebKit\n document.addEventListener(\"pagehide\", onHidden);\n document.addEventListener(\"pageshow\", onShown);\n }\n\n this.on(game.EVENT_HIDE, function () {\n game.pause();\n });\n this.on(game.EVENT_SHOW, function () {\n game.resume();\n });\n }\n};\n\nEventTarget.call(game);\ncc.js.addon(game, EventTarget.prototype);\n\n/**\n * @module cc\n */\n\n/**\n * !#en This is a Game instance.\n * !#zh 这是一个 Game 类的实例,包含游戏主体信息并负责驱动游戏的游戏对象。。\n * @property game\n * @type Game\n */\ncc.game = module.exports = game;\n","/****************************************************************************\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n'use strict';\n\nimport { Mat4, Vec2, Vec3, Quat, Trs } from './value-types';\n\nconst BaseNode = require('./utils/base-node');\nconst PrefabHelper = require('./utils/prefab-helper');\nconst nodeMemPool = require('./utils/trans-pool').NodeMemPool;\nconst AffineTrans = require('./utils/affine-transform');\nconst eventManager = require('./event-manager');\nconst macro = require('./platform/CCMacro');\nconst js = require('./platform/js');\nconst Event = require('./event/event');\nconst EventTarget = require('./event/event-target');\nconst RenderFlow = require('./renderer/render-flow');\n\nconst Flags = cc.Object.Flags;\nconst Destroying = Flags.Destroying;\n\nconst ERR_INVALID_NUMBER = CC_EDITOR && 'The %s is invalid';\nconst ONE_DEGREE = Math.PI / 180;\n\nvar ActionManagerExist = !!cc.ActionManager;\nvar emptyFunc = function () {};\n\n// getWorldPosition temp var\nvar _gwpVec3 = new Vec3();\nvar _gwpQuat = new Quat();\n\n// _invTransformPoint temp var\nvar _tpVec3a = new Vec3();\nvar _tpVec3b = new Vec3();\nvar _tpQuata = new Quat();\nvar _tpQuatb = new Quat();\n\n// setWorldPosition temp var\nvar _swpVec3 = new Vec3();\n\n// getWorldScale temp var\nvar _gwsVec3 = new Vec3();\n\n// setWorldScale temp var\nvar _swsVec3 = new Vec3();\n\n// getWorldRT temp var\nvar _gwrtVec3a = new Vec3();\nvar _gwrtVec3b = new Vec3();\nvar _gwrtQuata = new Quat();\nvar _gwrtQuatb = new Quat();\n\n// lookAt temp var\nvar _laVec3 = new Vec3();\nvar _laQuat = new Quat();\n\n//up、right、forward temp var\nvar _urfVec3 = new Vec3();\nvar _urfQuat = new Quat();\n\n// _hitTest temp var\nvar _htVec3a = new Vec3();\nvar _htVec3b = new Vec3();\n\n// getWorldRotation temp var\nvar _gwrQuat = new Quat();\n\n// setWorldRotation temp var\nvar _swrQuat = new Quat();\n\nvar _quata = new Quat();\nvar _mat4_temp = cc.mat4();\nvar _vec3_temp = new Vec3();\n\nvar _cachedArray = new Array(16);\n_cachedArray.length = 0;\n\nconst POSITION_ON = 1 << 0;\nconst SCALE_ON = 1 << 1;\nconst ROTATION_ON = 1 << 2;\nconst SIZE_ON = 1 << 3;\nconst ANCHOR_ON = 1 << 4;\nconst COLOR_ON = 1 << 5;\n\n\nlet BuiltinGroupIndex = cc.Enum({\n DEBUG: 31\n});\n\n/**\n * !#en Node's local dirty properties flag\n * !#zh Node 的本地属性 dirty 状态位\n * @enum Node._LocalDirtyFlag\n * @static\n * @private\n * @namespace Node\n */\nvar LocalDirtyFlag = cc.Enum({\n /**\n * !#en Flag for position dirty\n * !#zh 位置 dirty 的标记位\n * @property {Number} POSITION\n * @static\n */\n POSITION: 1 << 0,\n /**\n * !#en Flag for scale dirty\n * !#zh 缩放 dirty 的标记位\n * @property {Number} SCALE\n * @static\n */\n SCALE: 1 << 1,\n /**\n * !#en Flag for rotation dirty\n * !#zh 旋转 dirty 的标记位\n * @property {Number} ROTATION\n * @static\n */\n ROTATION: 1 << 2,\n /**\n * !#en Flag for skew dirty\n * !#zh skew dirty 的标记位\n * @property {Number} SKEW\n * @static\n */\n SKEW: 1 << 3,\n /**\n * !#en Flag for rotation, scale or position dirty\n * !#zh 旋转,缩放,或位置 dirty 的标记位\n * @property {Number} TRS\n * @static\n */\n TRS: 1 << 0 | 1 << 1 | 1 << 2,\n /**\n * !#en Flag for rotation or scale dirty\n * !#zh 旋转或缩放 dirty 的标记位\n * @property {Number} RS\n * @static\n */\n RS: 1 << 1 | 1 << 2,\n /**\n * !#en Flag for rotation, scale, position, skew dirty\n * !#zh 旋转,缩放,位置,或斜角 dirty 的标记位\n * @property {Number} TRS\n * @static\n */\n TRSS: 1 << 0 | 1 << 1 | 1 << 2 | 1 << 3,\n\n /**\n * !#en Flag for physics position dirty\n * !#zh 物理位置 dirty 的标记位\n * @property {Number} PHYSICS_POSITION\n * @static\n */\n PHYSICS_POSITION: 1 << 4,\n\n /**\n * !#en Flag for physics scale dirty\n * !#zh 物理缩放 dirty 的标记位\n * @property {Number} PHYSICS_SCALE\n * @static\n */\n PHYSICS_SCALE: 1 << 5,\n\n /**\n * !#en Flag for physics rotation dirty\n * !#zh 物理旋转 dirty 的标记位\n * @property {Number} PHYSICS_ROTATION\n * @static\n */\n PHYSICS_ROTATION: 1 << 6,\n\n /**\n * !#en Flag for physics trs dirty\n * !#zh 物理位置旋转缩放 dirty 的标记位\n * @property {Number} PHYSICS_TRS\n * @static\n */\n PHYSICS_TRS: 1 << 4 | 1 << 5 | 1 << 6,\n\n /**\n * !#en Flag for physics rs dirty\n * !#zh 物理旋转缩放 dirty 的标记位\n * @property {Number} PHYSICS_RS\n * @static\n */\n PHYSICS_RS: 1 << 5 | 1 << 6,\n\n /**\n * !#en Flag for node and physics position dirty\n * !#zh 所有位置 dirty 的标记位\n * @property {Number} ALL_POSITION\n * @static\n */\n ALL_POSITION: 1 << 0 | 1 << 4,\n\n /**\n * !#en Flag for node and physics scale dirty\n * !#zh 所有缩放 dirty 的标记位\n * @property {Number} ALL_SCALE\n * @static\n */\n ALL_SCALE: 1 << 1 | 1 << 5,\n\n /**\n * !#en Flag for node and physics rotation dirty\n * !#zh 所有旋转 dirty 的标记位\n * @property {Number} ALL_ROTATION\n * @static\n */\n ALL_ROTATION: 1 << 2 | 1 << 6,\n\n /**\n * !#en Flag for node and physics trs dirty\n * !#zh 所有trs dirty 的标记位\n * @property {Number} ALL_TRS\n * @static\n */\n ALL_TRS: 1 << 0 | 1 << 1 | 1 << 2 | 1 << 4 | 1 << 5 | 1 << 6,\n\n /**\n * !#en Flag for all dirty properties\n * !#zh 覆盖所有 dirty 状态的标记位\n * @property {Number} ALL\n * @static\n */\n ALL: 0xffff,\n});\n\n/**\n * !#en The event type supported by Node\n * !#zh Node 支持的事件类型\n * @class Node.EventType\n * @static\n * @namespace Node\n */\n// Why EventType defined as class, because the first parameter of Node.on method needs set as 'string' type.\nvar EventType = cc.Enum({\n /**\n * !#en The event type for touch start event, you can use its value directly: 'touchstart'\n * !#zh 当手指触摸到屏幕时。\n * @property {String} TOUCH_START\n * @static\n */\n TOUCH_START: 'touchstart',\n /**\n * !#en The event type for touch move event, you can use its value directly: 'touchmove'\n * !#zh 当手指在屏幕上移动时。\n * @property {String} TOUCH_MOVE\n * @static\n */\n TOUCH_MOVE: 'touchmove',\n /**\n * !#en The event type for touch end event, you can use its value directly: 'touchend'\n * !#zh 当手指在目标节点区域内离开屏幕时。\n * @property {String} TOUCH_END\n * @static\n */\n TOUCH_END: 'touchend',\n /**\n * !#en The event type for touch end event, you can use its value directly: 'touchcancel'\n * !#zh 当手指在目标节点区域外离开屏幕时。\n * @property {String} TOUCH_CANCEL\n * @static\n */\n TOUCH_CANCEL: 'touchcancel',\n\n /**\n * !#en The event type for mouse down events, you can use its value directly: 'mousedown'\n * !#zh 当鼠标按下时触发一次。\n * @property {String} MOUSE_DOWN\n * @static\n */\n MOUSE_DOWN: 'mousedown',\n /**\n * !#en The event type for mouse move events, you can use its value directly: 'mousemove'\n * !#zh 当鼠标在目标节点在目标节点区域中移动时,不论是否按下。\n * @property {String} MOUSE_MOVE\n * @static\n */\n MOUSE_MOVE: 'mousemove',\n /**\n * !#en The event type for mouse enter target events, you can use its value directly: 'mouseenter'\n * !#zh 当鼠标移入目标节点区域时,不论是否按下。\n * @property {String} MOUSE_ENTER\n * @static\n */\n MOUSE_ENTER: 'mouseenter',\n /**\n * !#en The event type for mouse leave target events, you can use its value directly: 'mouseleave'\n * !#zh 当鼠标移出目标节点区域时,不论是否按下。\n * @property {String} MOUSE_LEAVE\n * @static\n */\n MOUSE_LEAVE: 'mouseleave',\n /**\n * !#en The event type for mouse up events, you can use its value directly: 'mouseup'\n * !#zh 当鼠标从按下状态松开时触发一次。\n * @property {String} MOUSE_UP\n * @static\n */\n MOUSE_UP: 'mouseup',\n /**\n * !#en The event type for mouse wheel events, you can use its value directly: 'mousewheel'\n * !#zh 当鼠标滚轮滚动时。\n * @property {String} MOUSE_WHEEL\n * @static\n */\n MOUSE_WHEEL: 'mousewheel',\n\n /**\n * !#en The event type for position change events.\n * Performance note, this event will be triggered every time corresponding properties being changed,\n * if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n * !#zh 当节点位置改变时触发的事件。\n * 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。\n * @property {String} POSITION_CHANGED\n * @static\n */\n POSITION_CHANGED: 'position-changed',\n /**\n * !#en The event type for rotation change events.\n * Performance note, this event will be triggered every time corresponding properties being changed,\n * if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n * !#zh 当节点旋转改变时触发的事件。\n * 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。\n * @property {String} ROTATION_CHANGED\n * @static\n */\n ROTATION_CHANGED: 'rotation-changed',\n /**\n * !#en The event type for scale change events.\n * Performance note, this event will be triggered every time corresponding properties being changed,\n * if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n * !#zh 当节点缩放改变时触发的事件。\n * 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。\n * @property {String} SCALE_CHANGED\n * @static\n */\n SCALE_CHANGED: 'scale-changed',\n /**\n * !#en The event type for size change events.\n * Performance note, this event will be triggered every time corresponding properties being changed,\n * if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n * !#zh 当节点尺寸改变时触发的事件。\n * 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。\n * @property {String} SIZE_CHANGED\n * @static\n */\n SIZE_CHANGED: 'size-changed',\n /**\n * !#en The event type for anchor point change events.\n * Performance note, this event will be triggered every time corresponding properties being changed,\n * if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n * !#zh 当节点锚点改变时触发的事件。\n * 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。\n * @property {String} ANCHOR_CHANGED\n * @static\n */\n ANCHOR_CHANGED: 'anchor-changed',\n /**\n * !#en The event type for color change events.\n * Performance note, this event will be triggered every time corresponding properties being changed,\n * if the event callback have heavy logic it may have great performance impact, try to avoid such scenario.\n * !#zh 当节点颜色改变时触发的事件。\n * 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。\n * @property {String} COLOR_CHANGED\n * @static\n */\n COLOR_CHANGED: 'color-changed',\n /**\n * !#en The event type for new child added events.\n * !#zh 当新的子节点被添加时触发的事件。\n * @property {String} CHILD_ADDED\n * @static\n */\n CHILD_ADDED: 'child-added',\n /**\n * !#en The event type for child removed events.\n * !#zh 当子节点被移除时触发的事件。\n * @property {String} CHILD_REMOVED\n * @static\n */\n CHILD_REMOVED: 'child-removed',\n /**\n * !#en The event type for children reorder events.\n * !#zh 当子节点顺序改变时触发的事件。\n * @property {String} CHILD_REORDER\n * @static\n */\n CHILD_REORDER: 'child-reorder',\n /**\n * !#en The event type for node group changed events.\n * !#zh 当节点归属群组发生变化时触发的事件。\n * @property {String} GROUP_CHANGED\n * @static\n */\n GROUP_CHANGED: 'group-changed',\n /**\n * !#en The event type for node's sibling order changed.\n * !#zh 当节点在兄弟节点中的顺序发生变化时触发的事件。\n * @property {String} SIBLING_ORDER_CHANGED\n * @static\n */\n SIBLING_ORDER_CHANGED: 'sibling-order-changed',\n});\n\nvar _touchEvents = [\n EventType.TOUCH_START,\n EventType.TOUCH_MOVE,\n EventType.TOUCH_END,\n EventType.TOUCH_CANCEL,\n];\nvar _mouseEvents = [\n EventType.MOUSE_DOWN,\n EventType.MOUSE_ENTER,\n EventType.MOUSE_MOVE,\n EventType.MOUSE_LEAVE,\n EventType.MOUSE_UP,\n EventType.MOUSE_WHEEL,\n];\n\nvar _skewNeedWarn = true;\nvar _skewWarn = function (value, node) {\n if (value !== 0) {\n var nodePath = \"\";\n if (CC_EDITOR) {\n var NodeUtils = Editor.require('scene://utils/node');\n nodePath = `Node: ${NodeUtils.getNodePath(node)}.`\n }\n _skewNeedWarn && cc.warn(\"`cc.Node.skewX/Y` is deprecated since v2.2.1, please use 3D node instead.\", nodePath);\n !CC_EDITOR && (_skewNeedWarn = false);\n }\n}\n\nvar _currentHovered = null;\n\nvar _touchStartHandler = function (touch, event) {\n var pos = touch.getLocation();\n var node = this.owner;\n\n if (node._hitTest(pos, this)) {\n event.type = EventType.TOUCH_START;\n event.touch = touch;\n event.bubbles = true;\n node.dispatchEvent(event);\n return true;\n }\n return false;\n};\nvar _touchMoveHandler = function (touch, event) {\n var node = this.owner;\n event.type = EventType.TOUCH_MOVE;\n event.touch = touch;\n event.bubbles = true;\n node.dispatchEvent(event);\n};\nvar _touchEndHandler = function (touch, event) {\n var pos = touch.getLocation();\n var node = this.owner;\n\n if (node._hitTest(pos, this)) {\n event.type = EventType.TOUCH_END;\n }\n else {\n event.type = EventType.TOUCH_CANCEL;\n }\n event.touch = touch;\n event.bubbles = true;\n node.dispatchEvent(event);\n};\nvar _touchCancelHandler = function (touch, event) {\n var pos = touch.getLocation();\n var node = this.owner;\n\n event.type = EventType.TOUCH_CANCEL;\n event.touch = touch;\n event.bubbles = true;\n node.dispatchEvent(event);\n};\n\nvar _mouseDownHandler = function (event) {\n var pos = event.getLocation();\n var node = this.owner;\n\n if (node._hitTest(pos, this)) {\n event.type = EventType.MOUSE_DOWN;\n event.bubbles = true;\n node.dispatchEvent(event);\n }\n};\nvar _mouseMoveHandler = function (event) {\n var pos = event.getLocation();\n var node = this.owner;\n var hit = node._hitTest(pos, this);\n if (hit) {\n if (!this._previousIn) {\n // Fix issue when hover node switched, previous hovered node won't get MOUSE_LEAVE notification\n if (_currentHovered && _currentHovered._mouseListener) {\n event.type = EventType.MOUSE_LEAVE;\n _currentHovered.dispatchEvent(event);\n _currentHovered._mouseListener._previousIn = false;\n }\n _currentHovered = this.owner;\n event.type = EventType.MOUSE_ENTER;\n node.dispatchEvent(event);\n this._previousIn = true;\n }\n event.type = EventType.MOUSE_MOVE;\n event.bubbles = true;\n node.dispatchEvent(event);\n }\n else if (this._previousIn) {\n event.type = EventType.MOUSE_LEAVE;\n node.dispatchEvent(event);\n this._previousIn = false;\n _currentHovered = null;\n }\n else {\n // continue dispatching\n return;\n }\n\n // Event processed, cleanup\n event.stopPropagation();\n};\nvar _mouseUpHandler = function (event) {\n var pos = event.getLocation();\n var node = this.owner;\n\n if (node._hitTest(pos, this)) {\n event.type = EventType.MOUSE_UP;\n event.bubbles = true;\n node.dispatchEvent(event);\n event.stopPropagation();\n }\n};\nvar _mouseWheelHandler = function (event) {\n var pos = event.getLocation();\n var node = this.owner;\n\n if (node._hitTest(pos, this)) {\n event.type = EventType.MOUSE_WHEEL;\n event.bubbles = true;\n node.dispatchEvent(event);\n event.stopPropagation();\n }\n};\n\nfunction _searchComponentsInParent (node, comp) {\n if (comp) {\n let index = 0;\n let list = null;\n for (var curr = node; curr && cc.Node.isNode(curr); curr = curr._parent, ++index) {\n if (curr.getComponent(comp)) {\n let next = {\n index: index,\n node: curr,\n };\n\n if (list) {\n list.push(next);\n } else {\n list = [next];\n }\n }\n }\n\n return list;\n }\n\n return null;\n}\n\nfunction _checkListeners (node, events) {\n if (!(node._objFlags & Destroying)) {\n if (node._bubblingListeners) {\n for (let i = 0, l = events.length; i < l; ++i) {\n if (node._bubblingListeners.hasEventListener(events[i])) {\n return true;\n }\n }\n }\n if (node._capturingListeners) {\n for (let i = 0, l = events.length; i < l; ++i) {\n if (node._capturingListeners.hasEventListener(events[i])) {\n return true;\n }\n }\n }\n return false;\n }\n return true;\n}\n\nfunction _doDispatchEvent (owner, event) {\n var target, i;\n event.target = owner;\n\n // Event.CAPTURING_PHASE\n _cachedArray.length = 0;\n owner._getCapturingTargets(event.type, _cachedArray);\n // capturing\n event.eventPhase = 1;\n for (i = _cachedArray.length - 1; i >= 0; --i) {\n target = _cachedArray[i];\n if (target._capturingListeners) {\n event.currentTarget = target;\n // fire event\n target._capturingListeners.emit(event.type, event, _cachedArray);\n // check if propagation stopped\n if (event._propagationStopped) {\n _cachedArray.length = 0;\n return;\n }\n }\n }\n _cachedArray.length = 0;\n\n // Event.AT_TARGET\n // checks if destroyed in capturing callbacks\n event.eventPhase = 2;\n event.currentTarget = owner;\n if (owner._capturingListeners) {\n owner._capturingListeners.emit(event.type, event);\n }\n if (!event._propagationImmediateStopped && owner._bubblingListeners) {\n owner._bubblingListeners.emit(event.type, event);\n }\n\n if (!event._propagationStopped && event.bubbles) {\n // Event.BUBBLING_PHASE\n owner._getBubblingTargets(event.type, _cachedArray);\n // propagate\n event.eventPhase = 3;\n for (i = 0; i < _cachedArray.length; ++i) {\n target = _cachedArray[i];\n if (target._bubblingListeners) {\n event.currentTarget = target;\n // fire event\n target._bubblingListeners.emit(event.type, event);\n // check if propagation stopped\n if (event._propagationStopped) {\n _cachedArray.length = 0;\n return;\n }\n }\n }\n }\n _cachedArray.length = 0;\n}\n\n// traversal the node tree, child cullingMask must keep the same with the parent.\nfunction _getActualGroupIndex (node) {\n let groupIndex = node.groupIndex;\n if (groupIndex === 0 && node.parent) {\n groupIndex = _getActualGroupIndex(node.parent);\n }\n return groupIndex;\n}\n\nfunction _updateCullingMask (node) {\n let index = _getActualGroupIndex(node);\n node._cullingMask = 1 << index;\n if (CC_JSB && CC_NATIVERENDERER) {\n node._proxy && node._proxy.updateCullingMask();\n }\n for (let i = 0; i < node._children.length; i++) {\n _updateCullingMask(node._children[i]);\n }\n}\n\n// 2D/3D matrix functions\nfunction updateLocalMatrix3D () {\n if (this._localMatDirty & LocalDirtyFlag.TRSS) {\n // Update transform\n let t = this._matrix;\n let tm = t.m;\n Trs.toMat4(t, this._trs);\n\n // skew\n if (this._skewX || this._skewY) {\n let a = tm[0], b = tm[1], c = tm[4], d = tm[5];\n let skx = Math.tan(this._skewX * ONE_DEGREE);\n let sky = Math.tan(this._skewY * ONE_DEGREE);\n if (skx === Infinity)\n skx = 99999999;\n if (sky === Infinity)\n sky = 99999999;\n tm[0] = a + c * sky;\n tm[1] = b + d * sky;\n tm[4] = c + a * skx;\n tm[5] = d + b * skx;\n }\n this._localMatDirty &= ~LocalDirtyFlag.TRSS;\n // Register dirty status of world matrix so that it can be recalculated\n this._worldMatDirty = true;\n }\n}\n\nfunction updateLocalMatrix2D () {\n let dirtyFlag = this._localMatDirty;\n if (!(dirtyFlag & LocalDirtyFlag.TRSS)) return;\n\n // Update transform\n let t = this._matrix;\n let tm = t.m;\n let trs = this._trs;\n\n if (dirtyFlag & (LocalDirtyFlag.RS | LocalDirtyFlag.SKEW)) {\n let rotation = -this._eulerAngles.z;\n let hasSkew = this._skewX || this._skewY;\n let sx = trs[7], sy = trs[8];\n\n if (rotation || hasSkew) {\n let a = 1, b = 0, c = 0, d = 1;\n // rotation\n if (rotation) {\n let rotationRadians = rotation * ONE_DEGREE;\n c = Math.sin(rotationRadians);\n d = Math.cos(rotationRadians);\n a = d;\n b = -c;\n }\n // scale\n tm[0] = a *= sx;\n tm[1] = b *= sx;\n tm[4] = c *= sy;\n tm[5] = d *= sy;\n // skew\n if (hasSkew) {\n let a = tm[0], b = tm[1], c = tm[4], d = tm[5];\n let skx = Math.tan(this._skewX * ONE_DEGREE);\n let sky = Math.tan(this._skewY * ONE_DEGREE);\n if (skx === Infinity)\n skx = 99999999;\n if (sky === Infinity)\n sky = 99999999;\n tm[0] = a + c * sky;\n tm[1] = b + d * sky;\n tm[4] = c + a * skx;\n tm[5] = d + b * skx;\n }\n }\n else {\n tm[0] = sx;\n tm[1] = 0;\n tm[4] = 0;\n tm[5] = sy;\n }\n }\n\n // position\n tm[12] = trs[0];\n tm[13] = trs[1];\n\n this._localMatDirty &= ~LocalDirtyFlag.TRSS;\n // Register dirty status of world matrix so that it can be recalculated\n this._worldMatDirty = true;\n}\n\nfunction calculWorldMatrix3D () {\n // Avoid as much function call as possible\n if (this._localMatDirty & LocalDirtyFlag.TRSS) {\n this._updateLocalMatrix();\n }\n\n if (this._parent) {\n let parentMat = this._parent._worldMatrix;\n Mat4.mul(this._worldMatrix, parentMat, this._matrix);\n }\n else {\n Mat4.copy(this._worldMatrix, this._matrix);\n }\n this._worldMatDirty = false;\n}\n\nfunction calculWorldMatrix2D () {\n // Avoid as much function call as possible\n if (this._localMatDirty & LocalDirtyFlag.TRSS) {\n this._updateLocalMatrix();\n }\n\n // Assume parent world matrix is correct\n let parent = this._parent;\n if (parent) {\n this._mulMat(this._worldMatrix, parent._worldMatrix, this._matrix);\n }\n else {\n Mat4.copy(this._worldMatrix, this._matrix);\n }\n this._worldMatDirty = false;\n}\n\nfunction mulMat2D (out, a, b) {\n let am = a.m, bm = b.m, outm = out.m;\n let aa=am[0], ab=am[1], ac=am[4], ad=am[5], atx=am[12], aty=am[13];\n let ba=bm[0], bb=bm[1], bc=bm[4], bd=bm[5], btx=bm[12], bty=bm[13];\n if (ab !== 0 || ac !== 0) {\n outm[0] = ba * aa + bb * ac;\n outm[1] = ba * ab + bb * ad;\n outm[4] = bc * aa + bd * ac;\n outm[5] = bc * ab + bd * ad;\n outm[12] = aa * btx + ac * bty + atx;\n outm[13] = ab * btx + ad * bty + aty;\n }\n else {\n outm[0] = ba * aa;\n outm[1] = bb * ad;\n outm[4] = bc * aa;\n outm[5] = bd * ad;\n outm[12] = aa * btx + atx;\n outm[13] = ad * bty + aty;\n }\n}\n\nconst mulMat3D = Mat4.mul;\n\n/**\n * !#en\n * Class of all entities in Cocos Creator scenes. \n * For events supported by Node, please refer to {{#crossLink \"Node.EventType\"}}{{/crossLink}}\n * !#zh\n * Cocos Creator 场景中的所有节点类。 \n * 支持的节点事件,请参阅 {{#crossLink \"Node.EventType\"}}{{/crossLink}}。\n * @class Node\n * @extends _BaseNode\n */\nlet NodeDefines = {\n name: 'cc.Node',\n extends: BaseNode,\n\n properties: {\n // SERIALIZABLE\n _opacity: 255,\n _color: cc.Color.WHITE,\n _contentSize: cc.Size,\n _anchorPoint: cc.v2(0.5, 0.5),\n _position: undefined,\n _scale: undefined,\n _trs: null,\n _eulerAngles: cc.Vec3,\n _skewX: 0.0,\n _skewY: 0.0,\n _zIndex: {\n default: undefined,\n type: cc.Integer\n },\n _localZOrder: {\n default: 0,\n serializable: false\n },\n\n _is3DNode: false,\n\n // internal properties\n /**\n * !#en\n * Group index of node. \n * Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns. \n * !#zh\n * 节点的分组索引。 \n * 节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。 \n * @property groupIndex\n * @type {Integer}\n * @default 0\n */\n _groupIndex: {\n default: 0,\n formerlySerializedAs: 'groupIndex'\n },\n groupIndex: {\n get () {\n return this._groupIndex;\n },\n set (value) {\n this._groupIndex = value;\n _updateCullingMask(this);\n this.emit(EventType.GROUP_CHANGED, this);\n }\n },\n\n /**\n * !#en\n * Group of node. \n * Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns. \n * !#zh\n * 节点的分组。 \n * 节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。 \n * @property group\n * @type {String}\n */\n group: {\n get () {\n return cc.game.groupList[this.groupIndex] || '';\n },\n\n set (value) {\n // update the groupIndex\n this.groupIndex = cc.game.groupList.indexOf(value);\n }\n },\n\n //properties moved from base node begin\n\n /**\n * !#en The position (x, y) of the node in its parent's coordinates.\n * !#zh 节点在父节点坐标系中的位置(x, y)。\n * @property {Vec3} position\n * @example\n * cc.log(\"Node Position: \" + node.position);\n */\n\n /**\n * !#en x axis position of node.\n * !#zh 节点 X 轴坐标。\n * @property x\n * @type {Number}\n * @example\n * node.x = 100;\n * cc.log(\"Node Position X: \" + node.x);\n */\n x: {\n get () {\n return this._trs[0];\n },\n set (value) {\n let trs = this._trs;\n if (value !== trs[0]) {\n if (!CC_EDITOR || isFinite(value)) {\n let oldValue;\n if (CC_EDITOR) {\n oldValue = trs[0];\n }\n\n trs[0] = value;\n this.setLocalDirty(LocalDirtyFlag.ALL_POSITION);\n\n // fast check event\n if (this._eventMask & POSITION_ON) {\n // send event\n if (CC_EDITOR) {\n this.emit(EventType.POSITION_CHANGED, new cc.Vec3(oldValue, trs[1], trs[2]));\n }\n else {\n this.emit(EventType.POSITION_CHANGED);\n }\n }\n }\n else {\n cc.error(ERR_INVALID_NUMBER, 'new x');\n }\n }\n },\n },\n\n /**\n * !#en y axis position of node.\n * !#zh 节点 Y 轴坐标。\n * @property y\n * @type {Number}\n * @example\n * node.y = 100;\n * cc.log(\"Node Position Y: \" + node.y);\n */\n y: {\n get () {\n return this._trs[1];\n },\n set (value) {\n let trs = this._trs;\n if (value !== trs[1]) {\n if (!CC_EDITOR || isFinite(value)) {\n let oldValue;\n if (CC_EDITOR) {\n oldValue = trs[1];\n }\n\n trs[1] = value;\n this.setLocalDirty(LocalDirtyFlag.ALL_POSITION);\n\n // fast check event\n if (this._eventMask & POSITION_ON) {\n // send event\n if (CC_EDITOR) {\n this.emit(EventType.POSITION_CHANGED, new cc.Vec3(trs[0], oldValue, trs[2]));\n }\n else {\n this.emit(EventType.POSITION_CHANGED);\n }\n }\n }\n else {\n cc.error(ERR_INVALID_NUMBER, 'new y');\n }\n }\n },\n },\n\n /**\n * !#en z axis position of node.\n * !#zh 节点 Z 轴坐标。\n * @property z\n * @type {Number}\n */\n z: {\n get () {\n return this._trs[2];\n },\n set (value) {\n let trs = this._trs;\n if (value !== trs[2]) {\n if (!CC_EDITOR || isFinite(value)) {\n let oldValue;\n if (CC_EDITOR) {\n oldValue = trs[2];\n }\n trs[2] = value;\n this.setLocalDirty(LocalDirtyFlag.ALL_POSITION);\n !CC_NATIVERENDERER && (this._renderFlag |= RenderFlow.FLAG_WORLD_TRANSFORM);\n // fast check event\n if (this._eventMask & POSITION_ON) {\n if (CC_EDITOR) {\n this.emit(EventType.POSITION_CHANGED, new cc.Vec3(trs[0], trs[1], oldValue));\n }\n else {\n this.emit(EventType.POSITION_CHANGED);\n }\n }\n }\n else {\n cc.error(ERR_INVALID_NUMBER, 'new z');\n }\n }\n }\n },\n\n /**\n * !#en Rotation of node.\n * !#zh 该节点旋转角度。\n * @property rotation\n * @type {Number}\n * @deprecated since v2.1\n * @example\n * node.rotation = 90;\n * cc.log(\"Node Rotation: \" + node.rotation);\n */\n rotation: {\n get () {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.rotation` is deprecated since v2.1.0, please use `-angle` instead. (`this.node.rotation` -> `-this.node.angle`)\");\n }\n return -this.angle;\n },\n set (value) {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.rotation` is deprecated since v2.1.0, please set `-angle` instead. (`this.node.rotation = x` -> `this.node.angle = -x`)\");\n }\n this.angle = -value;\n }\n },\n\n /**\n * !#en\n * Angle of node, the positive value is anti-clockwise direction.\n * !#zh\n * 该节点的旋转角度,正值为逆时针方向。\n * @property angle\n * @type {Number}\n */\n angle: {\n get () {\n return this._eulerAngles.z;\n },\n set (value) {\n Vec3.set(this._eulerAngles, 0, 0, value);\n Trs.fromAngleZ(this._trs, value);\n this.setLocalDirty(LocalDirtyFlag.ALL_ROTATION);\n\n if (this._eventMask & ROTATION_ON) {\n this.emit(EventType.ROTATION_CHANGED);\n }\n }\n },\n\n /**\n * !#en The rotation as Euler angles in degrees, used in 3D node.\n * !#zh 该节点的欧拉角度,用于 3D 节点。\n * @property eulerAngles\n * @type {Vec3}\n * @example\n * node.is3DNode = true;\n * node.eulerAngles = cc.v3(45, 45, 45);\n * cc.log(\"Node eulerAngles (X, Y, Z): \" + node.eulerAngles.toString());\n */\n\n /**\n * !#en Rotation on x axis.\n * !#zh 该节点 X 轴旋转角度。\n * @property rotationX\n * @type {Number}\n * @deprecated since v2.1\n * @example\n * node.is3DNode = true;\n * node.eulerAngles = cc.v3(45, 0, 0);\n * cc.log(\"Node eulerAngles X: \" + node.eulerAngles.x);\n */\n rotationX: {\n get () {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.rotationX` is deprecated since v2.1.0, please use `eulerAngles.x` instead. (`this.node.rotationX` -> `this.node.eulerAngles.x`)\");\n }\n return this._eulerAngles.x;\n },\n set (value) {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.rotationX` is deprecated since v2.1.0, please set `eulerAngles` instead. (`this.node.rotationX = x` -> `this.node.is3DNode = true; this.node.eulerAngles = cc.v3(x, 0, 0)`\");\n }\n if (this._eulerAngles.x !== value) {\n this._eulerAngles.x = value;\n // Update quaternion from rotation\n if (this._eulerAngles.x === this._eulerAngles.y) {\n Trs.fromAngleZ(this._trs, -value);\n }\n else {\n Trs.fromEulerNumber(this._trs, value, this._eulerAngles.y, 0);\n }\n this.setLocalDirty(LocalDirtyFlag.ALL_ROTATION);\n\n if (this._eventMask & ROTATION_ON) {\n this.emit(EventType.ROTATION_CHANGED);\n }\n }\n },\n },\n\n /**\n * !#en Rotation on y axis.\n * !#zh 该节点 Y 轴旋转角度。\n * @property rotationY\n * @type {Number}\n * @deprecated since v2.1\n * @example\n * node.is3DNode = true;\n * node.eulerAngles = cc.v3(0, 45, 0);\n * cc.log(\"Node eulerAngles Y: \" + node.eulerAngles.y);\n */\n rotationY: {\n get () {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.rotationY` is deprecated since v2.1.0, please use `eulerAngles.y` instead. (`this.node.rotationY` -> `this.node.eulerAngles.y`)\");\n }\n return this._eulerAngles.y;\n },\n set (value) {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.rotationY` is deprecated since v2.1.0, please set `eulerAngles` instead. (`this.node.rotationY = y` -> `this.node.is3DNode = true; this.node.eulerAngles = cc.v3(0, y, 0)`\");\n }\n if (this._eulerAngles.y !== value) {\n this._eulerAngles.y = value;\n // Update quaternion from rotation\n if (this._eulerAngles.x === this._eulerAngles.y) {\n Trs.fromAngleZ(this._trs, -value);\n }\n else {\n Trs.fromEulerNumber(this._trs, this._eulerAngles.x, value, 0);\n }\n this.setLocalDirty(LocalDirtyFlag.ALL_ROTATION);\n\n if (this._eventMask & ROTATION_ON) {\n this.emit(EventType.ROTATION_CHANGED);\n }\n }\n },\n },\n\n eulerAngles: {\n get () {\n if (CC_EDITOR) {\n return this._eulerAngles;\n }\n else {\n return Trs.toEuler(this._eulerAngles, this._trs);\n }\n }, set (v) {\n if (CC_EDITOR) {\n this._eulerAngles.set(v);\n }\n\n Trs.fromEuler(this._trs, v);\n this.setLocalDirty(LocalDirtyFlag.ALL_ROTATION);\n !CC_NATIVERENDERER && (this._renderFlag |= RenderFlow.FLAG_TRANSFORM);\n\n if (this._eventMask & ROTATION_ON) {\n this.emit(EventType.ROTATION_CHANGED);\n }\n }\n },\n\n // This property is used for Mesh Skeleton Animation\n // Should be removed when node.rotation upgrade to quaternion value\n quat: {\n get () {\n let trs = this._trs;\n return new Quat(trs[3], trs[4], trs[5], trs[6]);\n }, set (v) {\n this.setRotation(v);\n }\n },\n\n /**\n * !#en The local scale relative to the parent.\n * !#zh 节点相对父节点的缩放。\n * @property scale\n * @type {Number}\n * @example\n * node.scale = 1;\n */\n scale: {\n get () {\n return this._trs[7];\n },\n set (v) {\n this.setScale(v);\n }\n },\n\n /**\n * !#en Scale on x axis.\n * !#zh 节点 X 轴缩放。\n * @property scaleX\n * @type {Number}\n * @example\n * node.scaleX = 0.5;\n * cc.log(\"Node Scale X: \" + node.scaleX);\n */\n scaleX: {\n get () {\n return this._trs[7];\n },\n set (value) {\n if (this._trs[7] !== value) {\n this._trs[7] = value;\n this.setLocalDirty(LocalDirtyFlag.ALL_SCALE);\n\n if (this._eventMask & SCALE_ON) {\n this.emit(EventType.SCALE_CHANGED);\n }\n }\n },\n },\n\n /**\n * !#en Scale on y axis.\n * !#zh 节点 Y 轴缩放。\n * @property scaleY\n * @type {Number}\n * @example\n * node.scaleY = 0.5;\n * cc.log(\"Node Scale Y: \" + node.scaleY);\n */\n scaleY: {\n get () {\n return this._trs[8];\n },\n set (value) {\n if (this._trs[8] !== value) {\n this._trs[8] = value;\n this.setLocalDirty(LocalDirtyFlag.ALL_SCALE);\n\n if (this._eventMask & SCALE_ON) {\n this.emit(EventType.SCALE_CHANGED);\n }\n }\n },\n },\n\n /**\n * !#en Scale on z axis.\n * !#zh 节点 Z 轴缩放。\n * @property scaleZ\n * @type {Number}\n */\n scaleZ: {\n get () {\n return this._trs[9];\n },\n set (value) {\n if (this._trs[9] !== value) {\n this._trs[9] = value;\n this.setLocalDirty(LocalDirtyFlag.ALL_SCALE);\n !CC_NATIVERENDERER && (this._renderFlag |= RenderFlow.FLAG_TRANSFORM);\n\n if (this._eventMask & SCALE_ON) {\n this.emit(EventType.SCALE_CHANGED);\n }\n }\n }\n },\n\n /**\n * !#en Skew x\n * !#zh 该节点 X 轴倾斜角度。\n * @property skewX\n * @type {Number}\n * @example\n * node.skewX = 0;\n * cc.log(\"Node SkewX: \" + node.skewX);\n * @deprecated since v2.2.1\n */\n skewX: {\n get () {\n return this._skewX;\n },\n set (value) {\n _skewWarn(value, this);\n\n this._skewX = value;\n this.setLocalDirty(LocalDirtyFlag.SKEW);\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.updateSkew();\n }\n }\n },\n\n /**\n * !#en Skew y\n * !#zh 该节点 Y 轴倾斜角度。\n * @property skewY\n * @type {Number}\n * @example\n * node.skewY = 0;\n * cc.log(\"Node SkewY: \" + node.skewY);\n * @deprecated since v2.2.1\n */\n skewY: {\n get () {\n return this._skewY;\n },\n set (value) {\n _skewWarn(value, this);\n\n this._skewY = value;\n this.setLocalDirty(LocalDirtyFlag.SKEW);\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.updateSkew();\n }\n }\n },\n\n /**\n * !#en Opacity of node, default value is 255.\n * !#zh 节点透明度,默认值为 255。\n * @property opacity\n * @type {Number}\n * @example\n * node.opacity = 255;\n */\n opacity: {\n get () {\n return this._opacity;\n },\n set (value) {\n value = cc.misc.clampf(value, 0, 255);\n if (this._opacity !== value) {\n this._opacity = value;\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.updateOpacity();\n }\n this._renderFlag |= RenderFlow.FLAG_OPACITY_COLOR;\n }\n },\n range: [0, 255]\n },\n\n /**\n * !#en Color of node, default value is white: (255, 255, 255).\n * !#zh 节点颜色。默认为白色,数值为:(255,255,255)。\n * @property color\n * @type {Color}\n * @example\n * node.color = new cc.Color(255, 255, 255);\n */\n color: {\n get () {\n return this._color.clone()\n },\n set (value) {\n if (!this._color.equals(value)) {\n this._color.set(value);\n if (CC_DEV && value.a !== 255) {\n cc.warnID(1626);\n }\n\n this._renderFlag |= RenderFlow.FLAG_COLOR;\n\n if (this._eventMask & COLOR_ON) {\n this.emit(EventType.COLOR_CHANGED, value);\n }\n }\n },\n },\n\n /**\n * !#en Anchor point's position on x axis.\n * !#zh 节点 X 轴锚点位置。\n * @property anchorX\n * @type {Number}\n * @example\n * node.anchorX = 0;\n */\n anchorX: {\n get () {\n return this._anchorPoint.x;\n },\n set (value) {\n var anchorPoint = this._anchorPoint;\n if (anchorPoint.x !== value) {\n anchorPoint.x = value;\n if (this._eventMask & ANCHOR_ON) {\n this.emit(EventType.ANCHOR_CHANGED);\n }\n }\n },\n },\n\n /**\n * !#en Anchor point's position on y axis.\n * !#zh 节点 Y 轴锚点位置。\n * @property anchorY\n * @type {Number}\n * @example\n * node.anchorY = 0;\n */\n anchorY: {\n get () {\n return this._anchorPoint.y;\n },\n set (value) {\n var anchorPoint = this._anchorPoint;\n if (anchorPoint.y !== value) {\n anchorPoint.y = value;\n if (this._eventMask & ANCHOR_ON) {\n this.emit(EventType.ANCHOR_CHANGED);\n }\n }\n },\n },\n\n /**\n * !#en Width of node.\n * !#zh 节点宽度。\n * @property width\n * @type {Number}\n * @example\n * node.width = 100;\n */\n width: {\n get () {\n return this._contentSize.width;\n },\n set (value) {\n if (value !== this._contentSize.width) {\n if (CC_EDITOR) {\n var clone = cc.size(this._contentSize.width, this._contentSize.height);\n }\n this._contentSize.width = value;\n if (this._eventMask & SIZE_ON) {\n if (CC_EDITOR) {\n this.emit(EventType.SIZE_CHANGED, clone);\n }\n else {\n this.emit(EventType.SIZE_CHANGED);\n }\n }\n }\n },\n },\n\n /**\n * !#en Height of node.\n * !#zh 节点高度。\n * @property height\n * @type {Number}\n * @example\n * node.height = 100;\n */\n height: {\n get () {\n return this._contentSize.height;\n },\n set (value) {\n if (value !== this._contentSize.height) {\n if (CC_EDITOR) {\n var clone = cc.size(this._contentSize.width, this._contentSize.height);\n }\n this._contentSize.height = value;\n if (this._eventMask & SIZE_ON) {\n if (CC_EDITOR) {\n this.emit(EventType.SIZE_CHANGED, clone);\n }\n else {\n this.emit(EventType.SIZE_CHANGED);\n }\n }\n }\n },\n },\n\n /**\n * !#en zIndex is the 'key' used to sort the node relative to its siblings. \n * The value of zIndex should be in the range between cc.macro.MIN_ZINDEX and cc.macro.MAX_ZINDEX. \n * The Node's parent will sort all its children based on the zIndex value and the arrival order. \n * Nodes with greater zIndex will be sorted after nodes with smaller zIndex. \n * If two nodes have the same zIndex, then the node that was added first to the children's array will be in front of the other node in the array. \n * Node's order in children list will affect its rendering order. Parent is always rendering before all children.\n * !#zh zIndex 是用来对节点进行排序的关键属性,它决定一个节点在兄弟节点之间的位置。 \n * zIndex 的取值应该介于 cc.macro.MIN_ZINDEX 和 cc.macro.MAX_ZINDEX 之间\n * 父节点主要根据节点的 zIndex 和添加次序来排序,拥有更高 zIndex 的节点将被排在后面,如果两个节点的 zIndex 一致,先添加的节点会稳定排在另一个节点之前。 \n * 节点在 children 中的顺序决定了其渲染顺序。父节点永远在所有子节点之前被渲染\n * @property zIndex\n * @type {Number}\n * @example\n * node.zIndex = 1;\n * cc.log(\"Node zIndex: \" + node.zIndex);\n */\n zIndex: {\n get () {\n return this._localZOrder >> 16;\n },\n set (value) {\n if (value > macro.MAX_ZINDEX) {\n cc.warnID(1636);\n value = macro.MAX_ZINDEX;\n }\n else if (value < macro.MIN_ZINDEX) {\n cc.warnID(1637);\n value = macro.MIN_ZINDEX;\n }\n\n if (this.zIndex !== value) {\n this._localZOrder = (this._localZOrder & 0x0000ffff) | (value << 16);\n this.emit(EventType.SIBLING_ORDER_CHANGED);\n\n this._onSiblingIndexChanged();\n }\n }\n },\n\n /**\n * !#en\n * Switch 2D/3D node. The 2D nodes will run faster.\n * !#zh\n * 切换 2D/3D 节点,2D 节点会有更高的运行效率\n * @property {Boolean} is3DNode\n * @default false\n */\n is3DNode: {\n get () {\n return this._is3DNode;\n }, set (v) {\n this._is3DNode = v;\n this._update3DFunction();\n }\n },\n\n /**\n * !#en Returns a normalized vector representing the up direction (Y axis) of the node in world space.\n * !#zh 获取节点正上方(y 轴)面对的方向,返回值为世界坐标系下的归一化向量\n *\n * @property up\n * @type {Vec3}\n */\n up: {\n get () {\n var _up = Vec3.transformQuat(_urfVec3, Vec3.UP, this.getWorldRotation(_urfQuat));\n return _up.clone();\n }\n },\n\n /**\n * !#en Returns a normalized vector representing the right direction (X axis) of the node in world space.\n * !#zh 获取节点正右方(x 轴)面对的方向,返回值为世界坐标系下的归一化向量\n *\n * @property right\n * @type {Vec3}\n */\n right: {\n get () {\n var _right = Vec3.transformQuat(_urfVec3, Vec3.RIGHT, this.getWorldRotation(_urfQuat));\n return _right.clone();\n }\n },\n\n /**\n * !#en Returns a normalized vector representing the forward direction (Z axis) of the node in world space.\n * !#zh 获取节点正前方(z 轴)面对的方向,返回值为世界坐标系下的归一化向量\n *\n * @property forward\n * @type {Vec3}\n */\n forward: {\n get () {\n var _forward = Vec3.transformQuat(_urfVec3, Vec3.FORWARD, this.getWorldRotation(_urfQuat));\n return _forward.clone();\n }\n },\n },\n\n /**\n * @method constructor\n * @param {String} [name]\n */\n ctor () {\n this._reorderChildDirty = false;\n\n // cache component\n this._widget = null;\n // fast render component access\n this._renderComponent = null;\n // Event listeners\n this._capturingListeners = null;\n this._bubblingListeners = null;\n // Touch event listener\n this._touchListener = null;\n // Mouse event listener\n this._mouseListener = null;\n\n this._initDataFromPool();\n\n this._eventMask = 0;\n this._cullingMask = 1;\n this._childArrivalOrder = 1;\n\n // Proxy\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy = new renderer.NodeProxy(this._spaceInfo.unitID, this._spaceInfo.index, this._id, this._name);\n this._proxy.init(this);\n }\n // should reset _renderFlag for both web and native\n this._renderFlag = RenderFlow.FLAG_TRANSFORM | RenderFlow.FLAG_OPACITY_COLOR;\n },\n\n statics: {\n EventType,\n _LocalDirtyFlag: LocalDirtyFlag,\n // is node but not scene\n isNode (obj) {\n return obj instanceof Node && (obj.constructor === Node || !(obj instanceof cc.Scene));\n },\n BuiltinGroupIndex\n },\n\n // OVERRIDES\n\n _onSiblingIndexChanged () {\n // update rendering scene graph, sort them by arrivalOrder\n if (this._parent) {\n this._parent._delaySort();\n }\n },\n\n _onPreDestroy () {\n var destroyByParent = this._onPreDestroyBase();\n\n // Actions\n if (ActionManagerExist) {\n cc.director.getActionManager().removeAllActionsFromTarget(this);\n }\n\n // Remove Node.currentHovered\n if (_currentHovered === this) {\n _currentHovered = null;\n }\n\n this._bubblingListeners && this._bubblingListeners.clear();\n this._capturingListeners && this._capturingListeners.clear();\n\n // Remove all event listeners if necessary\n if (this._touchListener || this._mouseListener) {\n eventManager.removeListeners(this);\n if (this._touchListener) {\n this._touchListener.owner = null;\n this._touchListener.mask = null;\n this._touchListener = null;\n }\n if (this._mouseListener) {\n this._mouseListener.owner = null;\n this._mouseListener.mask = null;\n this._mouseListener = null;\n }\n }\n\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.destroy();\n this._proxy = null;\n }\n\n this._backDataIntoPool();\n\n if (this._reorderChildDirty) {\n cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this);\n }\n\n if (!destroyByParent) {\n // simulate some destruct logic to make undo system work correctly\n if (CC_EDITOR) {\n // ensure this node can reattach to scene by undo system\n this._parent = null;\n }\n }\n },\n\n _onPostActivated (active) {\n var actionManager = ActionManagerExist ? cc.director.getActionManager() : null;\n if (active) {\n // Refresh transform\n this._renderFlag |= RenderFlow.FLAG_WORLD_TRANSFORM;\n // ActionManager & EventManager\n actionManager && actionManager.resumeTarget(this);\n eventManager.resumeTarget(this);\n // Search Mask in parent\n this._checkListenerMask();\n } else {\n // deactivate\n actionManager && actionManager.pauseTarget(this);\n eventManager.pauseTarget(this);\n }\n },\n\n _onHierarchyChanged (oldParent) {\n this._updateOrderOfArrival();\n // Fixed a bug where children and parent node groups were forced to synchronize, instead of only synchronizing `_cullingMask` value\n _updateCullingMask(this);\n if (this._parent) {\n this._parent._delaySort();\n }\n this._renderFlag |= RenderFlow.FLAG_WORLD_TRANSFORM;\n this._onHierarchyChangedBase(oldParent);\n if (cc._widgetManager) {\n cc._widgetManager._nodesOrderDirty = true;\n }\n\n if (oldParent && this._activeInHierarchy) {\n //TODO: It may be necessary to update the listener mask of all child nodes.\n this._checkListenerMask();\n }\n\n // Node proxy\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.updateParent();\n }\n },\n\n // INTERNAL\n\n _update3DFunction () {\n if (this._is3DNode) {\n this._updateLocalMatrix = updateLocalMatrix3D;\n this._calculWorldMatrix = calculWorldMatrix3D;\n this._mulMat = mulMat3D;\n }\n else {\n this._updateLocalMatrix = updateLocalMatrix2D;\n this._calculWorldMatrix = calculWorldMatrix2D;\n this._mulMat = mulMat2D;\n }\n if (this._renderComponent && this._renderComponent._on3DNodeChanged) {\n this._renderComponent._on3DNodeChanged();\n }\n this._renderFlag |= RenderFlow.FLAG_TRANSFORM;\n this._localMatDirty = LocalDirtyFlag.ALL;\n\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.update3DNode();\n }\n },\n\n _initDataFromPool () {\n if (!this._spaceInfo) {\n if (CC_EDITOR || CC_TEST) {\n this._spaceInfo = {\n trs: new Float64Array(10),\n localMat: new Float64Array(16),\n worldMat: new Float64Array(16),\n };\n } else {\n this._spaceInfo = nodeMemPool.pop();\n }\n }\n\n let spaceInfo = this._spaceInfo;\n this._matrix = cc.mat4(spaceInfo.localMat);\n Mat4.identity(this._matrix);\n this._worldMatrix = cc.mat4(spaceInfo.worldMat);\n Mat4.identity(this._worldMatrix);\n this._localMatDirty = LocalDirtyFlag.ALL;\n this._worldMatDirty = true;\n\n let trs = this._trs = spaceInfo.trs;\n trs[0] = 0; // position.x\n trs[1] = 0; // position.y\n trs[2] = 0; // position.z\n trs[3] = 0; // rotation.x\n trs[4] = 0; // rotation.y\n trs[5] = 0; // rotation.z\n trs[6] = 1; // rotation.w\n trs[7] = 1; // scale.x\n trs[8] = 1; // scale.y\n trs[9] = 1; // scale.z\n },\n\n _backDataIntoPool () {\n if (!(CC_EDITOR || CC_TEST)) {\n // push back to pool\n nodeMemPool.push(this._spaceInfo);\n this._matrix = null;\n this._worldMatrix = null;\n this._trs = null;\n this._spaceInfo = null;\n }\n },\n\n _toEuler () {\n if (this.is3DNode) {\n Trs.toEuler(this._eulerAngles, this._trs);\n }\n else {\n let z = Math.asin(this._trs[5]) / ONE_DEGREE * 2;\n Vec3.set(this._eulerAngles, 0, 0, z);\n }\n },\n\n _fromEuler () {\n if (this.is3DNode) {\n Trs.fromEuler(this._trs, this._eulerAngles);\n }\n else {\n Trs.fromAngleZ(this._trs, this._eulerAngles.z);\n }\n },\n\n _initProperties () {\n if (this._is3DNode) {\n this._update3DFunction();\n }\n\n let trs = this._trs;\n if (trs) {\n let desTrs = trs;\n trs = this._trs = this._spaceInfo.trs;\n // just adapt to old trs\n if (desTrs.length === 11) {\n trs.set(desTrs.subarray(1));\n } else {\n trs.set(desTrs);\n }\n } else {\n trs = this._trs = this._spaceInfo.trs;\n }\n\n if (CC_EDITOR) {\n if (this._skewX !== 0 || this._skewY !== 0) {\n var NodeUtils = Editor.require('scene://utils/node');\n cc.warn(\"`cc.Node.skewX/Y` is deprecated since v2.2.1, please use 3D node instead.\", `Node: ${NodeUtils.getNodePath(this)}.`);\n }\n }\n\n this._fromEuler();\n\n if (CC_JSB && CC_NATIVERENDERER) {\n this._renderFlag |= RenderFlow.FLAG_TRANSFORM | RenderFlow.FLAG_OPACITY_COLOR;\n }\n },\n\n /*\n * The initializer for Node which will be called before all components onLoad\n */\n _onBatchCreated (dontSyncChildPrefab) {\n this._initProperties();\n\n // Fixed a bug where children and parent node groups were forced to synchronize, instead of only synchronizing `_cullingMask` value\n this._cullingMask = 1 << _getActualGroupIndex(this);\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy && this._proxy.updateCullingMask();\n }\n\n if (!this._activeInHierarchy) {\n if (CC_EDITOR ? cc.director.getActionManager() : ActionManagerExist) {\n // deactivate ActionManager and EventManager by default\n cc.director.getActionManager().pauseTarget(this);\n }\n eventManager.pauseTarget(this);\n }\n\n let children = this._children;\n for (let i = 0, len = children.length; i < len; i++) {\n let child = children[i];\n if (!dontSyncChildPrefab) {\n // sync child prefab\n let prefabInfo = child._prefab;\n if (prefabInfo && prefabInfo.sync && prefabInfo.root === child) {\n PrefabHelper.syncWithPrefab(child);\n }\n child._updateOrderOfArrival();\n }\n child._onBatchCreated(dontSyncChildPrefab);\n }\n\n if (children.length > 0) {\n this._renderFlag |= RenderFlow.FLAG_CHILDREN;\n }\n\n if (CC_JSB && CC_NATIVERENDERER) {\n this._proxy.initNative();\n }\n },\n\n // EVENT TARGET\n _checkListenerMask () {\n // Because Mask may be nested, need to find all the Mask components in the parent node.\n // The click area must satisfy all Masks to trigger the click.\n if (this._touchListener) {\n var mask = this._touchListener.mask = _searchComponentsInParent(this, cc.Mask);\n if (this._mouseListener) {\n this._mouseListener.mask = mask;\n }\n } else if (this._mouseListener) {\n this._mouseListener.mask = _searchComponentsInParent(this, cc.Mask);\n }\n },\n\n _checknSetupSysEvent (type) {\n let newAdded = false;\n let forDispatch = false;\n if (_touchEvents.indexOf(type) !== -1) {\n if (!this._touchListener) {\n this._touchListener = cc.EventListener.create({\n event: cc.EventListener.TOUCH_ONE_BY_ONE,\n swallowTouches: true,\n owner: this,\n mask: _searchComponentsInParent(this, cc.Mask),\n onTouchBegan: _touchStartHandler,\n onTouchMoved: _touchMoveHandler,\n onTouchEnded: _touchEndHandler,\n onTouchCancelled: _touchCancelHandler\n });\n eventManager.addListener(this._touchListener, this);\n newAdded = true;\n }\n forDispatch = true;\n }\n else if (_mouseEvents.indexOf(type) !== -1) {\n if (!this._mouseListener) {\n this._mouseListener = cc.EventListener.create({\n event: cc.EventListener.MOUSE,\n _previousIn: false,\n owner: this,\n mask: _searchComponentsInParent(this, cc.Mask),\n onMouseDown: _mouseDownHandler,\n onMouseMove: _mouseMoveHandler,\n onMouseUp: _mouseUpHandler,\n onMouseScroll: _mouseWheelHandler,\n });\n eventManager.addListener(this._mouseListener, this);\n newAdded = true;\n }\n forDispatch = true;\n }\n if (newAdded && !this._activeInHierarchy) {\n cc.director.getScheduler().schedule(function () {\n if (!this._activeInHierarchy) {\n eventManager.pauseTarget(this);\n }\n }, this, 0, 0, 0, false);\n }\n return forDispatch;\n },\n\n /**\n * !#en\n * Register a callback of a specific event type on Node. \n * Use this method to register touch or mouse event permit propagation based on scene graph, \n * These kinds of event are triggered with dispatchEvent, the dispatch process has three steps: \n * 1. Capturing phase: dispatch in capture targets (`_getCapturingTargets`), e.g. parents in node tree, from root to the real target \n * 2. At target phase: dispatch to the listeners of the real target \n * 3. Bubbling phase: dispatch in bubble targets (`_getBubblingTargets`), e.g. parents in node tree, from the real target to root \n * In any moment of the dispatching process, it can be stopped via `event.stopPropagation()` or `event.stopPropagationImmidiate()`. \n * It's the recommended way to register touch/mouse event for Node, \n * please do not use cc.eventManager directly for Node. \n * You can also register custom event and use `emit` to trigger custom event on Node. \n * For such events, there won't be capturing and bubbling phase, your event will be dispatched directly to its listeners registered on the same node. \n * You can also pass event callback parameters with `emit` by passing parameters after `type`.\n * !#zh\n * 在节点上注册指定类型的回调函数,也可以设置 target 用于绑定响应函数的 this 对象。 \n * 鼠标或触摸事件会被系统调用 dispatchEvent 方法触发,触发的过程包含三个阶段: \n * 1. 捕获阶段:派发事件给捕获目标(通过 `_getCapturingTargets` 获取),比如,节点树中注册了捕获阶段的父节点,从根节点开始派发直到目标节点。 \n * 2. 目标阶段:派发给目标节点的监听器。 \n * 3. 冒泡阶段:派发事件给冒泡目标(通过 `_getBubblingTargets` 获取),比如,节点树中注册了冒泡阶段的父节点,从目标节点开始派发直到根节点。 \n * 同时您可以将事件派发到父节点或者通过调用 stopPropagation 拦截它。 \n * 推荐使用这种方式来监听节点上的触摸或鼠标事件,请不要在节点上直接使用 cc.eventManager。 \n * 你也可以注册自定义事件到节点上,并通过 emit 方法触发此类事件,对于这类事件,不会发生捕获冒泡阶段,只会直接派发给注册在该节点上的监听器 \n * 你可以通过在 emit 方法调用时在 type 之后传递额外的参数作为事件回调的参数列表\n * @method on\n * @param {String|Node.EventType} type - A string representing the event type to listen for. See {{#crossLink \"Node/EventTyupe/POSITION_CHANGED\"}}Node Events{{/crossLink}} for all builtin events.\n * @param {Function} callback - The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).\n * @param {Event|any} [callback.event] event or first argument when emit\n * @param {any} [callback.arg2] arg2\n * @param {any} [callback.arg3] arg3\n * @param {any} [callback.arg4] arg4\n * @param {any} [callback.arg5] arg5\n * @param {Object} [target] - The target (this object) to invoke the callback, can be null\n * @param {Boolean} [useCapture=false] - When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase.\n * @return {Function} - Just returns the incoming callback so you can save the anonymous function easier.\n * @typescript\n * on(type: string, callback: T, target?: any, useCapture?: boolean): T\n * @example\n * this.node.on(cc.Node.EventType.TOUCH_START, this.memberFunction, this); // if \"this\" is component and the \"memberFunction\" declared in CCClass.\n * node.on(cc.Node.EventType.TOUCH_START, callback, this);\n * node.on(cc.Node.EventType.TOUCH_MOVE, callback, this);\n * node.on(cc.Node.EventType.TOUCH_END, callback, this);\n * node.on(cc.Node.EventType.TOUCH_CANCEL, callback, this);\n * node.on(cc.Node.EventType.ANCHOR_CHANGED, callback);\n * node.on(cc.Node.EventType.COLOR_CHANGED, callback);\n */\n on (type, callback, target, useCapture) {\n let forDispatch = this._checknSetupSysEvent(type);\n if (forDispatch) {\n return this._onDispatch(type, callback, target, useCapture);\n }\n else {\n switch (type) {\n case EventType.POSITION_CHANGED:\n this._eventMask |= POSITION_ON;\n break;\n case EventType.SCALE_CHANGED:\n this._eventMask |= SCALE_ON;\n break;\n case EventType.ROTATION_CHANGED:\n this._eventMask |= ROTATION_ON;\n break;\n case EventType.SIZE_CHANGED:\n this._eventMask |= SIZE_ON;\n break;\n case EventType.ANCHOR_CHANGED:\n this._eventMask |= ANCHOR_ON;\n break;\n case EventType.COLOR_CHANGED:\n this._eventMask |= COLOR_ON;\n break;\n }\n if (!this._bubblingListeners) {\n this._bubblingListeners = new EventTarget();\n }\n return this._bubblingListeners.on(type, callback, target);\n }\n },\n\n /**\n * !#en\n * Register an callback of a specific event type on the Node,\n * the callback will remove itself after the first time it is triggered.\n * !#zh\n * 注册节点的特定事件类型回调,回调会在第一时间被触发后删除自身。\n *\n * @method once\n * @param {String} type - A string representing the event type to listen for.\n * @param {Function} callback - The callback that will be invoked when the event is dispatched.\n * The callback is ignored if it is a duplicate (the callbacks are unique).\n * @param {Event|any} [callback.event] event or first argument when emit\n * @param {any} [callback.arg2] arg2\n * @param {any} [callback.arg3] arg3\n * @param {any} [callback.arg4] arg4\n * @param {any} [callback.arg5] arg5\n * @param {Object} [target] - The target (this object) to invoke the callback, can be null\n * @typescript\n * once(type: string, callback: T, target?: any, useCapture?: boolean): T\n * @example\n * node.once(cc.Node.EventType.ANCHOR_CHANGED, callback);\n */\n once (type, callback, target, useCapture) {\n let forDispatch = this._checknSetupSysEvent(type);\n\n let listeners = null;\n if (forDispatch && useCapture) {\n listeners = this._capturingListeners = this._capturingListeners || new EventTarget();\n }\n else {\n listeners = this._bubblingListeners = this._bubblingListeners || new EventTarget();\n }\n\n listeners.once(type, callback, target);\n listeners.once(type, () => {\n this.off(type, callback, target);\n }, undefined);\n },\n\n _onDispatch (type, callback, target, useCapture) {\n // Accept also patameters like: (type, callback, useCapture)\n if (typeof target === 'boolean') {\n useCapture = target;\n target = undefined;\n }\n else useCapture = !!useCapture;\n if (!callback) {\n cc.errorID(6800);\n return;\n }\n\n var listeners = null;\n if (useCapture) {\n listeners = this._capturingListeners = this._capturingListeners || new EventTarget();\n }\n else {\n listeners = this._bubblingListeners = this._bubblingListeners || new EventTarget();\n }\n\n if ( !listeners.hasEventListener(type, callback, target) ) {\n listeners.on(type, callback, target);\n\n if (target && target.__eventTargets) {\n target.__eventTargets.push(this);\n }\n }\n\n return callback;\n },\n\n /**\n * !#en\n * Removes the callback previously registered with the same type, callback, target and or useCapture.\n * This method is merely an alias to removeEventListener.\n * !#zh 删除之前与同类型,回调,目标或 useCapture 注册的回调。\n * @method off\n * @param {String} type - A string representing the event type being removed.\n * @param {Function} [callback] - The callback to remove.\n * @param {Object} [target] - The target (this object) to invoke the callback, if it's not given, only callback without target will be removed\n * @param {Boolean} [useCapture=false] - When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase.\n * @example\n * this.node.off(cc.Node.EventType.TOUCH_START, this.memberFunction, this);\n * node.off(cc.Node.EventType.TOUCH_START, callback, this.node);\n * node.off(cc.Node.EventType.ANCHOR_CHANGED, callback, this);\n */\n off (type, callback, target, useCapture) {\n let touchEvent = _touchEvents.indexOf(type) !== -1;\n let mouseEvent = !touchEvent && _mouseEvents.indexOf(type) !== -1;\n if (touchEvent || mouseEvent) {\n this._offDispatch(type, callback, target, useCapture);\n\n if (touchEvent) {\n if (this._touchListener && !_checkListeners(this, _touchEvents)) {\n eventManager.removeListener(this._touchListener);\n this._touchListener = null;\n }\n }\n else if (mouseEvent) {\n if (this._mouseListener && !_checkListeners(this, _mouseEvents)) {\n eventManager.removeListener(this._mouseListener);\n this._mouseListener = null;\n }\n }\n }\n else if (this._bubblingListeners) {\n this._bubblingListeners.off(type, callback, target);\n\n var hasListeners = this._bubblingListeners.hasEventListener(type);\n // All listener removed\n if (!hasListeners) {\n switch (type) {\n case EventType.POSITION_CHANGED:\n this._eventMask &= ~POSITION_ON;\n break;\n case EventType.SCALE_CHANGED:\n this._eventMask &= ~SCALE_ON;\n break;\n case EventType.ROTATION_CHANGED:\n this._eventMask &= ~ROTATION_ON;\n break;\n case EventType.SIZE_CHANGED:\n this._eventMask &= ~SIZE_ON;\n break;\n case EventType.ANCHOR_CHANGED:\n this._eventMask &= ~ANCHOR_ON;\n break;\n case EventType.COLOR_CHANGED:\n this._eventMask &= ~COLOR_ON;\n break;\n }\n }\n }\n },\n\n _offDispatch (type, callback, target, useCapture) {\n // Accept also patameters like: (type, callback, useCapture)\n if (typeof target === 'boolean') {\n useCapture = target;\n target = undefined;\n }\n else useCapture = !!useCapture;\n if (!callback) {\n this._capturingListeners && this._capturingListeners.removeAll(type);\n this._bubblingListeners && this._bubblingListeners.removeAll(type);\n }\n else {\n var listeners = useCapture ? this._capturingListeners : this._bubblingListeners;\n if (listeners) {\n listeners.off(type, callback, target);\n\n if (target && target.__eventTargets) {\n js.array.fastRemove(target.__eventTargets, this);\n }\n }\n\n }\n },\n\n /**\n * !#en Removes all callbacks previously registered with the same target.\n * !#zh 移除目标上的所有注册事件。\n * @method targetOff\n * @param {Object} target - The target to be searched for all related callbacks\n * @example\n * node.targetOff(target);\n */\n targetOff (target) {\n let listeners = this._bubblingListeners;\n if (listeners) {\n listeners.targetOff(target);\n\n // Check for event mask reset\n if ((this._eventMask & POSITION_ON) && !listeners.hasEventListener(EventType.POSITION_CHANGED)) {\n this._eventMask &= ~POSITION_ON;\n }\n if ((this._eventMask & SCALE_ON) && !listeners.hasEventListener(EventType.SCALE_CHANGED)) {\n this._eventMask &= ~SCALE_ON;\n }\n if ((this._eventMask & ROTATION_ON) && !listeners.hasEventListener(EventType.ROTATION_CHANGED)) {\n this._eventMask &= ~ROTATION_ON;\n }\n if ((this._eventMask & SIZE_ON) && !listeners.hasEventListener(EventType.SIZE_CHANGED)) {\n this._eventMask &= ~SIZE_ON;\n }\n if ((this._eventMask & ANCHOR_ON) && !listeners.hasEventListener(EventType.ANCHOR_CHANGED)) {\n this._eventMask &= ~ANCHOR_ON;\n }\n if ((this._eventMask & COLOR_ON) && !listeners.hasEventListener(EventType.COLOR_CHANGED)) {\n this._eventMask &= ~COLOR_ON;\n }\n }\n if (this._capturingListeners) {\n this._capturingListeners.targetOff(target);\n }\n\n if (target && target.__eventTargets) {\n js.array.fastRemove(target.__eventTargets, this);\n }\n\n if (this._touchListener && !_checkListeners(this, _touchEvents)) {\n eventManager.removeListener(this._touchListener);\n this._touchListener = null;\n }\n if (this._mouseListener && !_checkListeners(this, _mouseEvents)) {\n eventManager.removeListener(this._mouseListener);\n this._mouseListener = null;\n }\n },\n\n /**\n * !#en Checks whether the EventTarget object has any callback registered for a specific type of event.\n * !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。\n * @method hasEventListener\n * @param {String} type - The type of event.\n * @return {Boolean} True if a callback of the specified type is registered; false otherwise.\n */\n hasEventListener (type) {\n let has = false;\n if (this._bubblingListeners) {\n has = this._bubblingListeners.hasEventListener(type);\n }\n if (!has && this._capturingListeners) {\n has = this._capturingListeners.hasEventListener(type);\n }\n return has;\n },\n\n /**\n * !#en\n * Trigger an event directly with the event name and necessary arguments.\n * !#zh\n * 通过事件名发送自定义事件\n *\n * @method emit\n * @param {String} type - event type\n * @param {*} [arg1] - First argument in callback\n * @param {*} [arg2] - Second argument in callback\n * @param {*} [arg3] - Third argument in callback\n * @param {*} [arg4] - Fourth argument in callback\n * @param {*} [arg5] - Fifth argument in callback\n * @example\n *\n * eventTarget.emit('fire', event);\n * eventTarget.emit('fire', message, emitter);\n */\n emit (type, arg1, arg2, arg3, arg4, arg5) {\n if (this._bubblingListeners) {\n this._bubblingListeners.emit(type, arg1, arg2, arg3, arg4, arg5);\n }\n },\n\n /**\n * !#en\n * Dispatches an event into the event flow.\n * The event target is the EventTarget object upon which the dispatchEvent() method is called.\n * !#zh 分发事件到事件流中。\n *\n * @method dispatchEvent\n * @param {Event} event - The Event object that is dispatched into the event flow\n */\n dispatchEvent (event) {\n _doDispatchEvent(this, event);\n _cachedArray.length = 0;\n },\n\n /**\n * !#en Pause node related system events registered with the current Node. Node system events includes touch and mouse events.\n * If recursive is set to true, then this API will pause the node system events for the node and all nodes in its sub node tree.\n * Reference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/\n * !#zh 暂停当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。\n * 如果传递 recursive 为 true,那么这个 API 将暂停本节点和它的子树上所有节点的节点系统事件。\n * 参考:https://www.cocos.com/docs/creator/scripting/internal-events.html\n * @method pauseSystemEvents\n * @param {Boolean} recursive - Whether to pause node system events on the sub node tree.\n * @example\n * node.pauseSystemEvents(true);\n */\n pauseSystemEvents (recursive) {\n eventManager.pauseTarget(this, recursive);\n },\n\n /**\n * !#en Resume node related system events registered with the current Node. Node system events includes touch and mouse events.\n * If recursive is set to true, then this API will resume the node system events for the node and all nodes in its sub node tree.\n * Reference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/\n * !#zh 恢复当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。\n * 如果传递 recursive 为 true,那么这个 API 将恢复本节点和它的子树上所有节点的节点系统事件。\n * 参考:https://www.cocos.com/docs/creator/scripting/internal-events.html\n * @method resumeSystemEvents\n * @param {Boolean} recursive - Whether to resume node system events on the sub node tree.\n * @example\n * node.resumeSystemEvents(true);\n */\n resumeSystemEvents (recursive) {\n eventManager.resumeTarget(this, recursive);\n },\n\n _hitTest (point, listener) {\n let w = this._contentSize.width,\n h = this._contentSize.height,\n cameraPt = _htVec3a,\n testPt = _htVec3b;\n\n let camera = cc.Camera.findCamera(this);\n if (camera) {\n camera.getScreenToWorldPoint(point, cameraPt);\n }\n else {\n cameraPt.set(point);\n }\n\n this._updateWorldMatrix();\n // If scale is 0, it can't be hit.\n if (!Mat4.invert(_mat4_temp, this._worldMatrix)) {\n return false;\n }\n Vec2.transformMat4(testPt, cameraPt, _mat4_temp);\n testPt.x += this._anchorPoint.x * w;\n testPt.y += this._anchorPoint.y * h;\n\n let hit = false;\n if (testPt.x >= 0 && testPt.y >= 0 && testPt.x <= w && testPt.y <= h) {\n hit = true;\n if (listener && listener.mask) {\n let mask = listener.mask;\n let parent = this;\n let length = mask ? mask.length : 0;\n // find mask parent, should hit test it\n for (let i = 0, j = 0; parent && j < length; ++i, parent = parent.parent) {\n let temp = mask[j];\n if (i === temp.index) {\n if (parent === temp.node) {\n let comp = parent.getComponent(cc.Mask);\n if (comp && comp._enabled && !comp._hitTest(cameraPt)) {\n hit = false;\n break\n }\n\n j++;\n } else {\n // mask parent no longer exists\n mask.length = j;\n break\n }\n } else if (i > temp.index) {\n // mask parent no longer exists\n mask.length = j;\n break\n }\n }\n }\n }\n\n return hit;\n },\n\n /**\n * Get all the targets listening to the supplied type of event in the target's capturing phase.\n * The capturing phase comprises the journey from the root to the last node BEFORE the event target's node.\n * The result should save in the array parameter, and MUST SORT from child nodes to parent nodes.\n *\n * Subclasses can override this method to make event propagable.\n * @method _getCapturingTargets\n * @private\n * @param {String} type - the event type\n * @param {Array} array - the array to receive targets\n * @example {@link cocos2d/core/event/_getCapturingTargets.js}\n */\n _getCapturingTargets (type, array) {\n var parent = this.parent;\n while (parent) {\n if (parent._capturingListeners && parent._capturingListeners.hasEventListener(type)) {\n array.push(parent);\n }\n parent = parent.parent;\n }\n },\n\n /**\n * Get all the targets listening to the supplied type of event in the target's bubbling phase.\n * The bubbling phase comprises any SUBSEQUENT nodes encountered on the return trip to the root of the tree.\n * The result should save in the array parameter, and MUST SORT from child nodes to parent nodes.\n *\n * Subclasses can override this method to make event propagable.\n * @method _getBubblingTargets\n * @private\n * @param {String} type - the event type\n * @param {Array} array - the array to receive targets\n */\n _getBubblingTargets (type, array) {\n var parent = this.parent;\n while (parent) {\n if (parent._bubblingListeners && parent._bubblingListeners.hasEventListener(type)) {\n array.push(parent);\n }\n parent = parent.parent;\n }\n },\n\n// ACTIONS\n /**\n * !#en\n * Executes an action, and returns the action that is executed. \n * The node becomes the action's target. Refer to cc.Action's getTarget() \n * Calling runAction while the node is not active won't have any effect. \n * Note:You shouldn't modify the action after runAction, that won't take any effect. \n * if you want to modify, when you define action plus.\n * !#zh\n * 执行并返回该执行的动作。该节点将会变成动作的目标。 \n * 调用 runAction 时,节点自身处于不激活状态将不会有任何效果。 \n * 注意:你不应该修改 runAction 后的动作,将无法发挥作用,如果想进行修改,请在定义 action 时加入。\n * @method runAction\n * @param {Action} action\n * @return {Action} An Action pointer\n * @example\n * var action = cc.scaleTo(0.2, 1, 0.6);\n * node.runAction(action);\n * node.runAction(action).repeatForever(); // fail\n * node.runAction(action.repeatForever()); // right\n */\n runAction: ActionManagerExist ? function (action) {\n if (!this.active)\n return;\n cc.assertID(action, 1618);\n let am = cc.director.getActionManager();\n if (!am._suppressDeprecation) {\n am._suppressDeprecation = true;\n cc.warnID(1639);\n }\n am.addAction(action, this, false);\n return action;\n } : emptyFunc,\n\n /**\n * !#en Pause all actions running on the current node. Equals to `cc.director.getActionManager().pauseTarget(node)`.\n * !#zh 暂停本节点上所有正在运行的动作。和 `cc.director.getActionManager().pauseTarget(node);` 等价。\n * @method pauseAllActions\n * @example\n * node.pauseAllActions();\n */\n pauseAllActions: ActionManagerExist ? function () {\n cc.director.getActionManager().pauseTarget(this);\n } : emptyFunc,\n\n /**\n * !#en Resume all paused actions on the current node. Equals to `cc.director.getActionManager().resumeTarget(node)`.\n * !#zh 恢复运行本节点上所有暂停的动作。和 `cc.director.getActionManager().resumeTarget(node);` 等价。\n * @method resumeAllActions\n * @example\n * node.resumeAllActions();\n */\n resumeAllActions: ActionManagerExist ? function () {\n cc.director.getActionManager().resumeTarget(this);\n } : emptyFunc,\n\n /**\n * !#en Stops and removes all actions from the running action list .\n * !#zh 停止并且移除所有正在运行的动作列表。\n * @method stopAllActions\n * @example\n * node.stopAllActions();\n */\n stopAllActions: ActionManagerExist ? function () {\n cc.director.getActionManager().removeAllActionsFromTarget(this);\n } : emptyFunc,\n\n /**\n * !#en Stops and removes an action from the running action list.\n * !#zh 停止并移除指定的动作。\n * @method stopAction\n * @param {Action} action An action object to be removed.\n * @example\n * var action = cc.scaleTo(0.2, 1, 0.6);\n * node.stopAction(action);\n */\n stopAction: ActionManagerExist ? function (action) {\n cc.director.getActionManager().removeAction(action);\n } : emptyFunc,\n\n /**\n * !#en Removes an action from the running action list by its tag.\n * !#zh 停止并且移除指定标签的动作。\n * @method stopActionByTag\n * @param {Number} tag A tag that indicates the action to be removed.\n * @example\n * node.stopActionByTag(1);\n */\n stopActionByTag: ActionManagerExist ? function (tag) {\n if (tag === cc.Action.TAG_INVALID) {\n cc.logID(1612);\n return;\n }\n cc.director.getActionManager().removeActionByTag(tag, this);\n } : emptyFunc,\n\n /**\n * !#en Returns an action from the running action list by its tag.\n * !#zh 通过标签获取指定动作。\n * @method getActionByTag\n * @see cc.Action#getTag and cc.Action#setTag\n * @param {Number} tag\n * @return {Action} The action object with the given tag.\n * @example\n * var action = node.getActionByTag(1);\n */\n getActionByTag: ActionManagerExist ? function (tag) {\n if (tag === cc.Action.TAG_INVALID) {\n cc.logID(1613);\n return null;\n }\n return cc.director.getActionManager().getActionByTag(tag, this);\n } : function () {\n return null;\n },\n\n /**\n * !#en\n * Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). \n * Composable actions are counted as 1 action. Example: \n * If you are running 1 Sequence of 7 actions, it will return 1. \n * If you are running 7 Sequences of 2 actions, it will return 7.
\n * !#zh\n * 获取运行着的动作加上正在调度运行的动作的总数。 \n * 例如: \n * - 如果你正在运行 7 个动作中的 1 个 Sequence,它将返回 1。 \n * - 如果你正在运行 2 个动作中的 7 个 Sequence,它将返回 7。 \n *\n * @method getNumberOfRunningActions\n * @return {Number} The number of actions that are running plus the ones that are schedule to run\n * @example\n * var count = node.getNumberOfRunningActions();\n * cc.log(\"Running Action Count: \" + count);\n */\n getNumberOfRunningActions: ActionManagerExist ? function () {\n return cc.director.getActionManager().getNumberOfRunningActionsInTarget(this);\n } : function () {\n return 0;\n },\n\n\n// TRANSFORM RELATED\n /**\n * !#en\n * Returns a copy of the position (x, y, z) of the node in its parent's coordinates.\n * You can pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values.\n * !#zh\n * 获取节点在父节点坐标系中的位置(x, y, z)。\n * 你可以传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。\n * @method getPosition\n * @param {Vec2|Vec3} [out] - The return value to receive position\n * @return {Vec2|Vec3} The position (x, y, z) of the node in its parent's coordinates\n * @example\n * cc.log(\"Node Position: \" + node.getPosition());\n */\n getPosition (out) {\n out = out || new Vec3();\n return Trs.toPosition(out, this._trs);\n },\n\n /**\n * !#en\n * Sets the position (x, y, z) of the node in its parent's coordinates. \n * Usually we use cc.v2(x, y) to compose cc.Vec2 object, in this case, position.z will become 0. \n * and passing two numbers (x, y) is more efficient than passing cc.Vec2 object, in this case, position.z will remain unchanged.\n * For 3D node we can use cc.v3(x, y, z) to compose cc.Vec3 object, \n * and passing three numbers (x, y, z) is more efficient than passing cc.Vec3 object.\n * !#zh\n * 设置节点在父节点坐标系中的位置。 \n * 可以通过下面的方式设置坐标点: \n * 1. 传入 2 个数值 x, y (此时不会改变 position.z 的值)。 \n * 2. 传入 cc.v2(x, y) 类型为 cc.Vec2 的对象 (此时 position.z 的值将被设置为0)。\n * 3. 对于 3D 节点可以传入 3 个数值 x, y, z。 \n * 4. 对于 3D 节点可以传入 cc.v3(x, y, z) 类型为 cc.Vec3 的对象。\n * @method setPosition\n * @param {Vec2|Vec3|Number} x - X coordinate for position or the position object\n * @param {Number} [y] - Y coordinate for position\n * @param {Number} [z] - Z coordinate for position\n */\n setPosition (newPosOrX, y, z) {\n let x;\n if (y === undefined) {\n x = newPosOrX.x;\n y = newPosOrX.y;\n z = newPosOrX.z;\n }\n else {\n x = newPosOrX;\n }\n\n let trs = this._trs;\n\n if (z === undefined) {\n z = trs[2];\n }\n\n if (trs[0] === x && trs[1] === y && trs[2] === z) {\n return;\n }\n\n if (CC_EDITOR) {\n var oldPosition = new cc.Vec3(trs[0], trs[1], trs[2]);\n }\n\n trs[0] = x;\n trs[1] = y;\n trs[2] = z;\n\n this.setLocalDirty(LocalDirtyFlag.ALL_POSITION);\n !CC_NATIVERENDERER && (this._renderFlag |= RenderFlow.FLAG_WORLD_TRANSFORM);\n\n // fast check event\n if (this._eventMask & POSITION_ON) {\n if (CC_EDITOR) {\n this.emit(EventType.POSITION_CHANGED, oldPosition);\n }\n else {\n this.emit(EventType.POSITION_CHANGED);\n }\n }\n },\n\n /**\n * !#en\n * Returns the scale factor of the node.\n * Need pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values.\n * !#zh 获取节点的缩放,需要传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。\n * @method getScale\n * @param {Vec2|Vec3} out\n * @return {Vec2|Vec3} The scale factor\n * @example\n * cc.log(\"Node Scale: \" + node.getScale(cc.v3()));\n */\n getScale (out) {\n if (out !== undefined) {\n return Trs.toScale(out, this._trs);\n }\n else {\n cc.errorID(1400, 'cc.Node.getScale', 'cc.Node.scale or cc.Node.getScale(cc.Vec3)');\n return this._trs[7];\n }\n },\n\n /**\n * !#en\n * Sets the scale of axis in local coordinates of the node.\n * You can operate 2 axis in 2D node, and 3 axis in 3D node.\n * When only (x, y) is passed, the value of scale.z will not be changed.\n * When a Vec2 is passed in, the value of scale.z will be set to 0.\n * !#zh\n * 设置节点在本地坐标系中坐标轴上的缩放比例。\n * 2D 节点可以操作两个坐标轴,而 3D 节点可以操作三个坐标轴。\n * 当只传入 (x, y) 时,scale.z 的值不会被改变。\n * 当只传入 Vec2 对象时,scale.z 的值将被设置为0。\n * @method setScale\n * @param {Number|Vec2|Vec3} x - scaleX or scale object\n * @param {Number} [y]\n * @param {Number} [z]\n * @example\n * node.setScale(cc.v2(2, 2)); // Notice: scaleZ will be 0\n * node.setScale(cc.v3(2, 2, 2)); // for 3D node\n * node.setScale(2);\n */\n setScale (newScaleOrX, y, z) {\n let x;\n // only one parameter, and it's a Vec2/Vec3:\n if (newScaleOrX && typeof newScaleOrX !== 'number') {\n x = newScaleOrX.x;\n y = newScaleOrX.y;\n z = newScaleOrX.z;\n }\n // only one parameter, and it's a number:\n else if (newScaleOrX !== undefined && y === undefined) {\n x = newScaleOrX;\n y = newScaleOrX;\n z = newScaleOrX;\n }\n // two or three paramters:\n else {\n x = newScaleOrX;\n }\n\n let trs = this._trs;\n\n if (z === undefined) {\n z = trs[9];\n }\n\n if (trs[7] !== x || trs[8] !== y || trs[9] !== z) {\n trs[7] = x;\n trs[8] = y;\n trs[9] = z;\n this.setLocalDirty(LocalDirtyFlag.ALL_SCALE);\n !CC_NATIVERENDERER && (this._renderFlag |= RenderFlow.FLAG_TRANSFORM);\n\n if (this._eventMask & SCALE_ON) {\n this.emit(EventType.SCALE_CHANGED);\n }\n }\n },\n\n /**\n * !#en\n * Get rotation of node (in quaternion).\n * Need pass a cc.Quat as the argument to receive the return values.\n * !#zh\n * 获取该节点的 quaternion 旋转角度,需要传一个 cc.Quat 作为参数来接收返回值。\n * @method getRotation\n * @param {Quat} out\n * @return {Quat} Quaternion object represents the rotation\n */\n getRotation (out) {\n if (out instanceof Quat) {\n return Trs.toRotation(out, this._trs);\n }\n else {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.getRotation()` is deprecated since v2.1.0, please use `-cc.Node.angle` instead. (`this.node.getRotation()` -> `-this.node.angle`)\");\n }\n return -this.angle;\n }\n },\n\n /**\n * !#en Set rotation of node (in quaternion).\n * !#zh 设置该节点的 quaternion 旋转角度。\n * @method setRotation\n * @param {cc.Quat|Number} quat Quaternion object represents the rotation or the x value of quaternion\n * @param {Number} [y] y value of quternion\n * @param {Number} [z] z value of quternion\n * @param {Number} [w] w value of quternion\n */\n setRotation (rotation, y, z, w) {\n if (typeof rotation === 'number' && y === undefined) {\n if (CC_DEBUG) {\n cc.warn(\"`cc.Node.setRotation(degree)` is deprecated since v2.1.0, please set `-cc.Node.angle` instead. (`this.node.setRotation(x)` -> `this.node.angle = -x`)\");\n }\n this.angle = -rotation;\n }\n else {\n let x = rotation;\n if (y === undefined) {\n x = rotation.x;\n y = rotation.y;\n z = rotation.z;\n w = rotation.w;\n }\n\n let trs = this._trs;\n if (trs[3] !== x || trs[4] !== y || trs[5] !== z || trs[6] !== w) {\n trs[3] = x;\n trs[4] = y;\n trs[5] = z;\n trs[6] = w;\n this.setLocalDirty(LocalDirtyFlag.ALL_ROTATION);\n\n if (this._eventMask & ROTATION_ON) {\n this.emit(EventType.ROTATION_CHANGED);\n }\n\n if (CC_EDITOR) {\n this._toEuler();\n }\n }\n }\n },\n\n /**\n * !#en\n * Returns a copy the untransformed size of the node. \n * The contentSize remains the same no matter the node is scaled or rotated. \n * All nodes has a size. Layer and Scene has the same size of the screen by default. \n * !#zh 获取节点自身大小,不受该节点是否被缩放或者旋转的影响。\n * @method getContentSize\n * @return {Size} The untransformed size of the node.\n * @example\n * cc.log(\"Content Size: \" + node.getContentSize());\n */\n getContentSize () {\n return cc.size(this._contentSize.width, this._contentSize.height);\n },\n\n /**\n * !#en\n * Sets the untransformed size of the node. \n * The contentSize remains the same no matter the node is scaled or rotated. \n * All nodes has a size. Layer and Scene has the same size of the screen.\n * !#zh 设置节点原始大小,不受该节点是否被缩放或者旋转的影响。\n * @method setContentSize\n * @param {Size|Number} size - The untransformed size of the node or The untransformed size's width of the node.\n * @param {Number} [height] - The untransformed size's height of the node.\n * @example\n * node.setContentSize(cc.size(100, 100));\n * node.setContentSize(100, 100);\n */\n setContentSize (size, height) {\n var locContentSize = this._contentSize;\n var clone;\n if (height === undefined) {\n if ((size.width === locContentSize.width) && (size.height === locContentSize.height))\n return;\n if (CC_EDITOR) {\n clone = cc.size(locContentSize.width, locContentSize.height);\n }\n locContentSize.width = size.width;\n locContentSize.height = size.height;\n } else {\n if ((size === locContentSize.width) && (height === locContentSize.height))\n return;\n if (CC_EDITOR) {\n clone = cc.size(locContentSize.width, locContentSize.height);\n }\n locContentSize.width = size;\n locContentSize.height = height;\n }\n if (this._eventMask & SIZE_ON) {\n if (CC_EDITOR) {\n this.emit(EventType.SIZE_CHANGED, clone);\n }\n else {\n this.emit(EventType.SIZE_CHANGED);\n }\n }\n },\n\n /**\n * !#en\n * Returns a copy of the anchor point. \n * Anchor point is the point around which all transformations and positioning manipulations take place. \n * It's like a pin in the node where it is \"attached\" to its parent. \n * The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. \n * But you can use values higher than (1,1) and lower than (0,0) too. \n * The default anchor point is (0.5,0.5), so it starts at the center of the node.\n * !#zh\n * 获取节点锚点,用百分比表示。 \n * 锚点应用于所有变换和坐标点的操作,它就像在节点上连接其父节点的大头针。 \n * 锚点是标准化的,就像百分比一样。(0,0) 表示左下角,(1,1) 表示右上角。 \n * 但是你可以使用比(1,1)更高的值或者比(0,0)更低的值。 \n * 默认的锚点是(0.5,0.5),因此它开始于节点的中心位置。 \n * 注意:Creator 中的锚点仅用于定位所在的节点,子节点的定位不受影响。\n * @method getAnchorPoint\n * @return {Vec2} The anchor point of node.\n * @example\n * cc.log(\"Node AnchorPoint: \" + node.getAnchorPoint());\n */\n getAnchorPoint () {\n return cc.v2(this._anchorPoint);\n },\n\n /**\n * !#en\n * Sets the anchor point in percent. \n * anchor point is the point around which all transformations and positioning manipulations take place. \n * It's like a pin in the node where it is \"attached\" to its parent. \n * The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner. \n * But you can use values higher than (1,1) and lower than (0,0) too. \n * The default anchor point is (0.5,0.5), so it starts at the center of the node.\n * !#zh\n * 设置锚点的百分比。 \n * 锚点应用于所有变换和坐标点的操作,它就像在节点上连接其父节点的大头针。 \n * 锚点是标准化的,就像百分比一样。(0,0) 表示左下角,(1,1) 表示右上角。 \n * 但是你可以使用比(1,1)更高的值或者比(0,0)更低的值。 \n * 默认的锚点是(0.5,0.5),因此它开始于节点的中心位置。 \n * 注意:Creator 中的锚点仅用于定位所在的节点,子节点的定位不受影响。\n * @method setAnchorPoint\n * @param {Vec2|Number} point - The anchor point of node or The x axis anchor of node.\n * @param {Number} [y] - The y axis anchor of node.\n * @example\n * node.setAnchorPoint(cc.v2(1, 1));\n * node.setAnchorPoint(1, 1);\n */\n setAnchorPoint (point, y) {\n var locAnchorPoint = this._anchorPoint;\n if (y === undefined) {\n if ((point.x === locAnchorPoint.x) && (point.y === locAnchorPoint.y))\n return;\n locAnchorPoint.x = point.x;\n locAnchorPoint.y = point.y;\n } else {\n if ((point === locAnchorPoint.x) && (y === locAnchorPoint.y))\n return;\n locAnchorPoint.x = point;\n locAnchorPoint.y = y;\n }\n this.setLocalDirty(LocalDirtyFlag.ALL_POSITION);\n if (this._eventMask & ANCHOR_ON) {\n this.emit(EventType.ANCHOR_CHANGED);\n }\n },\n\n /*\n * Transforms position from world space to local space.\n * @method _invTransformPoint\n * @param {Vec3} out\n * @param {Vec3} vec3\n */\n _invTransformPoint (out, pos) {\n if (this._parent) {\n this._parent._invTransformPoint(out, pos);\n } else {\n Vec3.copy(out, pos);\n }\n\n let ltrs = this._trs;\n // out = parent_inv_pos - pos\n Trs.toPosition(_tpVec3a, ltrs);\n Vec3.sub(out, out, _tpVec3a);\n\n // out = inv(rot) * out\n Trs.toRotation(_tpQuata, ltrs);\n Quat.conjugate(_tpQuatb, _tpQuata);\n Vec3.transformQuat(out, out, _tpQuatb);\n\n // out = (1/scale) * out\n Trs.toScale(_tpVec3a, ltrs);\n Vec3.inverseSafe(_tpVec3b, _tpVec3a);\n Vec3.mul(out, out, _tpVec3b);\n\n return out;\n },\n\n /*\n * Calculate and return world position.\n * This is not a public API yet, its usage could be updated\n * @method getWorldPosition\n * @param {Vec3} out\n * @return {Vec3}\n */\n getWorldPosition (out) {\n Trs.toPosition(out, this._trs);\n let curr = this._parent;\n let ltrs;\n while (curr) {\n ltrs = curr._trs;\n // out = parent_scale * pos\n Trs.toScale(_gwpVec3, ltrs);\n Vec3.mul(out, out, _gwpVec3);\n // out = parent_quat * out\n Trs.toRotation(_gwpQuat, ltrs);\n Vec3.transformQuat(out, out, _gwpQuat);\n // out = out + pos\n Trs.toPosition(_gwpVec3, ltrs);\n Vec3.add(out, out, _gwpVec3);\n curr = curr._parent;\n }\n return out;\n },\n\n /*\n * Set world position.\n * This is not a public API yet, its usage could be updated\n * @method setWorldPosition\n * @param {Vec3} pos\n */\n setWorldPosition (pos) {\n let ltrs = this._trs;\n if (CC_EDITOR) {\n var oldPosition = new cc.Vec3(ltrs[0], ltrs[1], ltrs[2]);\n }\n // NOTE: this is faster than invert world matrix and transform the point\n if (this._parent) {\n this._parent._invTransformPoint(_swpVec3, pos);\n }\n else {\n Vec3.copy(_swpVec3, pos);\n }\n Trs.fromPosition(ltrs, _swpVec3);\n this.setLocalDirty(LocalDirtyFlag.ALL_POSITION);\n\n // fast check event\n if (this._eventMask & POSITION_ON) {\n // send event\n if (CC_EDITOR) {\n this.emit(EventType.POSITION_CHANGED, oldPosition);\n }\n else {\n this.emit(EventType.POSITION_CHANGED);\n }\n }\n },\n\n /*\n * Calculate and return world rotation\n * This is not a public API yet, its usage could be updated\n * @method getWorldRotation\n * @param {Quat} out\n * @return {Quat}\n */\n getWorldRotation (out) {\n Trs.toRotation(_gwrQuat, this._trs);\n Quat.copy(out, _gwrQuat);\n let curr = this._parent;\n while (curr) {\n Trs.toRotation(_gwrQuat, curr._trs);\n Quat.mul(out, _gwrQuat, out);\n curr = curr._parent;\n }\n return out;\n },\n\n /*\n * Set world rotation with quaternion\n * This is not a public API yet, its usage could be updated\n * @method setWorldRotation\n * @param {Quat} val\n */\n setWorldRotation (val) {\n if (this._parent) {\n this._parent.getWorldRotation(_swrQuat);\n Quat.conjugate(_swrQuat, _swrQuat);\n Quat.mul(_swrQuat, _swrQuat, val);\n }\n else {\n Quat.copy(_swrQuat, val);\n }\n Trs.fromRotation(this._trs, _swrQuat);\n if (CC_EDITOR) {\n this._toEuler();\n }\n this.setLocalDirty(LocalDirtyFlag.ALL_ROTATION);\n },\n\n /*\n * Calculate and return world scale\n * This is not a public API yet, its usage could be updated\n * @method getWorldScale\n * @param {Vec3} out\n * @return {Vec3}\n */\n getWorldScale (out) {\n Trs.toScale(_gwsVec3, this._trs);\n Vec3.copy(out, _gwsVec3);\n let curr = this._parent;\n while (curr) {\n Trs.toScale(_gwsVec3, curr._trs);\n Vec3.mul(out, out, _gwsVec3);\n curr = curr._parent;\n }\n return out;\n },\n\n /*\n * Set world scale with vec3\n * This is not a public API yet, its usage could be updated\n * @method setWorldScale\n * @param {Vec3} scale\n */\n setWorldScale (scale) {\n if (this._parent) {\n this._parent.getWorldScale(_swsVec3);\n Vec3.div(_swsVec3, scale, _swsVec3);\n }\n else {\n Vec3.copy(_swsVec3, scale);\n }\n Trs.fromScale(this._trs, _swsVec3);\n this.setLocalDirty(LocalDirtyFlag.ALL_SCALE);\n },\n\n getWorldRT (out) {\n let opos = _gwrtVec3a;\n let orot = _gwrtQuata;\n let ltrs = this._trs;\n Trs.toPosition(opos, ltrs);\n Trs.toRotation(orot, ltrs);\n\n let curr = this._parent;\n while (curr) {\n ltrs = curr._trs;\n // opos = parent_lscale * lpos\n Trs.toScale(_gwrtVec3b, ltrs);\n Vec3.mul(opos, opos, _gwrtVec3b);\n // opos = parent_lrot * opos\n Trs.toRotation(_gwrtQuatb, ltrs);\n Vec3.transformQuat(opos, opos, _gwrtQuatb);\n // opos = opos + lpos\n Trs.toPosition(_gwrtVec3b, ltrs);\n Vec3.add(opos, opos, _gwrtVec3b);\n // orot = lrot * orot\n Quat.mul(orot, _gwrtQuatb, orot);\n curr = curr._parent;\n }\n Mat4.fromRT(out, orot, opos);\n return out;\n },\n\n /**\n * !#en Set rotation by lookAt target point, normally used by Camera Node\n * !#zh 通过观察目标来设置 rotation,一般用于 Camera Node 上\n * @method lookAt\n * @param {Vec3} pos\n * @param {Vec3} [up] - default is (0,1,0)\n */\n lookAt (pos, up) {\n this.getWorldPosition(_laVec3);\n Vec3.sub(_laVec3, _laVec3, pos); // NOTE: we use -z for view-dir\n Vec3.normalize(_laVec3, _laVec3);\n Quat.fromViewUp(_laQuat, _laVec3, up);\n\n this.setWorldRotation(_laQuat);\n },\n\n _updateLocalMatrix: updateLocalMatrix2D,\n\n _calculWorldMatrix () {\n // Avoid as much function call as possible\n if (this._localMatDirty & LocalDirtyFlag.TRSS) {\n this._updateLocalMatrix();\n }\n\n // Assume parent world matrix is correct\n let parent = this._parent;\n if (parent) {\n this._mulMat(this._worldMatrix, parent._worldMatrix, this._matrix);\n }\n else {\n Mat4.copy(this._worldMatrix, this._matrix);\n }\n this._worldMatDirty = false;\n },\n\n _mulMat: mulMat2D,\n\n _updateWorldMatrix () {\n if (this._parent) {\n this._parent._updateWorldMatrix();\n }\n if (this._worldMatDirty) {\n this._calculWorldMatrix();\n // Sync dirty to children\n let children = this._children;\n for (let i = 0, l = children.length; i < l; i++) {\n children[i]._worldMatDirty = true;\n }\n }\n },\n\n setLocalDirty (flag) {\n this._localMatDirty |= flag;\n this._worldMatDirty = true;\n\n if (flag === LocalDirtyFlag.ALL_POSITION || flag === LocalDirtyFlag.POSITION) {\n this._renderFlag |= RenderFlow.FLAG_WORLD_TRANSFORM;\n }\n else {\n this._renderFlag |= RenderFlow.FLAG_TRANSFORM;\n }\n },\n\n setWorldDirty () {\n this._worldMatDirty = true;\n },\n\n /**\n * !#en\n * Get the local transform matrix (4x4), based on parent node coordinates\n * !#zh 返回局部空间坐标系的矩阵,基于父节点坐标系。\n * @method getLocalMatrix\n * @param {Mat4} out The matrix object to be filled with data\n * @return {Mat4} Same as the out matrix object\n * @example\n * let mat4 = cc.mat4();\n * node.getLocalMatrix(mat4);\n */\n getLocalMatrix (out) {\n this._updateLocalMatrix();\n return Mat4.copy(out, this._matrix);\n },\n\n /**\n * !#en\n * Get the world transform matrix (4x4)\n * !#zh 返回世界空间坐标系的矩阵。\n * @method getWorldMatrix\n * @param {Mat4} out The matrix object to be filled with data\n * @return {Mat4} Same as the out matrix object\n * @example\n * let mat4 = cc.mat4();\n * node.getWorldMatrix(mat4);\n */\n getWorldMatrix (out) {\n this._updateWorldMatrix();\n return Mat4.copy(out, this._worldMatrix);\n },\n\n /**\n * !#en\n * Converts a Point to node (local) space coordinates.\n * !#zh\n * 将一个点转换到节点 (局部) 空间坐标系。\n * @method convertToNodeSpaceAR\n * @param {Vec3|Vec2} worldPoint\n * @param {Vec3|Vec2} [out]\n * @return {Vec3|Vec2}\n * @typescript\n * convertToNodeSpaceAR(worldPoint: T, out?: T): T\n * @example\n * var newVec2 = node.convertToNodeSpaceAR(cc.v2(100, 100));\n * var newVec3 = node.convertToNodeSpaceAR(cc.v3(100, 100, 100));\n */\n convertToNodeSpaceAR (worldPoint, out) {\n this._updateWorldMatrix();\n Mat4.invert(_mat4_temp, this._worldMatrix);\n\n if (worldPoint instanceof cc.Vec2) {\n out = out || new cc.Vec2();\n return Vec2.transformMat4(out, worldPoint, _mat4_temp);\n }\n else {\n out = out || new cc.Vec3();\n return Vec3.transformMat4(out, worldPoint, _mat4_temp);\n }\n },\n\n /**\n * !#en\n * Converts a Point in node coordinates to world space coordinates.\n * !#zh\n * 将节点坐标系下的一个点转换到世界空间坐标系。\n * @method convertToWorldSpaceAR\n * @param {Vec3|Vec2} nodePoint\n * @param {Vec3|Vec2} [out]\n * @return {Vec3|Vec2}\n * @typescript\n * convertToWorldSpaceAR(nodePoint: T, out?: T): T\n * @example\n * var newVec2 = node.convertToWorldSpaceAR(cc.v2(100, 100));\n * var newVec3 = node.convertToWorldSpaceAR(cc.v3(100, 100, 100));\n */\n convertToWorldSpaceAR (nodePoint, out) {\n this._updateWorldMatrix();\n if (nodePoint instanceof cc.Vec2) {\n out = out || new cc.Vec2();\n return Vec2.transformMat4(out, nodePoint, this._worldMatrix);\n }\n else {\n out = out || new cc.Vec3();\n return Vec3.transformMat4(out, nodePoint, this._worldMatrix);\n }\n },\n\n// OLD TRANSFORM ACCESS APIs\n /**\n * !#en Converts a Point to node (local) space coordinates then add the anchor point position.\n * So the return position will be related to the left bottom corner of the node's bounding box.\n * This equals to the API behavior of cocos2d-x, you probably want to use convertToNodeSpaceAR instead\n * !#zh 将一个点转换到节点 (局部) 坐标系,并加上锚点的坐标。 \n * 也就是说返回的坐标是相对于节点包围盒左下角的坐标。 \n * 这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToNodeSpaceAR。\n * @method convertToNodeSpace\n * @deprecated since v2.1.3\n * @param {Vec2} worldPoint\n * @return {Vec2}\n * @example\n * var newVec2 = node.convertToNodeSpace(cc.v2(100, 100));\n */\n convertToNodeSpace (worldPoint) {\n this._updateWorldMatrix();\n Mat4.invert(_mat4_temp, this._worldMatrix);\n let out = new cc.Vec2();\n Vec2.transformMat4(out, worldPoint, _mat4_temp);\n out.x += this._anchorPoint.x * this._contentSize.width;\n out.y += this._anchorPoint.y * this._contentSize.height;\n return out;\n },\n\n /**\n * !#en Converts a Point related to the left bottom corner of the node's bounding box to world space coordinates.\n * This equals to the API behavior of cocos2d-x, you probably want to use convertToWorldSpaceAR instead\n * !#zh 将一个相对于节点左下角的坐标位置转换到世界空间坐标系。\n * 这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToWorldSpaceAR\n * @method convertToWorldSpace\n * @deprecated since v2.1.3\n * @param {Vec2} nodePoint\n * @return {Vec2}\n * @example\n * var newVec2 = node.convertToWorldSpace(cc.v2(100, 100));\n */\n convertToWorldSpace (nodePoint) {\n this._updateWorldMatrix();\n let out = new cc.Vec2(\n nodePoint.x - this._anchorPoint.x * this._contentSize.width,\n nodePoint.y - this._anchorPoint.y * this._contentSize.height\n );\n return Vec2.transformMat4(out, out, this._worldMatrix);\n },\n\n /**\n * !#en\n * Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. \n * The matrix is in Pixels.\n * !#zh 返回这个将节点(局部)的空间坐标系转换成父节点的空间坐标系的矩阵。这个矩阵以像素为单位。\n * @method getNodeToParentTransform\n * @deprecated since v2.0\n * @param {AffineTransform} [out] The affine transform object to be filled with data\n * @return {AffineTransform} Same as the out affine transform object\n * @example\n * let affineTransform = cc.AffineTransform.create();\n * node.getNodeToParentTransform(affineTransform);\n */\n getNodeToParentTransform (out) {\n if (!out) {\n out = AffineTrans.identity();\n }\n this._updateLocalMatrix();\n\n var contentSize = this._contentSize;\n _vec3_temp.x = -this._anchorPoint.x * contentSize.width;\n _vec3_temp.y = -this._anchorPoint.y * contentSize.height;\n\n Mat4.copy(_mat4_temp, this._matrix);\n Mat4.transform(_mat4_temp, _mat4_temp, _vec3_temp);\n return AffineTrans.fromMat4(out, _mat4_temp);\n },\n\n /**\n * !#en\n * Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. \n * The matrix is in Pixels. \n * This method is AR (Anchor Relative).\n * !#zh\n * 返回这个将节点(局部)的空间坐标系转换成父节点的空间坐标系的矩阵。 \n * 这个矩阵以像素为单位。 \n * 该方法基于节点坐标。\n * @method getNodeToParentTransformAR\n * @deprecated since v2.0\n * @param {AffineTransform} [out] The affine transform object to be filled with data\n * @return {AffineTransform} Same as the out affine transform object\n * @example\n * let affineTransform = cc.AffineTransform.create();\n * node.getNodeToParentTransformAR(affineTransform);\n */\n getNodeToParentTransformAR (out) {\n if (!out) {\n out = AffineTrans.identity();\n }\n this._updateLocalMatrix();\n return AffineTrans.fromMat4(out, this._matrix);\n },\n\n /**\n * !#en Returns the world affine transform matrix. The matrix is in Pixels.\n * !#zh 返回节点到世界坐标系的仿射变换矩阵。矩阵单位是像素。\n * @method getNodeToWorldTransform\n * @deprecated since v2.0\n * @param {AffineTransform} [out] The affine transform object to be filled with data\n * @return {AffineTransform} Same as the out affine transform object\n * @example\n * let affineTransform = cc.AffineTransform.create();\n * node.getNodeToWorldTransform(affineTransform);\n */\n getNodeToWorldTransform (out) {\n if (!out) {\n out = AffineTrans.identity();\n }\n this._updateWorldMatrix();\n\n var contentSize = this._contentSize;\n _vec3_temp.x = -this._anchorPoint.x * contentSize.width;\n _vec3_temp.y = -this._anchorPoint.y * contentSize.height;\n\n Mat4.copy(_mat4_temp, this._worldMatrix);\n Mat4.transform(_mat4_temp, _mat4_temp, _vec3_temp);\n\n return AffineTrans.fromMat4(out, _mat4_temp);\n },\n\n /**\n * !#en\n * Returns the world affine transform matrix. The matrix is in Pixels. \n * This method is AR (Anchor Relative).\n * !#zh\n * 返回节点到世界坐标仿射变换矩阵。矩阵单位是像素。 \n * 该方法基于节点坐标。\n * @method getNodeToWorldTransformAR\n * @deprecated since v2.0\n * @param {AffineTransform} [out] The affine transform object to be filled with data\n * @return {AffineTransform} Same as the out affine transform object\n * @example\n * let affineTransform = cc.AffineTransform.create();\n * node.getNodeToWorldTransformAR(affineTransform);\n */\n getNodeToWorldTransformAR (out) {\n if (!out) {\n out = AffineTrans.identity();\n }\n this._updateWorldMatrix();\n return AffineTrans.fromMat4(out, this._worldMatrix);\n },\n\n /**\n * !#en\n * Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. \n * The matrix is in Pixels. The returned transform is readonly and cannot be changed.\n * !#zh\n * 返回将父节点的坐标系转换成节点(局部)的空间坐标系的矩阵。 \n * 该矩阵以像素为单位。返回的矩阵是只读的,不能更改。\n * @method getParentToNodeTransform\n * @deprecated since v2.0\n * @param {AffineTransform} [out] The affine transform object to be filled with data\n * @return {AffineTransform} Same as the out affine transform object\n * @example\n * let affineTransform = cc.AffineTransform.create();\n * node.getParentToNodeTransform(affineTransform);\n */\n getParentToNodeTransform (out) {\n if (!out) {\n out = AffineTrans.identity();\n }\n this._updateLocalMatrix();\n Mat4.invert(_mat4_temp, this._matrix);\n return AffineTrans.fromMat4(out, _mat4_temp);\n },\n\n /**\n * !#en Returns the inverse world affine transform matrix. The matrix is in Pixels.\n * !#en 返回世界坐标系到节点坐标系的逆矩阵。\n * @method getWorldToNodeTransform\n * @deprecated since v2.0\n * @param {AffineTransform} [out] The affine transform object to be filled with data\n * @return {AffineTransform} Same as the out affine transform object\n * @example\n * let affineTransform = cc.AffineTransform.create();\n * node.getWorldToNodeTransform(affineTransform);\n */\n getWorldToNodeTransform (out) {\n if (!out) {\n out = AffineTrans.identity();\n }\n this._updateWorldMatrix();\n Mat4.invert(_mat4_temp, this._worldMatrix);\n return AffineTrans.fromMat4(out, _mat4_temp);\n },\n\n /**\n * !#en convenience methods which take a cc.Touch instead of cc.Vec2.\n * !#zh 将触摸点转换成本地坐标系中位置。\n * @method convertTouchToNodeSpace\n * @deprecated since v2.0\n * @param {Touch} touch - The touch object\n * @return {Vec2}\n * @example\n * var newVec2 = node.convertTouchToNodeSpace(touch);\n */\n convertTouchToNodeSpace (touch) {\n return this.convertToNodeSpace(touch.getLocation());\n },\n\n /**\n * !#en converts a cc.Touch (world coordinates) into a local coordinate. This method is AR (Anchor Relative).\n * !#zh 转换一个 cc.Touch(世界坐标)到一个局部坐标,该方法基于节点坐标。\n * @method convertTouchToNodeSpaceAR\n * @deprecated since v2.0\n * @param {Touch} touch - The touch object\n * @return {Vec2}\n * @example\n * var newVec2 = node.convertTouchToNodeSpaceAR(touch);\n */\n convertTouchToNodeSpaceAR (touch) {\n return this.convertToNodeSpaceAR(touch.getLocation());\n },\n\n /**\n * !#en\n * Returns a \"local\" axis aligned bounding box of the node. \n * The returned box is relative only to its parent.\n * !#zh 返回父节坐标系下的轴向对齐的包围盒。\n * @method getBoundingBox\n * @return {Rect} The calculated bounding box of the node\n * @example\n * var boundingBox = node.getBoundingBox();\n */\n getBoundingBox () {\n this._updateLocalMatrix();\n let width = this._contentSize.width;\n let height = this._contentSize.height;\n let rect = cc.rect(\n -this._anchorPoint.x * width,\n -this._anchorPoint.y * height,\n width,\n height);\n return rect.transformMat4(rect, this._matrix);\n },\n\n /**\n * !#en\n * Returns a \"world\" axis aligned bounding box of the node. \n * The bounding box contains self and active children's world bounding box.\n * !#zh\n * 返回节点在世界坐标系下的对齐轴向的包围盒(AABB)。 \n * 该边框包含自身和已激活的子节点的世界边框。\n * @method getBoundingBoxToWorld\n * @return {Rect}\n * @example\n * var newRect = node.getBoundingBoxToWorld();\n */\n getBoundingBoxToWorld () {\n if (this._parent) {\n this._parent._updateWorldMatrix();\n return this._getBoundingBoxTo();\n }\n else {\n return this.getBoundingBox();\n }\n },\n\n _getBoundingBoxTo () {\n let width = this._contentSize.width;\n let height = this._contentSize.height;\n let rect = cc.rect(\n -this._anchorPoint.x * width,\n -this._anchorPoint.y * height,\n width,\n height);\n\n this._calculWorldMatrix();\n rect.transformMat4(rect, this._worldMatrix);\n\n //query child's BoundingBox\n if (!this._children)\n return rect;\n\n var locChildren = this._children;\n for (var i = 0; i < locChildren.length; i++) {\n var child = locChildren[i];\n if (child && child.active) {\n var childRect = child._getBoundingBoxTo();\n if (childRect)\n rect.union(rect, childRect);\n }\n }\n return rect;\n },\n\n _updateOrderOfArrival () {\n var arrivalOrder = this._parent ? ++this._parent._childArrivalOrder : 0;\n this._localZOrder = (this._localZOrder & 0xffff0000) | arrivalOrder;\n\n this.emit(EventType.SIBLING_ORDER_CHANGED);\n },\n\n /**\n * !#en\n * Adds a child to the node with z order and name.\n * !#zh\n * 添加子节点,并且可以修改该节点的 局部 Z 顺序和名字。\n * @method addChild\n * @param {Node} child - A child node\n * @param {Number} [zIndex] - Z order for drawing priority. Please refer to zIndex property\n * @param {String} [name] - A name to identify the node easily. Please refer to name property\n * @example\n * node.addChild(newNode, 1, \"node\");\n */\n addChild (child, zIndex, name) {\n if (CC_DEV && !cc.Node.isNode(child)) {\n return cc.errorID(1634, cc.js.getClassName(child));\n }\n cc.assertID(child, 1606);\n cc.assertID(child._parent === null, 1605);\n\n // invokes the parent setter\n child.parent = this;\n\n if (zIndex !== undefined) {\n child.zIndex = zIndex;\n }\n if (name !== undefined) {\n child.name = name;\n }\n },\n\n /**\n * !#en Stops all running actions and schedulers.\n * !#zh 停止所有正在播放的动作和计时器。\n * @method cleanup\n * @example\n * node.cleanup();\n */\n cleanup () {\n // actions\n ActionManagerExist && cc.director.getActionManager().removeAllActionsFromTarget(this);\n // event\n eventManager.removeListeners(this);\n\n // children\n var i, len = this._children.length, node;\n for (i = 0; i < len; ++i) {\n node = this._children[i];\n if (node)\n node.cleanup();\n }\n },\n\n /**\n * !#en Sorts the children array depends on children's zIndex and arrivalOrder,\n * normally you won't need to invoke this function.\n * !#zh 根据子节点的 zIndex 和 arrivalOrder 进行排序,正常情况下开发者不需要手动调用这个函数。\n *\n * @method sortAllChildren\n */\n sortAllChildren () {\n if (this._reorderChildDirty) {\n\n this._reorderChildDirty = false;\n\n // delay update arrivalOrder before sort children\n var _children = this._children, child;\n // reset arrivalOrder before sort children\n this._childArrivalOrder = 1;\n for (let i = 0, len = _children.length; i < len; i++) {\n child = _children[i];\n child._updateOrderOfArrival();\n }\n\n // Optimize reordering event code to fix problems with setting zindex\n // https://github.com/cocos-creator/2d-tasks/issues/1186\n eventManager._setDirtyForNode(this);\n\n if (_children.length > 1) {\n // insertion sort\n let child, child2;\n for (let i = 1, count = _children.length; i < count; i++) {\n child = _children[i];\n let j = i;\n for (; j > 0 &&\n (child2 = _children[j - 1])._localZOrder > child._localZOrder; j--) {\n _children[j] = child2;\n }\n _children[j] = child;\n }\n\n this.emit(EventType.CHILD_REORDER, this);\n }\n cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this);\n }\n },\n\n _delaySort () {\n if (!this._reorderChildDirty) {\n this._reorderChildDirty = true;\n cc.director.__fastOn(cc.Director.EVENT_AFTER_UPDATE, this.sortAllChildren, this);\n }\n },\n\n _restoreProperties: CC_EDITOR && function () {\n /*\n * TODO: Refine this code after completing undo/redo 2.0.\n * The node will be destroyed when deleting in the editor,\n * but it will be reserved and reused for undo.\n */\n\n // restore 3d node\n this.is3DNode = this.is3DNode;\n\n if (!this._matrix) {\n this._matrix = cc.mat4(this._spaceInfo.localMat);\n Mat4.identity(this._matrix);\n }\n if (!this._worldMatrix) {\n this._worldMatrix = cc.mat4(this._spaceInfo.worldMat);\n Mat4.identity(this._worldMatrix);\n }\n\n this._localMatDirty = LocalDirtyFlag.ALL;\n this._worldMatDirty = true;\n\n this._fromEuler();\n\n this._renderFlag |= RenderFlow.FLAG_TRANSFORM;\n if (this._renderComponent) {\n this._renderComponent.markForRender(true);\n }\n\n if (this._children.length > 0) {\n this._renderFlag |= RenderFlow.FLAG_CHILDREN;\n }\n },\n\n onRestore: CC_EDITOR && function () {\n this._onRestoreBase();\n\n this._restoreProperties();\n\n var actionManager = cc.director.getActionManager();\n if (this._activeInHierarchy) {\n actionManager && actionManager.resumeTarget(this);\n eventManager.resumeTarget(this);\n }\n else {\n actionManager && actionManager.pauseTarget(this);\n eventManager.pauseTarget(this);\n }\n },\n\n};\n\nif (CC_EDITOR) {\n // deprecated, only used to import old data in editor\n js.mixin(NodeDefines.properties, {\n _scaleX: {\n default: undefined,\n type: cc.Float,\n editorOnly: true\n },\n _scaleY: {\n default: undefined,\n type: cc.Float,\n editorOnly: true\n },\n });\n}\n\nlet Node = cc.Class(NodeDefines);\n\n// 3D Node Property\n\n\n// Node Event\n\n/**\n * !#en\n * The position changing event, you can listen to this event through the statement this.node.on(cc.Node.EventType.POSITION_CHANGED, callback, this);\n * !#zh\n * 位置变动监听事件, 通过 this.node.on(cc.Node.EventType.POSITION_CHANGED, callback, this); 进行监听。\n * @event position-changed\n * @param {Vec2} oldPos - The old position, but this parameter is only available in editor!\n */\n/**\n * !#en\n * The size changing event, you can listen to this event through the statement this.node.on(cc.Node.EventType.SIZE_CHANGED, callback, this);\n * !#zh\n * 尺寸变动监听事件,通过 this.node.on(cc.Node.EventType.SIZE_CHANGED, callback, this); 进行监听。\n * @event size-changed\n * @param {Size} oldSize - The old size, but this parameter is only available in editor!\n */\n/**\n * !#en\n * The anchor changing event, you can listen to this event through the statement this.node.on(cc.Node.EventType.ANCHOR_CHANGED, callback, this);\n * !#zh\n * 锚点变动监听事件,通过 this.node.on(cc.Node.EventType.ANCHOR_CHANGED, callback, this); 进行监听。\n * @event anchor-changed\n */\n/**\n * !#en\n * The adding child event, you can listen to this event through the statement this.node.on(cc.Node.EventType.CHILD_ADDED, callback, this);\n * !#zh\n * 增加子节点监听事件,通过 this.node.on(cc.Node.EventType.CHILD_ADDED, callback, this); 进行监听。\n * @event child-added\n * @param {Node} child - child which have been added\n */\n/**\n * !#en\n * The removing child event, you can listen to this event through the statement this.node.on(cc.Node.EventType.CHILD_REMOVED, callback, this);\n * !#zh\n * 删除子节点监听事件,通过 this.node.on(cc.Node.EventType.CHILD_REMOVED, callback, this); 进行监听。\n * @event child-removed\n * @param {Node} child - child which have been removed\n */\n/**\n * !#en\n * The reordering child event, you can listen to this event through the statement this.node.on(cc.Node.EventType.CHILD_REORDER, callback, this);\n * !#zh\n * 子节点顺序变动监听事件,通过 this.node.on(cc.Node.EventType.CHILD_REORDER, callback, this); 进行监听。\n * @event child-reorder\n * @param {Node} node - node whose children have been reordered\n */\n/**\n * !#en\n * The group changing event, you can listen to this event through the statement this.node.on(cc.Node.EventType.GROUP_CHANGED, callback, this);\n * !#zh\n * 节点分组变动监听事件,通过 this.node.on(cc.Node.EventType.GROUP_CHANGED, callback, this); 进行监听。\n * @event group-changed\n * @param {Node} node - node whose group has changed\n */\n\n// Deprecated APIs\n\n/**\n * !#en\n * Returns the displayed opacity of Node,\n * the difference between displayed opacity and opacity is that displayed opacity is calculated based on opacity and parent node's opacity when cascade opacity enabled.\n * !#zh\n * 获取节点显示透明度,\n * 显示透明度和透明度之间的不同之处在于当启用级连透明度时,\n * 显示透明度是基于自身透明度和父节点透明度计算的。\n *\n * @method getDisplayedOpacity\n * @return {number} displayed opacity\n * @deprecated since v2.0, please use opacity property, cascade opacity is removed\n */\n\n/**\n * !#en\n * Returns the displayed color of Node,\n * the difference between displayed color and color is that displayed color is calculated based on color and parent node's color when cascade color enabled.\n * !#zh\n * 获取节点的显示颜色,\n * 显示颜色和颜色之间的不同之处在于当启用级连颜色时,\n * 显示颜色是基于自身颜色和父节点颜色计算的。\n *\n * @method getDisplayedColor\n * @return {Color}\n * @deprecated since v2.0, please use color property, cascade color is removed\n */\n\n/**\n * !#en Cascade opacity is removed from v2.0\n * Indicate whether node's opacity value affect its child nodes, default value is true.\n * !#zh 透明度级联功能从 v2.0 开始已移除\n * 节点的不透明度值是否影响其子节点,默认值为 true。\n * @property cascadeOpacity\n * @deprecated since v2.0\n * @type {Boolean}\n */\n\n/**\n * !#en Cascade opacity is removed from v2.0\n * Returns whether node's opacity value affect its child nodes.\n * !#zh 透明度级联功能从 v2.0 开始已移除\n * 返回节点的不透明度值是否影响其子节点。\n * @method isCascadeOpacityEnabled\n * @deprecated since v2.0\n * @return {Boolean}\n */\n\n/**\n * !#en Cascade opacity is removed from v2.0\n * Enable or disable cascade opacity, if cascade enabled, child nodes' opacity will be the multiplication of parent opacity and its own opacity.\n * !#zh 透明度级联功能从 v2.0 开始已移除\n * 启用或禁用级连不透明度,如果级连启用,子节点的不透明度将是父不透明度乘上它自己的不透明度。\n * @method setCascadeOpacityEnabled\n * @deprecated since v2.0\n * @param {Boolean} cascadeOpacityEnabled\n */\n\n/**\n * !#en Opacity modify RGB have been removed since v2.0\n * Set whether color should be changed with the opacity value,\n * useless in ccsg.Node, but this function is override in some class to have such behavior.\n * !#zh 透明度影响颜色配置已经被废弃\n * 设置更改透明度时是否修改RGB值,\n * @method setOpacityModifyRGB\n * @deprecated since v2.0\n * @param {Boolean} opacityValue\n */\n\n/**\n * !#en Opacity modify RGB have been removed since v2.0\n * Get whether color should be changed with the opacity value.\n * !#zh 透明度影响颜色配置已经被废弃\n * 获取更改透明度时是否修改RGB值。\n * @method isOpacityModifyRGB\n * @deprecated since v2.0\n * @return {Boolean}\n */\n\n\nlet _p = Node.prototype;\njs.getset(_p, 'position', _p.getPosition, _p.setPosition, false, true);\n\nif (CC_EDITOR) {\n let vec3_tmp = new Vec3();\n cc.js.getset(_p, 'worldEulerAngles', function () {\n let angles = new Vec3(this._eulerAngles);\n let parent = this.parent;\n while (parent) {\n angles.addSelf(parent._eulerAngles);\n parent = parent.parent;\n }\n return angles;\n }, function (v) {\n vec3_tmp.set(v);\n let parent = this.parent;\n while (parent) {\n vec3_tmp.subSelf(parent._eulerAngles);\n parent = parent.parent;\n }\n this.eulerAngles = vec3_tmp;\n });\n}\n\ncc.Node = module.exports = Node;\n","/****************************************************************************\n Copyright (c) 2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n'use strict';\n\nconst Node = require('./CCNode');\nconst RenderFlow = require('./renderer/render-flow');\n\nconst HideInHierarchy = cc.Object.Flags.HideInHierarchy;\nconst LocalDirtyFlag = Node._LocalDirtyFlag;\nconst POSITION_ON = 1 << 0;\n\n/**\n * !#en\n * Class of private entities in Cocos Creator scenes. \n * The PrivateNode is hidden in editor, and completely transparent to users. \n * It's normally used as Node's private content created by components in parent node. \n * So in theory private nodes are not children, they are part of the parent node. \n * Private node have two important characteristics: \n * 1. It has the minimum z index and cannot be modified, because they can't be displayed over real children. \n * 2. The positioning of private nodes is also special, they will consider the left bottom corner of the parent node's bounding box as the origin of local coordinates. \n * In this way, they can be easily kept inside the bounding box. \n * Currently, it's used by RichText component and TileMap component.\n * !#zh\n * Cocos Creator 场景中的私有节点类。 \n * 私有节点在编辑器中不可见,对用户透明。 \n * 通常私有节点是被一些特殊的组件创建出来作为父节点的一部分而存在的,理论上来说,它们不是子节点,而是父节点的组成部分。 \n * 私有节点有两个非常重要的特性: \n * 1. 它有着最小的渲染排序的 Z 轴深度,并且无法被更改,因为它们不能被显示在其他正常子节点之上。 \n * 2. 它的定位也是特殊的,对于私有节点来说,父节点包围盒的左下角是它的局部坐标系原点,这个原点相当于父节点的位置减去它锚点的偏移。这样私有节点可以比较容易被控制在包围盒之中。 \n * 目前在引擎中,RichText 和 TileMap 都有可能生成私有节点。\n * @class PrivateNode\n * @constructor\n * @param {String} name\n * @extends Node\n */\nlet PrivateNode = cc.Class({\n name: 'cc.PrivateNode',\n extends: Node,\n\n properties: {\n x: {\n get () {\n return this._originPos.x;\n },\n set (value) {\n var localPosition = this._originPos;\n if (value !== localPosition.x) {\n localPosition.x = value;\n this._posDirty(true);\n }\n },\n override: true\n },\n y: {\n get () {\n return this._originPos.y;\n },\n set (value) {\n var localPosition = this._originPos;\n if (value !== localPosition.y) {\n localPosition.y = value;\n this._posDirty(true);\n }\n },\n override: true\n },\n zIndex: {\n get () {\n return cc.macro.MIN_ZINDEX;\n },\n set () {\n },\n override: true\n },\n showInEditor: {\n default: false,\n editorOnly: true,\n override: true\n }\n },\n\n /**\n * @method constructor\n * @param {String} [name]\n */\n ctor (name) {\n this._localZOrder = cc.macro.MIN_ZINDEX << 16;\n this._originPos = cc.v2();\n if (CC_EDITOR) {\n this._objFlags |= HideInHierarchy;\n }\n },\n\n _posDirty (sendEvent) {\n this.setLocalDirty(LocalDirtyFlag.POSITION);\n !CC_NATIVERENDERER && (this._renderFlag |= RenderFlow.FLAG_TRANSFORM);\n if (sendEvent === true && (this._eventMask & POSITION_ON)) {\n this.emit(Node.EventType.POSITION_CHANGED);\n }\n },\n\n _updateLocalMatrix() {\n if (!this._localMatDirty) return;\n\n let parent = this.parent;\n if (parent) {\n // Position correction for transform calculation\n this._trs[0] = this._originPos.x - (parent._anchorPoint.x - 0.5) * parent._contentSize.width;\n this._trs[1] = this._originPos.y - (parent._anchorPoint.y - 0.5) * parent._contentSize.height;\n }\n\n this._super();\n },\n\n getPosition () {\n return new cc.Vec2(this._originPos);\n },\n\n setPosition (x, y) {\n if (y === undefined) {\n x = x.x;\n y = x.y;\n }\n\n let pos = this._originPos;\n if (pos.x === x && pos.y === y) {\n return;\n }\n pos.x = x;\n pos.y = y;\n this._posDirty(true);\n },\n\n setParent(value) {\n let oldParent = this._parent;\n this._super(value);\n if (oldParent !== value) {\n if (oldParent) {\n oldParent.off(Node.EventType.ANCHOR_CHANGED, this._posDirty, this);\n }\n if (value) {\n value.on(Node.EventType.ANCHOR_CHANGED, this._posDirty, this);\n }\n }\n },\n\n // do not update order of arrival\n _updateOrderOfArrival() {},\n});\n\nlet proto = PrivateNode.prototype;\ncc.js.getset(proto, \"parent\", proto.getParent, proto.setParent);\ncc.js.getset(proto, \"position\", proto.getPosition, proto.setPosition);\n\nif (CC_EDITOR) {\n // check components to avoid missing node reference serialied in previous version\n proto._onBatchCreated = function (dontSyncChildPrefab) {\n for (let comp of this._components) {\n comp.node = this;\n }\n\n Node.prototype._onBatchCreated.call(this, dontSyncChildPrefab);\n };\n}\n\ncc.PrivateNode = module.exports = PrivateNode;\n","/****************************************************************************\n Copyright (c) 2015-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n http://www.cocos2d-x.org\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar NIL = function () {};\n\n/**\n * !#en\n * cc.Scene is a subclass of cc.Node that is used only as an abstract concept. \n * cc.Scene and cc.Node are almost identical with the difference that users can not modify cc.Scene manually.\n * !#zh\n * cc.Scene 是 cc.Node 的子类,仅作为一个抽象的概念。 \n * cc.Scene 和 cc.Node 有点不同,用户不应直接修改 cc.Scene。\n * @class Scene\n * @extends Node\n */\ncc.Scene = cc.Class({\n name: 'cc.Scene',\n extends: require('./CCNode'),\n\n properties: {\n _is3DNode: {\n default: true,\n override: true\n },\n\n /**\n * !#en Indicates whether all (directly or indirectly) static referenced assets of this scene are releasable by default after scene unloading.\n * !#zh 指示该场景中直接或间接静态引用到的所有资源是否默认在场景切换后自动释放。\n * @property {Boolean} autoReleaseAssets\n * @default false\n */\n autoReleaseAssets: false,\n },\n\n ctor: function () {\n this._anchorPoint.x = 0.0;\n this._anchorPoint.y = 0.0;\n\n this._activeInHierarchy = false;\n this._inited = !cc.game._isCloning;\n\n if (CC_EDITOR) {\n this._prefabSyncedInLiveReload = false;\n }\n\n // cache all depend assets for auto release\n this.dependAssets = null;\n },\n\n destroy: function () {\n if (cc.Object.prototype.destroy.call(this)) {\n var children = this._children;\n for (var i = 0; i < children.length; ++i) {\n children[i].active = false;\n }\n }\n this._active = false;\n this._activeInHierarchy = false;\n },\n\n _onHierarchyChanged: NIL,\n _instantiate : null,\n\n _load: function () {\n if (!this._inited) {\n if (CC_TEST) {\n cc.assert(!this._activeInHierarchy, 'Should deactivate ActionManager and EventManager by default');\n }\n this._onBatchCreated(CC_EDITOR && this._prefabSyncedInLiveReload);\n this._inited = true;\n }\n },\n\n _activate: function (active) {\n active = (active !== false);\n if (CC_EDITOR || CC_TEST) {\n // register all nodes to editor\n this._registerIfAttached(active);\n }\n cc.director._nodeActivator.activateNode(this, active);\n }\n});\n\nmodule.exports = cc.Scene;\n","/****************************************************************************\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc\n */\nconst js = require('./platform/js');\nconst IdGenerater = require('./platform/id-generater');\nconst MAX_POOL_SIZE = 20;\n\nvar idGenerater = new IdGenerater('Scheduler');\n\n//data structures\n/*\n * A list double-linked list used for \"updates with priority\"\n * @class ListEntry\n * @param {Object} target not retained (retained by hashUpdateEntry)\n * @param {Number} priority\n * @param {Boolean} paused\n * @param {Boolean} markedForDeletion selector will no longer be called and entry will be removed at end of the next tick\n */\nvar ListEntry = function (target, priority, paused, markedForDeletion) {\n this.target = target;\n this.priority = priority;\n this.paused = paused;\n this.markedForDeletion = markedForDeletion;\n};\n\nvar _listEntries = [];\nListEntry.get = function (target, priority, paused, markedForDeletion) {\n var result = _listEntries.pop();\n if (result) {\n result.target = target;\n result.priority = priority;\n result.paused = paused;\n result.markedForDeletion = markedForDeletion;\n }\n else {\n result = new ListEntry(target, priority, paused, markedForDeletion);\n }\n return result;\n};\nListEntry.put = function (entry) {\n if (_listEntries.length < MAX_POOL_SIZE) {\n entry.target = null;\n _listEntries.push(entry);\n }\n};\n\n/*\n * A update entry list\n * @class HashUpdateEntry\n * @param {Array} list Which list does it belong to ?\n * @param {ListEntry} entry entry in the list\n * @param {Object} target hash key (retained)\n * @param {function} callback\n */\nvar HashUpdateEntry = function (list, entry, target, callback) {\n this.list = list;\n this.entry = entry;\n this.target = target;\n this.callback = callback;\n};\nvar _hashUpdateEntries = [];\nHashUpdateEntry.get = function (list, entry, target, callback) {\n var result = _hashUpdateEntries.pop();\n if (result) {\n result.list = list;\n result.entry = entry;\n result.target = target;\n result.callback = callback;\n }\n else {\n result = new HashUpdateEntry(list, entry, target, callback);\n }\n return result;\n};\nHashUpdateEntry.put = function (entry) {\n if (_hashUpdateEntries.length < MAX_POOL_SIZE) {\n entry.list = entry.entry = entry.target = entry.callback = null;\n _hashUpdateEntries.push(entry);\n }\n};\n\n//\n/*\n * Hash Element used for \"selectors with interval\"\n * @class HashTimerEntry\n * @param {Array} timers\n * @param {Object} target hash key (retained)\n * @param {Number} timerIndex\n * @param {Timer} currentTimer\n * @param {Boolean} currentTimerSalvaged\n * @param {Boolean} paused\n */\nvar HashTimerEntry = function (timers, target, timerIndex, currentTimer, currentTimerSalvaged, paused) {\n var _t = this;\n _t.timers = timers;\n _t.target = target;\n _t.timerIndex = timerIndex;\n _t.currentTimer = currentTimer;\n _t.currentTimerSalvaged = currentTimerSalvaged;\n _t.paused = paused;\n};\nvar _hashTimerEntries = [];\nHashTimerEntry.get = function (timers, target, timerIndex, currentTimer, currentTimerSalvaged, paused) {\n var result = _hashTimerEntries.pop();\n if (result) {\n result.timers = timers;\n result.target = target;\n result.timerIndex = timerIndex;\n result.currentTimer = currentTimer;\n result.currentTimerSalvaged = currentTimerSalvaged;\n result.paused = paused;\n }\n else {\n result = new HashTimerEntry(timers, target, timerIndex, currentTimer, currentTimerSalvaged, paused);\n }\n return result;\n};\nHashTimerEntry.put = function (entry) {\n if (_hashTimerEntries.length < MAX_POOL_SIZE) {\n entry.timers = entry.target = entry.currentTimer = null;\n _hashTimerEntries.push(entry);\n }\n};\n\n/*\n * Light weight timer\n * @extends cc.Class\n */\nfunction CallbackTimer () {\n this._lock = false;\n this._scheduler = null;\n this._elapsed = -1;\n this._runForever = false;\n this._useDelay = false;\n this._timesExecuted = 0;\n this._repeat = 0;\n this._delay = 0;\n this._interval = 0;\n\n this._target = null;\n this._callback = null;\n}\n\nvar proto = CallbackTimer.prototype;\n\nproto.initWithCallback = function (scheduler, callback, target, seconds, repeat, delay) {\n this._lock = false;\n this._scheduler = scheduler;\n this._target = target;\n this._callback = callback;\n\n this._elapsed = -1;\n this._interval = seconds;\n this._delay = delay;\n this._useDelay = (this._delay > 0);\n this._repeat = repeat;\n this._runForever = (this._repeat === cc.macro.REPEAT_FOREVER);\n return true;\n};\n/**\n * @return {Number} returns interval of timer\n */\nproto.getInterval = function(){return this._interval;};\n/**\n * @param {Number} interval set interval in seconds\n */\nproto.setInterval = function(interval){this._interval = interval;};\n\n/**\n * triggers the timer\n * @param {Number} dt delta time\n */\nproto.update = function (dt) {\n if (this._elapsed === -1) {\n this._elapsed = 0;\n this._timesExecuted = 0;\n } else {\n this._elapsed += dt;\n if (this._runForever && !this._useDelay) {//standard timer usage\n if (this._elapsed >= this._interval) {\n this.trigger();\n this._elapsed = 0;\n }\n } else {//advanced usage\n if (this._useDelay) {\n if (this._elapsed >= this._delay) {\n this.trigger();\n\n this._elapsed -= this._delay;\n this._timesExecuted += 1;\n this._useDelay = false;\n }\n } else {\n if (this._elapsed >= this._interval) {\n this.trigger();\n\n this._elapsed = 0;\n this._timesExecuted += 1;\n }\n }\n\n if (this._callback && !this._runForever && this._timesExecuted > this._repeat)\n this.cancel();\n }\n }\n};\n\nproto.getCallback = function(){\n return this._callback;\n};\n\nproto.trigger = function () {\n if (this._target && this._callback) {\n this._lock = true;\n this._callback.call(this._target, this._elapsed);\n this._lock = false;\n }\n};\n\nproto.cancel = function () {\n //override\n this._scheduler.unschedule(this._callback, this._target);\n};\n\nvar _timers = [];\nCallbackTimer.get = function () {\n return _timers.pop() || new CallbackTimer();\n};\nCallbackTimer.put = function (timer) {\n if (_timers.length < MAX_POOL_SIZE && !timer._lock) {\n timer._scheduler = timer._target = timer._callback = null;\n _timers.push(timer);\n }\n};\n\n/**\n * !#en\n * Scheduler is responsible of triggering the scheduled callbacks. \n * You should not use NSTimer. Instead use this class. \n * \n * There are 2 different types of callbacks (selectors): \n * - update callback: the 'update' callback will be called every frame. You can customize the priority. \n * - custom callback: A custom callback will be called every frame, or with a custom interval of time \n * \n * The 'custom selectors' should be avoided when possible. It is faster,\n * and consumes less memory to use the 'update callback'. *\n * !#zh\n * Scheduler 是负责触发回调函数的类。 \n * 通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。 \n * 有两种不同类型的定时器: \n * - update 定时器:每一帧都会触发。您可以自定义优先级。 \n * - 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。 \n * 如果希望每帧都触发,应该使用 update 定时器,使用 update 定时器更快,而且消耗更少的内存。\n *\n * @class Scheduler\n */\ncc.Scheduler = function () {\n this._timeScale = 1.0;\n this._updatesNegList = []; // list of priority < 0\n this._updates0List = []; // list of priority == 0\n this._updatesPosList = []; // list of priority > 0\n this._hashForUpdates = js.createMap(true); // hash used to fetch quickly the list entries for pause, delete, etc\n this._hashForTimers = js.createMap(true); // Used for \"selectors with interval\"\n this._currentTarget = null;\n this._currentTargetSalvaged = false;\n this._updateHashLocked = false; // If true unschedule will not remove anything from a hash. Elements will only be marked for deletion.\n\n this._arrayForTimers = []; // Speed up indexing\n //this._arrayForUpdates = []; // Speed up indexing\n};\n\ncc.Scheduler.prototype = {\n constructor: cc.Scheduler,\n //-----------------------private method----------------------\n\n _removeHashElement: function (element) {\n delete this._hashForTimers[element.target._id];\n var arr = this._arrayForTimers;\n for (var i = 0, l = arr.length; i < l; i++) {\n if (arr[i] === element) {\n arr.splice(i, 1);\n break;\n }\n }\n HashTimerEntry.put(element);\n },\n\n _removeUpdateFromHash: function (entry) {\n var targetId = entry.target._id;\n var self = this, element = self._hashForUpdates[targetId];\n if (element) {\n // Remove list entry from list\n var list = element.list, listEntry = element.entry;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i] === listEntry) {\n list.splice(i, 1);\n break;\n }\n }\n\n delete self._hashForUpdates[targetId];\n ListEntry.put(listEntry);\n HashUpdateEntry.put(element);\n }\n },\n\n _priorityIn: function (ppList, listElement, priority) {\n for (var i = 0; i < ppList.length; i++){\n if (priority < ppList[i].priority) {\n ppList.splice(i, 0, listElement);\n return;\n }\n }\n ppList.push(listElement);\n },\n\n _appendIn: function (ppList, listElement) {\n ppList.push(listElement);\n },\n\n //-----------------------public method-------------------------\n /**\n * !#en This method should be called for any target which needs to schedule tasks, and this method should be called before any scheduler API usage.\n * This method will add a `_id` property if it doesn't exist.\n * !#zh 任何需要用 Scheduler 管理任务的对象主体都应该调用这个方法,并且应该在调用任何 Scheduler API 之前调用这个方法。\n * 这个方法会给对象添加一个 `_id` 属性,如果这个属性不存在的话。\n * @method enableForTarget\n * @param {Object} target\n */\n enableForTarget: function (target) {\n if (!target._id) {\n if (target.__instanceId) {\n cc.warnID(1513);\n }\n else {\n target._id = idGenerater.getNewId();\n }\n }\n },\n\n /**\n * !#en\n * Modifies the time of all scheduled callbacks. \n * You can use this property to create a 'slow motion' or 'fast forward' effect. \n * Default is 1.0. To create a 'slow motion' effect, use values below 1.0. \n * To create a 'fast forward' effect, use values higher than 1.0. \n * Note:It will affect EVERY scheduled selector / action.\n * !#zh\n * 设置时间间隔的缩放比例。 \n * 您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。 \n * 默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。 \n * 要使用 “fast forward(快进)” 效果,使用值大于 1.0。 \n * 注意:它影响该 Scheduler 下管理的所有定时器。\n * @method setTimeScale\n * @param {Number} timeScale\n */\n setTimeScale: function (timeScale) {\n this._timeScale = timeScale;\n },\n\n /**\n * !#en Returns time scale of scheduler.\n * !#zh 获取时间间隔的缩放比例。\n * @method getTimeScale\n * @return {Number}\n */\n getTimeScale: function () {\n return this._timeScale;\n },\n\n /**\n * !#en 'update' the scheduler. (You should NEVER call this method, unless you know what you are doing.)\n * !#zh update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果)\n * @method update\n * @param {Number} dt delta time\n */\n update: function (dt) {\n this._updateHashLocked = true;\n if(this._timeScale !== 1)\n dt *= this._timeScale;\n\n var i, list, len, entry;\n\n for(i=0,list=this._updatesNegList, len = list.length; i\n * The scheduled method will be called every 'interval' seconds. \n * If paused is YES, then it won't be called until it is resumed. \n * If 'interval' is 0, it will be called every frame, but if so, it recommended to use 'scheduleUpdateForTarget:' instead. \n * If the callback function is already scheduled, then only the interval parameter will be updated without re-scheduling it again. \n * repeat let the action be repeated repeat + 1 times, use cc.macro.REPEAT_FOREVER to let the action run continuously \n * delay is the amount of time the action will wait before it'll start \n * \n * !#zh\n * 指定回调函数,调用对象等信息来添加一个新的定时器。 \n * 如果 paused 值为 true,那么直到 resume 被调用才开始计时。 \n * 当时间间隔达到指定值时,设置的回调函数将会被调用。 \n * 如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样,\n * 建议使用 scheduleUpdateForTarget 代替。 \n * 如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。 \n * repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER\n * 可以让定时器一直循环触发。 \n * delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。\n * @method schedule\n * @param {Function} callback\n * @param {Object} target\n * @param {Number} interval\n * @param {Number} [repeat=cc.macro.REPEAT_FOREVER]\n * @param {Number} [delay=0]\n * @param {Boolean} paused\n * @example {@link cocos2d/core/CCScheduler/schedule.js}\n * @typescript\n * schedule(callback: Function, target: any, interval: number, repeat: number, delay: number, paused?: boolean): void\n * schedule(callback: Function, target: any, interval: number, paused?: boolean): void\n */\n schedule: function (callback, target, interval, repeat, delay, paused) {\n 'use strict';\n if (typeof callback !== 'function') {\n var tmp = callback;\n callback = target;\n target = tmp;\n }\n //selector, target, interval, repeat, delay, paused\n //selector, target, interval, paused\n if (arguments.length === 4 || arguments.length === 5) {\n paused = !!repeat;\n repeat = cc.macro.REPEAT_FOREVER;\n delay = 0;\n }\n\n cc.assertID(target, 1502);\n\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n var element = this._hashForTimers[targetId];\n if (!element) {\n // Is this the 1st element ? Then set the pause level to all the callback_fns of this target\n element = HashTimerEntry.get(null, target, 0, null, null, paused);\n this._arrayForTimers.push(element);\n this._hashForTimers[targetId] = element;\n } else if (element.paused !== paused) {\n cc.warnID(1511);\n }\n\n var timer, i;\n if (element.timers == null) {\n element.timers = [];\n }\n else {\n for (i = 0; i < element.timers.length; ++i) {\n timer = element.timers[i];\n if (timer && callback === timer._callback) {\n cc.logID(1507, timer.getInterval(), interval);\n timer._interval = interval;\n return;\n }\n }\n }\n\n timer = CallbackTimer.get();\n timer.initWithCallback(this, callback, target, interval, repeat, delay);\n element.timers.push(timer);\n\n if (this._currentTarget === element && this._currentTargetSalvaged) {\n this._currentTargetSalvaged = false;\n }\n },\n\n /**\n * !#en\n * Schedules the update callback for a given target,\n * During every frame after schedule started, the \"update\" function of target will be invoked.\n * !#zh\n * 使用指定的优先级为指定的对象设置 update 定时器。\n * update 定时器每一帧都会被触发,触发时自动调用指定对象的 \"update\" 函数。\n * 优先级的值越低,定时器被触发的越早。\n * @method scheduleUpdate\n * @param {Object} target\n * @param {Number} priority\n * @param {Boolean} paused\n */\n scheduleUpdate: function(target, priority, paused) {\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n var hashElement = this._hashForUpdates[targetId];\n if (hashElement && hashElement.entry){\n // check if priority has changed\n if (hashElement.entry.priority !== priority){\n if (this._updateHashLocked){\n cc.logID(1506);\n hashElement.entry.markedForDeletion = false;\n hashElement.entry.paused = paused;\n return;\n }else{\n // will be added again outside if (hashElement).\n this.unscheduleUpdate(target);\n }\n }else{\n hashElement.entry.markedForDeletion = false;\n hashElement.entry.paused = paused;\n return;\n }\n }\n\n var listElement = ListEntry.get(target, priority, paused, false);\n var ppList;\n\n // most of the updates are going to be 0, that's way there\n // is an special list for updates with priority 0\n if (priority === 0) {\n ppList = this._updates0List;\n this._appendIn(ppList, listElement);\n }\n else {\n ppList = priority < 0 ? this._updatesNegList : this._updatesPosList;\n this._priorityIn(ppList, listElement, priority);\n }\n\n //update hash entry for quick access\n this._hashForUpdates[targetId] = HashUpdateEntry.get(ppList, listElement, target, null);\n },\n\n /**\n * !#en\n * Unschedules a callback for a callback and a given target.\n * If you want to unschedule the \"update\", use `unscheduleUpdate()`\n * !#zh\n * 取消指定对象定时器。\n * 如果需要取消 update 定时器,请使用 unscheduleUpdate()。\n * @method unschedule\n * @param {Function} callback The callback to be unscheduled\n * @param {Object} target The target bound to the callback.\n */\n unschedule: function (callback, target) {\n //callback, target\n\n // explicity handle nil arguments when removing an object\n if (!target || !callback)\n return;\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n\n var self = this, element = self._hashForTimers[targetId];\n if (element) {\n var timers = element.timers;\n for(var i = 0, li = timers.length; i < li; i++){\n var timer = timers[i];\n if (callback === timer._callback) {\n if ((timer === element.currentTimer) && (!element.currentTimerSalvaged)) {\n element.currentTimerSalvaged = true;\n }\n timers.splice(i, 1);\n CallbackTimer.put(timer);\n //update timerIndex in case we are in tick;, looping over the actions\n if (element.timerIndex >= i) {\n element.timerIndex--;\n }\n\n if (timers.length === 0) {\n if (self._currentTarget === element) {\n self._currentTargetSalvaged = true;\n } else {\n self._removeHashElement(element);\n }\n }\n return;\n }\n }\n }\n },\n\n /** \n * !#en Unschedules the update callback for a given target.\n * !#zh 取消指定对象的 update 定时器。\n * @method unscheduleUpdate\n * @param {Object} target The target to be unscheduled.\n */\n unscheduleUpdate: function (target) {\n if (!target)\n return;\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n\n var element = this._hashForUpdates[targetId];\n if (element) {\n if (this._updateHashLocked) {\n element.entry.markedForDeletion = true;\n } else {\n this._removeUpdateFromHash(element.entry);\n }\n }\n },\n\n /** \n * !#en\n * Unschedules all scheduled callbacks for a given target.\n * This also includes the \"update\" callback.\n * !#zh 取消指定对象的所有定时器,包括 update 定时器。\n * @method unscheduleAllForTarget\n * @param {Object} target The target to be unscheduled.\n */\n unscheduleAllForTarget: function (target) {\n // explicit nullptr handling\n if (!target){\n return;\n }\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n\n // Custom Selectors\n var element = this._hashForTimers[targetId];\n if (element) {\n var timers = element.timers;\n if (timers.indexOf(element.currentTimer) > -1 && \n (!element.currentTimerSalvaged)) {\n element.currentTimerSalvaged = true;\n }\n for (var i = 0, l = timers.length; i < l; i++) {\n CallbackTimer.put(timers[i]);\n }\n timers.length = 0;\n\n if (this._currentTarget === element){\n this._currentTargetSalvaged = true;\n }else{\n this._removeHashElement(element);\n }\n }\n\n // update selector\n this.unscheduleUpdate(target);\n },\n\n /**\n * !#en\n * Unschedules all scheduled callbacks from all targets including the system callbacks. \n * You should NEVER call this method, unless you know what you are doing.\n * !#zh\n * 取消所有对象的所有定时器,包括系统定时器。 \n * 不要调用此函数,除非你确定你在做什么。\n * @method unscheduleAll\n */\n unscheduleAll: function(){\n this.unscheduleAllWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM);\n },\n\n /**\n * !#en\n * Unschedules all callbacks from all targets with a minimum priority. \n * You should only call this with `PRIORITY_NON_SYSTEM_MIN` or higher.\n * !#zh\n * 取消所有优先级的值大于指定优先级的定时器。 \n * 你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。\n * @method unscheduleAllWithMinPriority\n * @param {Number} minPriority The minimum priority of selector to be unscheduled. Which means, all selectors which\n * priority is higher than minPriority will be unscheduled.\n */\n unscheduleAllWithMinPriority: function(minPriority){\n // Custom Selectors\n var i, element, arr = this._arrayForTimers;\n for(i=arr.length-1; i>=0; i--){\n element = arr[i];\n this.unscheduleAllForTarget(element.target);\n }\n\n // Updates selectors\n var entry;\n var temp_length = 0;\n if(minPriority < 0){\n for(i=0; i= minPriority)\n this.unscheduleUpdate(entry.target);\n if (temp_length == this._updatesNegList.length)\n i++;\n }\n }\n\n if(minPriority <= 0){\n for(i=0; i= minPriority)\n this.unscheduleUpdate(entry.target);\n if (temp_length == this._updatesPosList.length)\n i++;\n }\n },\n\n /** \n * !#en Checks whether a callback for a given target is scheduled.\n * !#zh 检查指定的回调函数和回调对象组合是否存在定时器。\n * @method isScheduled\n * @param {Function} callback The callback to check.\n * @param {Object} target The target of the callback.\n * @return {Boolean} True if the specified callback is invoked, false if not.\n */\n isScheduled: function(callback, target){\n //key, target\n //selector, target\n cc.assertID(callback, 1508);\n cc.assertID(target, 1509);\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n \n var element = this._hashForTimers[targetId];\n\n if (!element) {\n return false;\n }\n\n if (element.timers == null){\n return false;\n }\n else {\n var timers = element.timers;\n for (var i = 0; i < timers.length; ++i) {\n var timer = timers[i];\n\n if (callback === timer._callback){\n return true;\n }\n }\n return false;\n }\n },\n\n /**\n * !#en\n * Pause all selectors from all targets. \n * You should NEVER call this method, unless you know what you are doing.\n * !#zh\n * 暂停所有对象的所有定时器。 \n * 不要调用这个方法,除非你知道你正在做什么。\n * @method pauseAllTargets\n */\n pauseAllTargets: function () {\n return this.pauseAllTargetsWithMinPriority(cc.Scheduler.PRIORITY_SYSTEM);\n },\n\n /**\n * !#en\n * Pause all selectors from all targets with a minimum priority. \n * You should only call this with kCCPriorityNonSystemMin or higher.\n * !#zh\n * 暂停所有优先级的值大于指定优先级的定时器。 \n * 你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。\n * @method pauseAllTargetsWithMinPriority\n * @param {Number} minPriority\n */\n pauseAllTargetsWithMinPriority: function (minPriority) {\n var idsWithSelectors = [];\n\n var self = this, element, locArrayForTimers = self._arrayForTimers;\n var i, li;\n // Custom Selectors\n for(i = 0, li = locArrayForTimers.length; i < li; i++){\n element = locArrayForTimers[i];\n if (element) {\n element.paused = true;\n idsWithSelectors.push(element.target);\n }\n }\n\n var entry;\n if(minPriority < 0){\n for(i=0; i= minPriority){\n entry.paused = true;\n idsWithSelectors.push(entry.target);\n }\n }\n }\n }\n\n if(minPriority <= 0){\n for(i=0; i= minPriority){\n entry.paused = true;\n idsWithSelectors.push(entry.target);\n }\n }\n }\n\n return idsWithSelectors;\n },\n\n /**\n * !#en\n * Resume selectors on a set of targets. \n * This can be useful for undoing a call to pauseAllCallbacks.\n * !#zh\n * 恢复指定数组中所有对象的定时器。 \n * 这个函数是 pauseAllCallbacks 的逆操作。\n * @method resumeTargets\n * @param {Array} targetsToResume\n */\n resumeTargets: function (targetsToResume) {\n if (!targetsToResume)\n return;\n\n for (var i = 0; i < targetsToResume.length; i++) {\n this.resumeTarget(targetsToResume[i]);\n }\n },\n\n /**\n * !#en\n * Pauses the target. \n * All scheduled selectors/update for a given target won't be 'ticked' until the target is resumed. \n * If the target is not present, nothing happens.\n * !#zh\n * 暂停指定对象的定时器。 \n * 指定对象的所有定时器都会被暂停。 \n * 如果指定的对象没有定时器,什么也不会发生。\n * @method pauseTarget\n * @param {Object} target\n */\n pauseTarget: function (target) {\n cc.assertID(target, 1503);\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n\n //customer selectors\n var self = this, \n element = self._hashForTimers[targetId];\n if (element) {\n element.paused = true;\n }\n\n //update callback\n var elementUpdate = self._hashForUpdates[targetId];\n if (elementUpdate) {\n elementUpdate.entry.paused = true;\n }\n },\n\n /**\n * !#en\n * Resumes the target. \n * The 'target' will be unpaused, so all schedule selectors/update will be 'ticked' again. \n * If the target is not present, nothing happens.\n * !#zh\n * 恢复指定对象的所有定时器。 \n * 指定对象的所有定时器将继续工作。 \n * 如果指定的对象没有定时器,什么也不会发生。\n * @method resumeTarget\n * @param {Object} target\n */\n resumeTarget: function (target) {\n cc.assertID(target, 1504);\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n\n // custom selectors\n var self = this,\n element = self._hashForTimers[targetId];\n if (element) {\n element.paused = false;\n }\n\n //update callback\n var elementUpdate = self._hashForUpdates[targetId];\n if (elementUpdate) {\n elementUpdate.entry.paused = false;\n }\n },\n\n /**\n * !#en Returns whether or not the target is paused.\n * !#zh 返回指定对象的定时器是否暂停了。\n * @method isTargetPaused\n * @param {Object} target\n * @return {Boolean}\n */\n isTargetPaused: function (target) {\n cc.assertID(target, 1505);\n var targetId = target._id;\n if (!targetId) {\n if (target.__instanceId) {\n cc.warnID(1513);\n targetId = target._id = target.__instanceId;\n }\n else {\n cc.errorID(1510);\n }\n }\n\n // Custom selectors\n var element = this._hashForTimers[targetId];\n if (element) {\n return element.paused;\n }\n var elementUpdate = this._hashForUpdates[targetId];\n if (elementUpdate) {\n return elementUpdate.entry.paused;\n }\n return false;\n },\n};\n\n/**\n * !#en Priority level reserved for system services.\n * !#zh 系统服务的优先级。\n * @property PRIORITY_SYSTEM\n * @type {Number}\n * @static\n */\ncc.Scheduler.PRIORITY_SYSTEM = 1 << 31;\n\n/**\n * !#en Minimum priority level for user scheduling.\n * !#zh 用户调度最低优先级。\n * @property PRIORITY_NON_SYSTEM\n * @type {Number}\n * @static\n */\ncc.Scheduler.PRIORITY_NON_SYSTEM = cc.Scheduler.PRIORITY_SYSTEM + 1;\n\nmodule.exports = cc.Scheduler;\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst preprocess = require('./preprocess');\nconst fetch = require('./fetch');\nconst Cache = require('./cache');\nconst helper = require('./helper');\nconst releaseManager = require('./releaseManager');\nconst dependUtil = require('./depend-util');\nconst load = require('./load');\nconst Pipeline = require('./pipeline');\nconst Task = require('./task');\nconst RequestItem = require('./request-item');\nconst downloader = require('./downloader');\nconst parser = require('./parser');\nconst packManager = require('./pack-manager');\nconst Bundle = require('./bundle');\nconst builtins = require('./builtins');\nconst factory = require('./factory');\nconst { parse, combine } = require('./urlTransformer');\nconst { parseParameters, asyncify } = require('./utilities');\nconst { assets, files, parsed, pipeline, transformPipeline, fetchPipeline, RequestType, bundles, BuiltinBundleName } = require('./shared');\n\n\n/**\n * @module cc\n */\n/**\n * !#en\n * This module controls asset's behaviors and information, include loading, releasing etc. it is a singleton\n * All member can be accessed with `cc.assetManager`.\n * \n * !#zh\n * 此模块管理资源的行为和信息,包括加载,释放等,这是一个单例,所有成员能够通过 `cc.assetManager` 调用\n * \n * @class AssetManager\n */\nfunction AssetManager () {\n\n this._preprocessPipe = preprocess;\n\n this._fetchPipe = fetch;\n\n this._loadPipe = load;\n\n /**\n * !#en \n * Normal loading pipeline\n * \n * !#zh\n * 正常加载管线\n * \n * @property pipeline\n * @type {Pipeline}\n */\n this.pipeline = pipeline.append(preprocess).append(load);\n \n /**\n * !#en \n * Fetching pipeline\n * \n * !#zh\n * 下载管线\n * \n * @property fetchPipeline\n * @type {Pipeline}\n */\n this.fetchPipeline = fetchPipeline.append(preprocess).append(fetch);\n\n /**\n * !#en \n * Url transformer\n * \n * !#zh\n * Url 转换器\n * \n * @property transformPipeline\n * @type {Pipeline}\n */\n this.transformPipeline = transformPipeline.append(parse).append(combine);\n\n\n /**\n * !#en \n * The collection of bundle which is already loaded, you can remove cache with {{#crossLink \"AssetManager/removeBundle:method\"}}{{/crossLink}}\n * \n * !#zh\n * 已加载 bundle 的集合, 你能通过 {{#crossLink \"AssetManager/removeBundle:method\"}}{{/crossLink}} 来移除缓存\n * \n * @property bundles\n * @type {Cache}\n * @typescript\n * bundles: AssetManager.Cache\n */\n this.bundles = bundles;\n\n /**\n * !#en \n * The collection of asset which is already loaded, you can remove cache with {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}}\n * \n * !#zh\n * 已加载资源的集合, 你能通过 {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}} 来移除缓存\n * \n * @property assets\n * @type {Cache}\n * @typescript\n * assets: AssetManager.Cache\n */\n this.assets = assets;\n \n this._files = files;\n \n this._parsed = parsed;\n\n this.generalImportBase = '';\n\n this.generalNativeBase = '';\n\n /**\n * !#en \n * Manage relationship between asset and its dependencies\n * \n * !#zh\n * 管理资源依赖关系\n * \n * @property dependUtil\n * @type {DependUtil}\n */\n this.dependUtil = dependUtil;\n\n this._releaseManager = releaseManager;\n\n /**\n * !#en \n * Whether or not cache the loaded asset\n * \n * !#zh\n * 是否缓存已加载的资源\n * \n * @property cacheAsset\n * @type {boolean}\n */\n this.cacheAsset = true;\n\n /**\n * !#en \n * Whether or not load asset forcely, if it is true, asset will be loaded regardless of error\n * \n * !#zh\n * 是否强制加载资源, 如果为 true ,加载资源将会忽略报错\n * \n * @property force\n * @type {boolean}\n */\n this.force = false;\n\n /**\n * !#en \n * Some useful function\n * \n * !#zh\n * 一些有用的方法\n * \n * @property utils\n * @type {Helper}\n */\n this.utils = helper;\n\n /**\n * !#en \n * Manage all downloading task\n * \n * !#zh\n * 管理所有下载任务\n * \n * @property downloader\n * @type {Downloader}\n */\n this.downloader = downloader; \n\n /**\n * !#en \n * Manage all parsing task\n * \n * !#zh\n * 管理所有解析任务\n * \n * @property parser\n * @type {Parser}\n */\n this.parser = parser;\n\n /**\n * !#en \n * Manage internal asset\n * \n * !#zh\n * 管理内置资源\n * \n * @property builtins\n * @type {Builtins}\n */\n this.builtins = builtins;\n\n /**\n * !#en \n * Manage all packed asset\n * \n * !#zh\n * 管理所有合并后的资源\n * \n * @property packManager\n * @type {PackManager}\n */\n this.packManager = packManager;\n\n this.factory = factory;\n\n /**\n * !#en \n * Cache manager is a module which controls all caches downloaded from server in non-web platform.\n * \n * !#zh\n * 缓存管理器是一个模块,在非 WEB 平台上,用于管理所有从服务器上下载下来的缓存\n * \n * @property cacheManager\n * @type {cc.AssetManager.CacheManager}\n * @typescript\n * cacheManager: cc.AssetManager.CacheManager|null\n */\n this.cacheManager = null;\n\n /**\n * !#en \n * The preset of options\n * \n * !#zh\n * 可选参数的预设集\n * \n * @property presets\n * @type {Object}\n * @typescript\n * presets: Record>\n */\n this.presets = {\n 'default': {\n priority: 0,\n },\n\n 'preload': {\n maxConcurrency: 2, \n maxRequestsPerFrame: 2,\n priority: -1,\n },\n\n 'scene': {\n maxConcurrency: 8, \n maxRequestsPerFrame: 8,\n priority: 1,\n },\n\n 'bundle': {\n maxConcurrency: 8, \n maxRequestsPerFrame: 8,\n priority: 2,\n },\n\n 'remote': {\n maxRetryCount: 4\n },\n\n 'script': {\n maxConcurrency: 1024,\n maxRequestsPerFrame: 1024,\n priority: 2\n }\n }\n\n}\n\nAssetManager.Pipeline = Pipeline;\nAssetManager.Task = Task;\nAssetManager.Cache = Cache;\nAssetManager.RequestItem = RequestItem;\nAssetManager.Bundle = Bundle;\nAssetManager.BuiltinBundleName = BuiltinBundleName;\n\nAssetManager.prototype = {\n\n constructor: AssetManager,\n\n /**\n * !#en \n * The builtin 'main' bundle\n * \n * !#zh\n * 内置 main 包\n * \n * @property main\n * @readonly\n * @type {Bundle}\n */\n get main () {\n return bundles.get(BuiltinBundleName.MAIN);\n },\n\n /**\n * !#en \n * The builtin 'resources' bundle\n * \n * !#zh\n * 内置 resources 包\n * \n * @property resources\n * @readonly\n * @type {Bundle}\n */\n get resources () {\n return bundles.get(BuiltinBundleName.RESOURCES);\n },\n\n /**\n * !#en \n * The builtin 'internal' bundle\n * \n * !#zh\n * 内置 internal 包\n * \n * @property internal\n * @readonly\n * @type {Bundle}\n */\n get internal () {\n return bundles.get(BuiltinBundleName.INTERNAL);\n },\n\n /**\n * !#en\n * Initialize assetManager with options\n * \n * !#zh\n * 初始化资源管理器\n * \n * @method init\n * @param {Object} options \n * \n * @typescript\n * init(options: Record): void\n */\n init (options) {\n options = options || Object.create(null);\n this._files.clear();\n this._parsed.clear();\n this._releaseManager.init();\n this.assets.clear();\n this.bundles.clear();\n this.packManager.init();\n this.downloader.init(options.bundleVers, options.server);\n this.parser.init();\n this.dependUtil.init();\n this.generalImportBase = options.importBase;\n this.generalNativeBase = options.nativeBase;\n },\n\n /**\n * !#en \n * Get the bundle which has been loaded\n * \n * !#zh\n * 获取已加载的分包\n * \n * @method getBundle\n * @param {String} name - The name of bundle \n * @return {Bundle} - The loaded bundle\n * \n * @example\n * // ${project}/assets/test1\n * cc.assetManager.getBundle('test1');\n * \n * cc.assetManager.getBundle('resources');\n * \n * @typescript\n * getBundle (name: string): cc.AssetManager.Bundle\n */\n getBundle (name) {\n return bundles.get(name);\n },\n\n /**\n * !#en \n * Remove this bundle. NOTE: The asset whthin this bundle will not be released automatically, you can call {{#crossLink \"Bundle/releaseAll:method\"}}{{/crossLink}} manually before remove it if you need\n * \n * !#zh \n * 移除此包, 注意:这个包内的资源不会自动释放, 如果需要的话你可以在摧毁之前手动调用 {{#crossLink \"Bundle/releaseAll:method\"}}{{/crossLink}} 进行释放\n *\n * @method removeBundle\n * @param {Bundle} bundle - The bundle to be removed \n * \n * @typescript\n * removeBundle(bundle: cc.AssetManager.Bundle): void\n */\n removeBundle (bundle) {\n bundle._destroy();\n bundles.remove(bundle.name);\n },\n\n /**\n * !#en\n * General interface used to load assets with a progression callback and a complete callback. You can achieve almost all effect you want with combination of `requests` and `options`.\n * It is highly recommended that you use more simple API, such as `load`, `loadDir` etc. Every custom parameter in `options` will be distribute to each of `requests`. \n * if request already has same one, the parameter in request will be given priority. Besides, if request has dependencies, `options` will distribute to dependencies too.\n * Every custom parameter in `requests` will be tranfered to handler of `downloader` and `parser` as `options`. \n * You can register you own handler downloader or parser to collect these custom parameters for some effect.\n * \n * Reserved Keyword: `uuid`, `url`, `path`, `dir`, `scene`, `type`, `priority`, `preset`, `audioLoadMode`, `ext`, `bundle`, `onFileProgress`, `maxConcurrency`, `maxRequestsPerFrame`\n * `maxRetryCount`, `version`, `responseType`, `withCredentials`, `mimeType`, `timeout`, `header`, `reload`, `cacheAsset`, `cacheEnabled`,\n * Please DO NOT use these words as custom options!\n * \n * !#zh\n * 通用加载资源接口,可传入进度回调以及完成回调,通过组合 `request` 和 `options` 参数,几乎可以实现和扩展所有想要的加载效果。非常建议你使用更简单的API,例如 `load`、`loadDir` 等。\n * `options` 中的自定义参数将会分发到 `requests` 的每一项中,如果request中已存在同名的参数则以 `requests` 中为准,同时如果有其他\n * 依赖资源,则 `options` 中的参数会继续向依赖项中分发。request中的自定义参数都会以 `options` 形式传入加载流程中的 `downloader`, `parser` 的方法中, 你可以\n * 扩展 `downloader`, `parser` 收集参数完成想实现的效果。\n * \n * 保留关键字: `uuid`, `url`, `path`, `dir`, `scene`, `type`, `priority`, `preset`, `audioLoadMode`, `ext`, `bundle`, `onFileProgress`, `maxConcurrency`, `maxRequestsPerFrame`\n * `maxRetryCount`, `version`, `responseType`, `withCredentials`, `mimeType`, `timeout`, `header`, `reload`, `cacheAsset`, `cacheEnabled`,\n * 请不要使用这些字段为自定义参数!\n * \n * @method loadAny\n * @param {string|string[]|Object|Object[]} requests - The request you want to load\n * @param {Object} [options] - Optional parameters\n * @param {Function} [onProgress] - Callback invoked when progression change\n * @param {Number} onProgress.finished - The number of the items that are already completed\n * @param {Number} onProgress.total - The total number of the items\n * @param {RequestItem} onProgress.item - The current request item\n * @param {Function} [onComplete] - Callback invoked when finish loading\n * @param {Error} onComplete.err - The error occured in loading process.\n * @param {Object} onComplete.data - The loaded content\n * \n * @example\n * cc.assetManager.loadAny({url: 'http://example.com/a.png'}, (err, img) => cc.log(img));\n * cc.assetManager.loadAny(['60sVXiTH1D/6Aft4MRt9VC'], (err, assets) => cc.log(assets));\n * cc.assetManager.loadAny([{ uuid: '0cbZa5Y71CTZAccaIFluuZ'}, {url: 'http://example.com/a.png'}], (err, assets) => cc.log(assets));\n * cc.assetManager.downloader.register('.asset', (url, options, onComplete) => {\n * url += '?userName=' + options.userName + \"&password=\" + options.password;\n * cc.assetManager.downloader.downloadFile(url, null, onComplete);\n * });\n * cc.assetManager.parser.register('.asset', (file, options, onComplete) => {\n * var json = JSON.parse(file);\n * var skin = json[options.skin];\n * var model = json[options.model];\n * onComplete(null, {skin, model});\n * });\n * cc.assetManager.loadAny({ url: 'http://example.com/my.asset', skin: 'xxx', model: 'xxx', userName: 'xxx', password: 'xxx' });\n * \n * @typescript\n * loadAny(requests: string | string[] | Record | Record[], options: Record, onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, data: any) => void): void\n * loadAny(requests: string | string[] | Record | Record[], onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, data: any) => void): void\n * loadAny(requests: string | string[] | Record | Record[], options: Record, onComplete: (err: Error, data: any) => void): void\n * loadAny(requests: string | string[] | Record | Record[], onComplete: (err: Error, data: any) => void): void\n * loadAny(requests: string | string[] | Record | Record[], options: Record): void\n * loadAny(requests: string | string[] | Record | Record[]): void\n */\n loadAny (requests, options, onProgress, onComplete) {\n var { options, onProgress, onComplete } = parseParameters(options, onProgress, onComplete);\n \n options.preset = options.preset || 'default';\n requests = Array.isArray(requests) ? requests.concat() : requests;\n let task = new Task({input: requests, onProgress, onComplete: asyncify(onComplete), options});\n pipeline.async(task);\n },\n\n /**\n * !#en\n * General interface used to preload assets with a progression callback and a complete callback.It is highly recommended that you use more simple API, such as `preloadRes`, `preloadResDir` etc.\n * Everything about preload is just likes `cc.assetManager.loadAny`, the difference is `cc.assetManager.preloadAny` will only download asset but not parse asset. You need to invoke `cc.assetManager.loadAny(preloadTask)` \n * to finish loading asset\n * \n * !#zh\n * 通用预加载资源接口,可传入进度回调以及完成回调,非常建议你使用更简单的 API ,例如 `preloadRes`, `preloadResDir` 等。`preloadAny` 和 `loadAny` 几乎一样,区别在于 `preloadAny` 只会下载资源,不会去解析资源,你需要调用 `cc.assetManager.loadAny(preloadTask)`\n * 来完成资源加载。\n * \n * @method preloadAny\n * @param {string|string[]|Object|Object[]} requests - The request you want to preload\n * @param {Object} [options] - Optional parameters\n * @param {Function} [onProgress] - Callback invoked when progression change\n * @param {Number} onProgress.finished - The number of the items that are already completed\n * @param {Number} onProgress.total - The total number of the items\n * @param {RequestItem} onProgress.item - The current request item\n * @param {Function} [onComplete] - Callback invoked when finish preloading\n * @param {Error} onComplete.err - The error occured in preloading process.\n * @param {RequestItem[]} onComplete.items - The preloaded content\n * \n * @example\n * cc.assetManager.preloadAny('0cbZa5Y71CTZAccaIFluuZ', (err) => cc.assetManager.loadAny('0cbZa5Y71CTZAccaIFluuZ'));\n * \n * @typescript\n * preloadAny(requests: string | string[] | Record | Record[], options: Record, onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void\n * preloadAny(requests: string | string[] | Record | Record[], onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void\n * preloadAny(requests: string | string[] | Record | Record[], options: Record, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void\n * preloadAny(requests: string | string[] | Record | Record[], onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void\n * preloadAny(requests: string | string[] | Record | Record[], options: Record): void\n * preloadAny(requests: string | string[] | Record | Record[]): void\n */\n preloadAny (requests, options, onProgress, onComplete) {\n var { options, onProgress, onComplete } = parseParameters(options, onProgress, onComplete);\n \n options.preset = options.preset || 'preload';\n requests = Array.isArray(requests) ? requests.concat() : requests;\n var task = new Task({input: requests, onProgress, onComplete: asyncify(onComplete), options});\n fetchPipeline.async(task);\n },\n\n /**\n * !#en\n * Load native file of asset, if you check the option 'Async Load Assets', you may need to load native file with this before you use the asset\n * \n * !#zh\n * 加载资源的原生文件,如果你勾选了'延迟加载资源'选项,你可能需要在使用资源之前调用此方法来加载原生文件\n * \n * @method postLoadNative\n * @param {Asset} asset - The asset\n * @param {Object} [options] - Some optional parameters\n * @param {Function} [onComplete] - Callback invoked when finish loading\n * @param {Error} onComplete.err - The error occured in loading process.\n * \n * @example\n * cc.assetManager.postLoadNative(texture, (err) => console.log(err));\n * \n * @typescript\n * postLoadNative(asset: cc.Asset, options: Record, onComplete: (err: Error) => void): void\n * postLoadNative(asset: cc.Asset, onComplete: (err: Error) => void): void\n * postLoadNative(asset: cc.Asset, options: Record): void\n * postLoadNative(asset: cc.Asset): void\n */\n postLoadNative (asset, options, onComplete) {\n if (!(asset instanceof cc.Asset)) throw new Error('input is not asset');\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n\n if (!asset._native || asset._nativeAsset) {\n return asyncify(onComplete)(null);\n }\n\n var depend = dependUtil.getNativeDep(asset._uuid);\n if (depend) {\n if (!bundles.has(depend.bundle)) {\n var bundle = bundles.find(function (bundle) {\n return bundle.getAssetInfo(asset._uuid);\n });\n if (bundle) {\n depend.bundle = bundle.name;\n }\n }\n \n this.loadAny(depend, options, function (err, native) {\n if (!err) {\n if (asset.isValid && !asset._nativeAsset) {\n asset._nativeAsset = native\n }\n }\n else {\n cc.error(err.message, err.stack);\n }\n onComplete && onComplete(err);\n });\n }\n },\n\n /**\n * !#en\n * Load remote asset with url, such as audio, image, text and so on.\n * \n * !#zh\n * 使用 url 加载远程资源,例如音频,图片,文本等等。\n * \n * @method loadRemote\n * @param {string} url - The url of asset\n * @param {Object} [options] - Some optional parameters\n * @param {cc.AudioClip.LoadMode} [options.audioLoadMode] - Indicate which mode audio you want to load\n * @param {string} [options.ext] - If the url does not have a extension name, you can specify one manually.\n * @param {Function} [onComplete] - Callback invoked when finish loading\n * @param {Error} onComplete.err - The error occured in loading process.\n * @param {Asset} onComplete.asset - The loaded texture\n * \n * @example\n * cc.assetManager.loadRemote('http://www.cloud.com/test1.jpg', (err, texture) => console.log(err));\n * cc.assetManager.loadRemote('http://www.cloud.com/test2.mp3', (err, audioClip) => console.log(err));\n * cc.assetManager.loadRemote('http://www.cloud.com/test3', { ext: '.png' }, (err, texture) => console.log(err));\n * \n * @typescript\n * loadRemote(url: string, options: Record, onComplete: (err: Error, asset: T) => void): void\n * loadRemote(url: string, onComplete: (err: Error, asset: T) => void): void\n * loadRemote(url: string, options: Record): void\n * loadRemote(url: string): void\n */\n loadRemote (url, options, onComplete) {\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n\n if (this.assets.has(url)) {\n return asyncify(onComplete)(null, this.assets.get(url));\n }\n\n options.__isNative__ = true;\n options.preset = options.preset || 'remote';\n this.loadAny({url}, options, null, function (err, data) {\n if (err) {\n cc.error(err.message, err.stack);\n onComplete && onComplete(err, null);\n }\n else {\n factory.create(url, data, options.ext || cc.path.extname(url), options, function (err, out) {\n onComplete && onComplete(err, out);\n });\n }\n });\n },\n\n /**\n * !#en\n * Load script \n * \n * !#zh\n * 加载脚本\n * \n * @method loadScript\n * @param {string|string[]} url - Url of the script\n * @param {Object} [options] - Some optional paramters\n * @param {boolean} [options.async] - Indicate whether or not loading process should be async\n * @param {Function} [onComplete] - Callback when script loaded or failed\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * \n * @example\n * loadScript('http://localhost:8080/index.js', null, (err) => console.log(err));\n * \n * @typescript\n * loadScript(url: string|string[], options: Record, onComplete: (err: Error) => void): void\n * loadScript(url: string|string[], onComplete: (err: Error) => void): void\n * loadScript(url: string|string[], options: Record): void\n * loadScript(url: string|string[]): void\n */\n loadScript (url, options, onComplete) {\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n options.__requestType__ = RequestType.URL;\n options.preset = options.preset || 'script';\n this.loadAny(url, options, onComplete);\n },\n\n /**\n * !#en\n * load bundle\n * \n * !#zh\n * 加载资源包\n * \n * @method loadBundle\n * @param {string} nameOrUrl - The name or root path of bundle\n * @param {Object} [options] - Some optional paramter, same like downloader.downloadFile\n * @param {string} [options.version] - The version of this bundle, you can check config.json in this bundle\n * @param {Function} [onComplete] - Callback when bundle loaded or failed\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {Bundle} onComplete.bundle - The loaded bundle\n * \n * @example\n * loadBundle('http://localhost:8080/test', null, (err, bundle) => console.log(err));\n * \n * @typescript\n * loadBundle(nameOrUrl: string, options: Record, onComplete: (err: Error, bundle: cc.AssetManager.Bundle) => void): void\n * loadBundle(nameOrUrl: string, onComplete: (err: Error, bundle: cc.AssetManager.Bundle) => void): void\n * loadBundle(nameOrUrl: string, options: Record): void\n * loadBundle(nameOrUrl: string): void\n */\n loadBundle (nameOrUrl, options, onComplete) {\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n\n let bundleName = cc.path.basename(nameOrUrl);\n\n if (this.bundles.has(bundleName)) {\n return asyncify(onComplete)(null, this.getBundle(bundleName));\n }\n\n options.preset = options.preset || 'bundle';\n options.ext = 'bundle';\n this.loadRemote(nameOrUrl, options, onComplete);\n },\n\n /**\n * !#en\n * Release asset and it's dependencies.\n * This method will not only remove the cache of the asset in assetManager, but also clean up its content.\n * For example, if you release a texture, the texture asset and its gl texture data will be freed up.\n * Notice, this method may cause the texture to be unusable, if there are still other nodes use the same texture, they may turn to black and report gl errors.\n * \n * !#zh\n * 释放资源以及其依赖资源, 这个方法不仅会从 assetManager 中删除资源的缓存引用,还会清理它的资源内容。\n * 比如说,当你释放一个 texture 资源,这个 texture 和它的 gl 贴图数据都会被释放。\n * 注意,这个函数可能会导致资源贴图或资源所依赖的贴图不可用,如果场景中存在节点仍然依赖同样的贴图,它们可能会变黑并报 GL 错误。\n *\n * @method releaseAsset\n * @param {Asset} asset - The asset to be released\n * \n * @example\n * // release a texture which is no longer need\n * cc.assetManager.releaseAsset(texture);\n *\n * @typescript\n * releaseAsset(asset: cc.Asset): void\n */\n releaseAsset (asset) {\n releaseManager.tryRelease(asset, true);\n },\n\n /**\n * !#en \n * Release all unused assets. Refer to {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}} for detailed informations.\n * \n * !#zh \n * 释放所有没有用到的资源。详细信息请参考 {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}}\n *\n * @method releaseUnusedAssets\n * @private\n * \n * @typescript\n * releaseUnusedAssets(): void\n */\n releaseUnusedAssets () {\n assets.forEach(function (asset) {\n releaseManager.tryRelease(asset);\n });\n },\n\n /**\n * !#en \n * Release all assets. Refer to {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}} for detailed informations.\n * \n * !#zh \n * 释放所有资源。详细信息请参考 {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}}\n *\n * @method releaseAll\n * \n * @typescript\n * releaseAll(): void\n */\n releaseAll () {\n assets.forEach(function (asset) {\n releaseManager.tryRelease(asset, true);\n });\n },\n\n _transform (input, options) {\n var subTask = Task.create({input, options});\n var urls = [];\n try {\n var result = transformPipeline.sync(subTask);\n for (var i = 0, l = result.length; i < l; i++) {\n var item = result[i];\n var url = item.url;\n item.recycle();\n urls.push(url);\n }\n }\n catch (e) {\n for (var i = 0, l = subTask.output.length; i < l; i++) {\n subTask.output[i].recycle();\n }\n cc.error(e.message, e.stack);\n }\n subTask.recycle();\n return urls.length > 1 ? urls : urls[0];\n }\n};\n\ncc.AssetManager = AssetManager;\n/**\n * @module cc\n */\n/**\n * @property assetManager\n * @type {AssetManager}\n */\ncc.assetManager = new AssetManager();\n\nObject.defineProperty(cc, 'resources', {\n /**\n * !#en\n * cc.resources is a bundle and controls all asset under assets/resources\n * \n * !#zh\n * cc.resources 是一个 bundle,用于管理所有在 assets/resources 下的资源\n * \n * @property resources\n * @readonly\n * @type {AssetManager.Bundle}\n */\n get () {\n return bundles.get(BuiltinBundleName.RESOURCES);\n }\n});\n\n\nmodule.exports = cc.assetManager;\n\n/**\n * !#en\n * This module controls asset's behaviors and information, include loading, releasing etc. \n * All member can be accessed with `cc.assetManager`. All class or enum can be accessed with `cc.AssetManager`\n * \n * !#zh\n * 此模块管理资源的行为和信息,包括加载,释放等,所有成员能够通过 `cc.assetManager` 调用. 所有类型或枚举能通过 `cc.AssetManager` 访问\n * \n * @module cc.AssetManager\n */","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst Cache = require('./cache');\nconst releaseManager = require('./releaseManager');\nconst { BuiltinBundleName } = require('./shared'); \n\n/**\n * @module cc.AssetManager\n */\n/**\n * !#en\n * This module contains the builtin asset, it's a singleton, all member can be accessed with `cc.assetManager.builtins` \n * \n * !#zh\n * 此模块包含内建资源,这是一个单例,所有成员能通过 `cc.assetManager.builtins` 访问\n * \n * @class Builtins\n */\nvar builtins = {\n \n _assets: new Cache({ material: new Cache(), effect: new Cache() }), // builtin assets\n\n _loadBuiltins (name, cb) {\n let dirname = name + 's';\n let builtin = this._assets.get(name);\n return cc.assetManager.internal.loadDir(dirname, null, null, (err, assets) => {\n if (err) {\n cc.error(err.message, err.stack);\n }\n else {\n for (let i = 0; i < assets.length; i++) {\n var asset = assets[i];\n builtin.add(asset.name, asset.addRef());\n }\n }\n\n cb();\n });\n },\n\n /**\n * !#en\n * Initialize\n * \n * !#zh\n * 初始化 \n * \n * @method init\n * @param {Function} cb - Callback when finish loading built-in assets\n * \n * @typescript\n * init (cb: () => void): void\n */\n init (cb) {\n this.clear();\n if (cc.game.renderType === cc.game.RENDER_TYPE_CANVAS || !cc.assetManager.bundles.has(BuiltinBundleName.INTERNAL)) {\n return cb && cb();\n }\n\n this._loadBuiltins('effect', () => {\n this._loadBuiltins('material', () => {\n this._loadBuiltinsSP(cb);\n });\n });\n },\n\n _loadBuiltinsSP(cb) {\n cc.sp.MAX_MULTITEXTURE_NUM = 8;\n // cc.renderer.device.caps.maxTextureUnits\n\n this._loadMultiEffect('multi-2d-sprite', (effect) => {\n cc.sp.multi2dSpriteEffectAsset = effect;\n effect.addRef();\n cc.sp.inited = true;\n cc.sp.multiBatcher.init();\n if (cc.dynamicAtlasManager.maxAtlasCount === -1) cc.dynamicAtlasManager.maxAtlasCount = Math.max(0, cc.sp.MAX_MULTITEXTURE_NUM - cc.sp.charAtlasAutoBatchCount);\n cb();\n });\n },\n\n _loadMultiEffect(name, cb) {\n if (CC_EDITOR) {\n cc.assetManager.loadAny(Editor.assetdb.remote.urlToUuid('db://service-pack-resources/sp/effects/' + name + '.effect'), function (err, effect) {\n if (err) {\n return Editor.error(err);\n } else {\n cb(effect);\n }\n });\n } else {\n cc.assetManager.loadBundle('sp', (err, bundle) => {\n if (err) {\n cc.error(err);\n } else {\n bundle.load('effects/' + name, cc.EffectAsset, (err, effect) => {\n if (err) {\n cc.error(err);\n } else {\n cb(effect);\n }\n });\n }\n });\n }\n },\n\n /**\n * !#en\n * Get the built-in asset using specific type and name.\n * \n * !#zh\n * 通过特定的类型和名称获取内建资源\n * \n * @method getBuiltin\n * @param {string} [type] - The type of asset, such as `effect`\n * @param {string} [name] - The name of asset, such as `phong`\n * @return {Asset|Cache} Builtin-assets\n * \n * @example\n * cc.assetManaer.builtins.getBuiltin('effect', 'phone');\n * \n * @typescript\n * getBuiltin(type?: string, name?: string): cc.Asset | Cache\n */\n getBuiltin (type, name) {\n if (arguments.length === 0) return this._assets;\n else if (arguments.length === 1) return this._assets.get(type);\n else return this._assets.get(type).get(name);\n },\n\n /**\n * !#en\n * Clear all builtin assets\n * \n * !#zh\n * 清空所有内置资源\n * \n * @method clear\n * \n * @typescript\n * clear(): void\n */\n clear () {\n this._assets.forEach(function (assets) {\n assets.forEach(function (asset) {\n releaseManager.tryRelease(asset, true);\n });\n assets.clear();\n });\n }\n}\n\nmodule.exports = builtins;\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst Config = require('./config');\nconst releaseManager = require('./releaseManager');\nconst { parseParameters, parseLoadResArgs } = require('./utilities');\nconst { RequestType, assets, bundles } = require('./shared');\n\n/**\n * @module cc.AssetManager\n */\n\n/**\n * !#en\n * A bundle contains an amount of assets(includes scene), you can load, preload, release asset which is in this bundle\n * \n * !#zh\n * 一个包含一定数量资源(包括场景)的包,你可以加载,预加载,释放此包内的资源\n * \n * @class Bundle\n */\nfunction Bundle () {\n this._config = new Config();\n}\n\nBundle.prototype = {\n \n /**\n * !#en\n * Create a bundle\n * \n * !#zh\n * 创建一个 bundle\n * \n * @method constructor\n * \n * @typescript\n * constructor()\n */\n constructor: Bundle,\n\n /**\n * !#en\n * The name of this bundle\n * \n * !#zh\n * 此 bundle 的名称\n * \n * @property name\n * @type {string}\n */\n get name () {\n return this._config.name;\n },\n\n /**\n * !#en\n * The dependency of this bundle\n * \n * !#zh\n * 此 bundle 的依赖\n * \n * @property deps\n * @type {string[]}\n */\n get deps () {\n return this._config.deps;\n },\n\n /**\n * !#en\n * The root path of this bundle, such like 'http://example.com/bundle1'\n * \n * !#zh\n * 此 bundle 的根路径, 例如 'http://example.com/bundle1'\n * \n * @property base\n * @type {string}\n */\n get base () {\n return this._config.base;\n },\n\n /**\n * !#en\n * Get asset's info using path, only valid when asset is in bundle folder.\n * \n * !#zh\n * 使用 path 获取资源的配置信息\n * \n * @method getInfoWithPath\n * @param {string} path - The relative path of asset, such as 'images/a'\n * @param {Function} [type] - The constructor of asset, such as `cc.Texture2D`\n * @returns {Object} The asset info \n * \n * @example\n * var info = bundle.getInfoWithPath('image/a', cc.Texture2D);\n * \n * @typescript\n * getInfoWithPath (path: string, type?: typeof cc.Asset): Record\n */\n getInfoWithPath (path, type) {\n return this._config.getInfoWithPath(path, type);\n },\n\n /**\n * !#en\n * Get all asset's info within specific folder\n * \n * !#zh\n * 获取在某个指定文件夹下的所有资源信息\n * \n * @method getDirWithPath\n * @param {string} path - The relative path of folder, such as 'images'\n * @param {Function} [type] - The constructor should be used to filter paths\n * @param {Array} [out] - The output array\n * @returns {Object[]} Infos\n * \n * @example \n * var infos = [];\n * bundle.getDirWithPath('images', cc.Texture2D, infos);\n * \n * @typescript\n * getDirWithPath (path: string, type: typeof cc.Asset, out: Array>): Array>\n * getDirWithPath (path: string, type: typeof cc.Asset): Array>\n * getDirWithPath (path: string): Array>\n */\n getDirWithPath (path, type, out) {\n return this._config.getDirWithPath(path, type, out);\n },\n\n /**\n * !#en\n * Get asset's info with uuid\n * \n * !#zh\n * 通过 uuid 获取资源信息\n * \n * @method getAssetInfo\n * @param {string} uuid - The asset's uuid\n * @returns {Object} info \n * \n * @example\n * var info = bundle.getAssetInfo('fcmR3XADNLgJ1ByKhqcC5Z');\n * \n * @typescript\n * getAssetInfo (uuid: string): Record\n */\n getAssetInfo (uuid) {\n return this._config.getAssetInfo(uuid);\n },\n\n /**\n * !#en\n * Get scene'info with name\n * \n * !#zh\n * 通过场景名获取场景信息\n * \n * @method getSceneInfo\n * @param {string} name - The name of scene\n * @return {Object} info\n * \n * @example\n * var info = bundle.getSceneInfo('first.fire');\n * \n * @typescript\n * getSceneInfo(name: string): Record\n */\n getSceneInfo (name) {\n return this._config.getSceneInfo(name);\n },\n\n /**\n * !#en\n * Initialize this bundle with options\n * \n * !#zh\n * 初始化此 bundle\n * \n * @method init\n * @param {Object} options \n * \n * @typescript\n * init(options: Record): void\n */\n init (options) {\n this._config.init(options);\n bundles.add(options.name, this);\n },\n\n /**\n * !#en\n * Load the asset within this bundle by the path which is relative to bundle's path\n * \n * !#zh\n * 通过相对路径加载分包中的资源。路径是相对分包文件夹路径的相对路径\n *\n * @method load\n * @param {String|String[]} paths - Paths of the target assets.The path is relative to the bundle's folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be loaded if this argument is supplied.\n * @param {Function} [onProgress] - Callback invoked when progression change.\n * @param {Number} onProgress.finish - The number of the items that are already completed.\n * @param {Number} onProgress.total - The total number of the items.\n * @param {RequestItem} onProgress.item - The finished request item.\n * @param {Function} [onComplete] - Callback invoked when all assets loaded.\n * @param {Error} onComplete.error - The error info or null if loaded successfully.\n * @param {Asset|Asset[]} onComplete.assets - The loaded assets.\n *\n * @example\n * // load the texture (${project}/assets/resources/textures/background.jpg) from resources\n * cc.resources.load('textures/background', cc.Texture2D, (err, texture) => console.log(err));\n * \n * // load the audio (${project}/assets/resources/music/hit.mp3) from resources\n * cc.resources.load('music/hit', cc.AudioClip, (err, audio) => console.log(err));\n * \n * // load the prefab (${project}/assets/bundle1/misc/character/cocos) from bundle1 folder\n * bundle1.load('misc/character/cocos', cc.Prefab, (err, prefab) => console.log(err));\n *\n * // load the sprite frame (${project}/assets/some/xxx/bundle2/imgs/cocos.png) from bundle2 folder\n * bundle2.load('imgs/cocos', cc.SpriteFrame, null, (err, spriteFrame) => console.log(err));\n * \n * @typescript\n * load(paths: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T) => void): void\n * load(paths: string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void\n * load(paths: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T) => void): void\n * load(paths: string[], onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void\n * load(paths: string, type: typeof cc.Asset, onComplete?: (error: Error, assets: T) => void): void\n * load(paths: string[], type: typeof cc.Asset, onComplete?: (error: Error, assets: Array) => void): void\n * load(paths: string, onComplete?: (error: Error, assets: T) => void): void\n * load(paths: string[], onComplete?: (error: Error, assets: Array) => void): void\n */\n load (paths, type, onProgress, onComplete) {\n var { type, onProgress, onComplete } = parseLoadResArgs(type, onProgress, onComplete);\n cc.assetManager.loadAny(paths, { __requestType__: RequestType.PATH, type: type, bundle: this.name, __outputAsArray__: Array.isArray(paths) }, onProgress, onComplete);\n },\n\n /**\n * !#en\n * Preload the asset within this bundle by the path which is relative to bundle's path. \n * After calling this method, you still need to finish loading by calling `Bundle.load`.\n * It will be totally fine to call `Bundle.load` at any time even if the preloading is not\n * yet finished\n * \n * !#zh\n * 通过相对路径预加载分包中的资源。路径是相对分包文件夹路径的相对路径。调用完后,你仍然需要通过 `Bundle.load` 来完成加载。\n * 就算预加载还没完成,你也可以直接调用 `Bundle.load`。\n *\n * @method preload\n * @param {String|String[]} paths - Paths of the target asset.The path is relative to bundle folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be loaded if this argument is supplied.\n * @param {Function} [onProgress] - Callback invoked when progression change.\n * @param {Number} onProgress.finish - The number of the items that are already completed.\n * @param {Number} onProgress.total - The total number of the items.\n * @param {RequestItem} onProgress.item - The finished request item.\n * @param {Function} [onComplete] - Callback invoked when the resource loaded.\n * @param {Error} onComplete.error - The error info or null if loaded successfully.\n * @param {RequestItem[]} onComplete.items - The preloaded items.\n * \n * @example\n * // preload the texture (${project}/assets/resources/textures/background.jpg) from resources\n * cc.resources.preload('textures/background', cc.Texture2D);\n * \n * // preload the audio (${project}/assets/resources/music/hit.mp3) from resources\n * cc.resources.preload('music/hit', cc.AudioClip);\n * // wait for while\n * cc.resources.load('music/hit', cc.AudioClip, (err, audioClip) => {});\n * \n * * // preload the prefab (${project}/assets/bundle1/misc/character/cocos) from bundle1 folder\n * bundle1.preload('misc/character/cocos', cc.Prefab);\n *\n * // load the sprite frame of (${project}/assets/bundle2/imgs/cocos.png) from bundle2 folder\n * bundle2.preload('imgs/cocos', cc.SpriteFrame);\n * // wait for while\n * bundle2.load('imgs/cocos', cc.SpriteFrame, (err, spriteFrame) => {});\n * \n * @typescript\n * preload(paths: string|string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preload(paths: string|string[], onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preload(paths: string|string[], type: typeof cc.Asset, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preload(paths: string|string[], type: typeof cc.Asset): void\n * preload(paths: string|string[], onComplete: (error: Error, items: RequestItem[]) => void): void\n * preload(paths: string|string[]): void\n */\n preload (paths, type, onProgress, onComplete) {\n var { type, onProgress, onComplete } = parseLoadResArgs(type, onProgress, onComplete);\n cc.assetManager.preloadAny(paths, { __requestType__: RequestType.PATH, type: type, bundle: this.name }, onProgress, onComplete);\n },\n\n /**\n * !#en\n * Load all assets under a folder inside the bundle folder. \n * \n * Note: All asset paths in Creator use forward slashes, paths using backslashes will not work.\n * \n * !#zh\n * 加载目标文件夹中的所有资源, 注意:路径中只能使用斜杠,反斜杠将停止工作\n *\n * @method loadDir\n * @param {string} dir - path of the target folder.The path is relative to the bundle folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be loaded if this argument is supplied.\n * @param {Function} [onProgress] - Callback invoked when progression change.\n * @param {Number} onProgress.finish - The number of the items that are already completed.\n * @param {Number} onProgress.total - The total number of the items.\n * @param {Object} onProgress.item - The latest request item\n * @param {Function} [onComplete] - A callback which is called when all assets have been loaded, or an error occurs.\n * @param {Error} onComplete.error - If one of the asset failed, the complete callback is immediately called with the error. If all assets are loaded successfully, error will be null.\n * @param {Asset[]|Asset} onComplete.assets - An array of all loaded assets.\n * \n * @example\n * // load all audios (resources/audios/) \n * cc.resources.loadDir('audios', cc.AudioClip, (err, audios) => {});\n *\n * // load all textures in \"resources/imgs/\"\n * cc.resources.loadDir('imgs', cc.Texture2D, null, function (err, textures) {\n * var texture1 = textures[0];\n * var texture2 = textures[1];\n * });\n * \n * // load all prefabs (${project}/assets/bundle1/misc/characters/) from bundle1 folder\n * bundle1.loadDir('misc/characters', cc.Prefab, (err, prefabs) => console.log(err));\n *\n * // load all sprite frame (${project}/assets/some/xxx/bundle2/skills/) from bundle2 folder\n * bundle2.loadDir('skills', cc.SpriteFrame, null, (err, spriteFrames) => console.log(err));\n *\n * @typescript\n * loadDir(dir: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void\n * loadDir(dir: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void\n * loadDir(dir: string, type: typeof cc.Asset, onComplete: (error: Error, assets: Array) => void): void\n * loadDir(dir: string, type: typeof cc.Asset): void\n * loadDir(dir: string, onComplete: (error: Error, assets: Array) => void): void\n * loadDir(dir: string): void\n */\n loadDir (dir, type, onProgress, onComplete) {\n var { type, onProgress, onComplete } = parseLoadResArgs(type, onProgress, onComplete);\n cc.assetManager.loadAny(dir, { __requestType__: RequestType.DIR, type: type, bundle: this.name, __outputAsArray__: true }, onProgress, onComplete);\n },\n\n /**\n * !#en\n * Preload all assets under a folder inside the bundle folder. After calling this method, you still need to finish loading by calling `Bundle.loadDir`.\n * It will be totally fine to call `Bundle.loadDir` at any time even if the preloading is not yet finished\n * \n * !#zh\n * 预加载目标文件夹中的所有资源。调用完后,你仍然需要通过 `Bundle.loadDir` 来完成加载。\n * 就算预加载还没完成,你也可以直接调用 `Bundle.loadDir`。\n *\n * @method preloadDir\n * @param {string} dir - path of the target folder.The path is relative to the bundle folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be preloaded if this argument is supplied.\n * @param {Function} [onProgress] - Callback invoked when progression change.\n * @param {Number} onProgress.finish - The number of the items that are already completed.\n * @param {Number} onProgress.total - The total number of the items.\n * @param {Object} onProgress.item - The latest request item\n * @param {Function} [onComplete] - A callback which is called when all assets have been loaded, or an error occurs.\n * @param {Error} onComplete.error - If one of the asset failed, the complete callback is immediately called with the error. If all assets are preloaded successfully, error will be null.\n * @param {RequestItem[]} onComplete.items - An array of all preloaded items.\n * \n * @example\n * // preload all audios (resources/audios/) \n * cc.resources.preloadDir('audios', cc.AudioClip);\n *\n * // preload all textures in \"resources/imgs/\"\n * cc.resources.preloadDir('imgs', cc.Texture2D);\n * // wait for while\n * cc.resources.loadDir('imgs', cc.Texture2D, (err, textures) => {});\n * \n * // preload all prefabs (${project}/assets/bundle1/misc/characters/) from bundle1 folder\n * bundle1.preloadDir('misc/characters', cc.Prefab);\n *\n * // preload all sprite frame (${project}/assets/some/xxx/bundle2/skills/) from bundle2 folder\n * bundle2.preloadDir('skills', cc.SpriteFrame);\n * // wait for while\n * bundle2.loadDir('skills', cc.SpriteFrame, (err, spriteFrames) => {});\n * \n * @typescript\n * preloadDir(dir: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preloadDir(dir: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preloadDir(dir: string, type: typeof cc.Asset, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preloadDir(dir: string, type: typeof cc.Asset): void\n * preloadDir(dir: string, onComplete: (error: Error, items: RequestItem[]) => void): void\n * preloadDir(dir: string): void\n */\n preloadDir (dir, type, onProgress, onComplete) {\n var { type, onProgress, onComplete } = parseLoadResArgs(type, onProgress, onComplete);\n cc.assetManager.preloadAny(dir, { __requestType__: RequestType.DIR, type: type, bundle: this.name }, onProgress, onComplete);\n },\n\n /**\n * !#en \n * Loads the scene within this bundle by its name. \n * \n * !#zh \n * 通过场景名称加载分包中的场景。\n *\n * @method loadScene\n * @param {String} sceneName - The name of the scene to load.\n * @param {Object} [options] - Some optional parameters\n * @param {Function} [onProgress] - Callback invoked when progression change.\n * @param {Number} onProgress.finish - The number of the items that are already completed.\n * @param {Number} onProgress.total - The total number of the items.\n * @param {Object} onProgress.item - The latest request item\n * @param {Function} [onComplete] - callback, will be called after scene launched.\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {SceneAsset} onComplete.sceneAsset - The scene asset\n * \n * @example\n * bundle1.loadScene('first', (err, sceneAsset) => cc.director.runScene(sceneAsset));\n * \n * @typescript\n * loadScene(sceneName: string, options: Record, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void\n * loadScene(sceneName: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void\n * loadScene(sceneName: string, options: Record, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void\n * loadScene(sceneName: string, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void\n * loadScene(sceneName: string, options: Record): void\n * loadScene(sceneName: string): void\n */\n loadScene (sceneName, options, onProgress, onComplete) {\n var { options, onProgress, onComplete } = parseParameters(options, onProgress, onComplete);\n \n options.preset = options.preset || 'scene';\n options.bundle = this.name;\n cc.assetManager.loadAny({ 'scene': sceneName }, options, onProgress, function (err, sceneAsset) {\n if (err) {\n cc.error(err.message, err.stack);\n onComplete && onComplete(err);\n }\n else if (sceneAsset instanceof cc.SceneAsset) {\n var scene = sceneAsset.scene;\n scene._id = sceneAsset._uuid;\n scene._name = sceneAsset._name;\n onComplete && onComplete(null, sceneAsset);\n }\n else {\n onComplete && onComplete(new Error('The asset ' + sceneAsset._uuid + ' is not a scene'));\n }\n });\n },\n\n /**\n * !#en\n * Preloads the scene within this bundle by its name. After calling this method, you still need to finish loading by calling `Bundle.loadScene` or `cc.director.loadScene`.\n * It will be totally fine to call `Bundle.loadDir` at any time even if the preloading is not yet finished\n * \n * !#zh \n * 通过场景名称预加载分包中的场景.调用完后,你仍然需要通过 `Bundle.loadScene` 或 `cc.director.loadScene` 来完成加载。\n * 就算预加载还没完成,你也可以直接调用 `Bundle.loadScene` 或 `cc.director.loadScene`。\n *\n * @method preloadScene\n * @param {String} sceneName - The name of the scene to preload.\n * @param {Object} [options] - Some optional parameters\n * @param {Function} [onProgress] - callback, will be called when the load progression change.\n * @param {Number} onProgress.finish - The number of the items that are already completed\n * @param {Number} onProgress.total - The total number of the items\n * @param {RequestItem} onProgress.item The latest request item\n * @param {Function} [onComplete] - callback, will be called after scene loaded.\n * @param {Error} onComplete.error - null or the error object.\n * \n * @example\n * bundle1.preloadScene('first');\n * // wait for a while\n * bundle1.loadScene('first', (err, scene) => cc.director.runScene(scene));\n * \n * @typescript\n * preloadScene(sceneName: string, options: Record, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error) => void): void\n * preloadScene(sceneName: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error) => void): void\n * preloadScene(sceneName: string, options: Record, onComplete: (error: Error) => void): void\n * preloadScene(sceneName: string, onComplete: (error: Error) => void): void\n * preloadScene(sceneName: string, options: Record): void\n * preloadScene(sceneName: string): void\n */\n preloadScene (sceneName, options, onProgress, onComplete) {\n var { options, onProgress, onComplete } = parseParameters(options, onProgress, onComplete);\n\n options.bundle = this.name;\n cc.assetManager.preloadAny({'scene': sceneName}, options, onProgress, function (err) {\n if (err) {\n cc.errorID(1210, sceneName, err.message);\n }\n onComplete && onComplete(err);\n });\n },\n\n /**\n * !#en\n * Get asset within this bundle by path and type. \n * After you load asset with {{#crossLink \"Bundle/load:method\"}}{{/crossLink}} or {{#crossLink \"Bundle/loadDir:method\"}}{{/crossLink}},\n * you can acquire them by passing the path to this API.\n * \n * !#zh\n * 通过路径与类型获取资源。在你使用 {{#crossLink \"Bundle/load:method\"}}{{/crossLink}} 或者 {{#crossLink \"Bundle/loadDir:method\"}}{{/crossLink}} 之后,\n * 你能通过传路径通过这个 API 获取到这些资源。\n * \n * @method get\n * @param {String} path - The path of asset\n * @param {Function} [type] - Only asset of type will be returned if this argument is supplied.\n * @returns {Asset} \n * \n * @example\n * bundle1.get('music/hit', cc.AudioClip);\n * \n * @typescript\n * get (path: string, type?: typeof cc.Asset): T\n */\n get (path, type) {\n var info = this.getInfoWithPath(path, type);\n return assets.get(info && info.uuid);\n },\n\n /**\n * !#en \n * Release the asset loaded by {{#crossLink \"Bundle/load:method\"}}{{/crossLink}} or {{#crossLink \"Bundle/loadDir:method\"}}{{/crossLink}} and it's dependencies. \n * Refer to {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}} for detailed informations.\n * \n * !#zh \n * 释放通过 {{#crossLink \"Bundle/load:method\"}}{{/crossLink}} 或者 {{#crossLink \"Bundle/loadDir:method\"}}{{/crossLink}} 加载的资源。详细信息请参考 {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}}\n * \n * @method release\n * @param {String} path - The path of asset\n * @param {Function} [type] - Only asset of type will be released if this argument is supplied.\n * \n * @example\n * // release a texture which is no longer need\n * bundle1.release('misc/character/cocos');\n *\n * @typescript\n * release(path: string, type: typeof cc.Asset): void\n * release(path: string): void\n */\n release (path, type) {\n releaseManager.tryRelease(this.get(path, type), true);\n },\n\n /**\n * !#en \n * Release all unused assets within this bundle. Refer to {{#crossLink \"AssetManager/releaseAll:method\"}}{{/crossLink}} for detailed informations.\n * \n * !#zh \n * 释放此包中的所有没有用到的资源。详细信息请参考 {{#crossLink \"AssetManager/releaseAll:method\"}}{{/crossLink}}\n *\n * @method releaseUnusedAssets\n * @private\n * \n * @example\n * // release all unused asset within bundle1\n * bundle1.releaseUnusedAssets();\n * \n * @typescript\n * releaseUnusedAssets(): void\n */\n releaseUnusedAssets () {\n var self = this;\n assets.forEach(function (asset) {\n let info = self.getAssetInfo(asset._uuid);\n if (info && !info.redirect) {\n releaseManager.tryRelease(asset);\n }\n });\n },\n\n /**\n * !#en \n * Release all assets within this bundle. Refer to {{#crossLink \"AssetManager/releaseAll:method\"}}{{/crossLink}} for detailed informations.\n * \n * !#zh \n * 释放此包中的所有资源。详细信息请参考 {{#crossLink \"AssetManager/releaseAll:method\"}}{{/crossLink}}\n *\n * @method releaseAll\n * \n * @example\n * // release all asset within bundle1\n * bundle1.releaseAll();\n * \n * @typescript\n * releaseAll(): void\n */\n releaseAll () {\n var self = this;\n assets.forEach(function (asset) {\n let info = self.getAssetInfo(asset._uuid);\n if (info && !info.redirect) {\n releaseManager.tryRelease(asset, true);\n }\n });\n },\n\n _destroy () {\n this._config.destroy();\n }\n\n};\n\nmodule.exports = Bundle;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n/**\n * @module cc.AssetManager\n */\n\nconst js = require('../platform/js');\n/**\n * !#en\n * use to cache something\n * \n * !#zh\n * 用于缓存某些内容\n * \n * @class Cache\n * @typescript Cache\n */\nfunction Cache (map) {\n if (map) {\n this._map = map;\n this._count = Object.keys(map).length;\n }\n else {\n this._map = js.createMap(true);\n this._count = 0;\n }\n}\n\nCache.prototype = {\n \n /**\n * !#en\n * Create a cache\n * \n * !#zh\n * 创建一个 cache\n * \n * @method constructor\n * @param {Object} [map] - An object used to initialize \n * \n * @typescript\n * constructor(map?: Record)\n */\n constructor: Cache,\n\n /**\n * !#en\n * Add Key-Value to cache\n * \n * !#zh\n * 增加键值对到缓存中\n * \n * @method add\n * @param {String} key - The key\n * @param {*} val - The value\n * @returns {*} The value\n * \n * @example\n * var cache = new Cache();\n * cache.add('test', null);\n * \n * @typescript\n * add(key: string, val: T): T\n */\n add (key, val) { \n if (!(key in this._map)) this._count++;\n return this._map[key] = val;\n },\n\n /**\n * !#en\n * Get the cached content by key\n * \n * !#zh\n * 通过 key 获取对应的 value\n * \n * @method get\n * @param {string} key - The key\n * @returns {*} The corresponding content\n * \n * @example\n * var cache = new Cache();\n * var test = cache.get('test');\n * \n * @typescript\n * get(key: string): T\n */\n get (key) {\n return this._map[key];\n },\n\n /**\n * !#en\n * Check whether or not content exists by key\n * \n * !#zh\n * 通过 Key 判断是否存在对应的内容\n * \n * @method has\n * @param {string} key - The key\n * @returns {boolean} True indecates that content of the key exists\n * \n * @example\n * var cache = new Cache();\n * var exist = cache.has('test');\n * \n * @typescript\n * has(key: string): boolean\n */\n has (key) {\n return key in this._map;\n },\n\n /**\n * !#en\n * Remove the cached content by key\n * \n * !#zh\n * 通过 Key 移除对应的内容\n * \n * @method remove\n * @param {string} key - The key\n * @returns {*} The removed content\n * \n * @example\n * var cache = new Cache();\n * var content = cache.remove('test');\n * \n * @typescript\n * remove(key: string): T\n */\n remove (key) {\n var out = this._map[key];\n if (key in this._map) {\n delete this._map[key];\n this._count--;\n }\n return out;\n },\n\n /**\n * !#en\n * Clear all content\n * \n * !#zh\n * 清除所有内容\n * \n * @method clear\n * \n * @example\n * var cache = new Cache();\n * cache.clear();\n * \n * @typescript\n * clear():void\n */\n clear () {\n if (this._count !== 0) {\n this._map = js.createMap(true);\n this._count = 0;\n }\n },\n\n /**\n * !#en\n * Enumerate all content and invoke function\n * \n * !#zh\n * 枚举所有内容并执行方法\n * \n * @method forEach\n * @param {Function} func - Function to be invoked\n * @param {*} func.val - The value \n * @param {String} func.key - The corresponding key\n * \n * @example\n * var cache = new Cache();\n * cache.forEach((val, key) => console.log(key));\n * \n * @typescript\n * forEach(func: (val: T, key: string) => void): void\n */\n forEach (func) {\n for (var key in this._map) {\n func(this._map[key], key);\n }\n },\n\n /**\n * !#en\n * Enumerate all content to find one element which can fulfill condition\n * \n * !#zh\n * 枚举所有内容,找到一个可以满足条件的元素\n * \n * @method find\n * @param {Function} predicate - The condition\n * @returns {*} content\n * \n * @example\n * var cache = new Cache();\n * var val = cache.find((val, key) => key === 'test');\n * \n * @typescript\n * find(predicate: (val: T, key: string) => boolean): T\n */\n find (predicate) {\n for (var key in this._map) {\n if (predicate(this._map[key], key)) return this._map[key];\n }\n return null;\n },\n\n /**\n * !#en\n * The count of cached content\n * \n * !#zh\n * 缓存数量\n * \n * @property count\n * @type {Number}\n */\n get count () {\n return this._count;\n },\n\n /**\n * !#en\n * Destroy this cache\n * \n * !#zh\n * 销毁这个 cache\n * \n * @method destroy\n * \n * @typescript\n * destroy(): void\n */\n destroy () {\n this._map = null;\n }\n};\n\nmodule.exports = Cache;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst js = require('../platform/js');\nconst Cache = require('./cache');\nconst { normalize } = require('./helper');\nconst { processOptions } = require('./utilities');\n\nfunction Config () {\n\n this.name = '';\n\n this.base = '';\n\n this.importBase = '';\n\n this.nativeBase = '';\n\n this.deps = null;\n\n this.assetInfos = new Cache();\n\n this.scenes = new Cache();\n\n this.paths = new Cache();\n}\n\nConfig.prototype = {\n\n constructor: Config,\n\n init: function (options) {\n processOptions(options);\n\n this.importBase = options.importBase || '';\n this.nativeBase = options.nativeBase || '';\n this.base = options.base || '';\n this.name = options.name || '';\n this.deps = options.deps || [];\n // init\n this._initUuid(options.uuids);\n this._initPath(options.paths);\n this._initScene(options.scenes);\n this._initPackage(options.packs);\n this._initVersion(options.versions);\n this._initRedirect(options.redirect);\n },\n\n _initUuid: function (uuidList) {\n if (!uuidList) return;\n this.assetInfos.clear();\n for (var i = 0, l = uuidList.length; i < l; i++) {\n var uuid = uuidList[i];\n this.assetInfos.add(uuid, {uuid});\n }\n },\n\n _initPath: function (pathList) {\n if (!pathList) return;\n var paths = this.paths;\n paths.clear();\n for (var uuid in pathList) {\n var info = pathList[uuid];\n var path = info[0];\n var type = info[1];\n var isSubAsset = info.length === 3;\n\n var assetInfo = this.assetInfos.get(uuid);\n assetInfo.path = path;\n assetInfo.ctor = js._getClassById(type);\n if (paths.has(path)) {\n if (isSubAsset) {\n paths.get(path).push(assetInfo);\n }\n else {\n paths.get(path).splice(0, 0, assetInfo);\n } \n }\n else {\n paths.add(path, [assetInfo]);\n }\n }\n },\n\n _initScene: function (sceneList) {\n if (!sceneList) return;\n var scenes = this.scenes;\n scenes.clear();\n var assetInfos = this.assetInfos;\n for (var sceneName in sceneList) {\n var uuid = sceneList[sceneName];\n var assetInfo = assetInfos.get(uuid);\n assetInfo.url = sceneName;\n scenes.add(sceneName, assetInfo);\n }\n },\n\n _initPackage: function (packageList) {\n if (!packageList) return;\n var assetInfos = this.assetInfos;\n for (var packUuid in packageList) {\n var uuids = packageList[packUuid];\n var pack = {uuid: packUuid, packs: uuids, ext:'.json'};\n assetInfos.add(packUuid, pack);\n\n for (var i = 0, l = uuids.length; i < l; i++) {\n var uuid = uuids[i];\n var assetInfo = assetInfos.get(uuid);\n var assetPacks = assetInfo.packs;\n if (assetPacks) {\n if (l === 1) {\n assetPacks.splice(0, 0, pack);\n }\n else {\n assetPacks.push(pack);\n }\n }\n else {\n assetInfo.packs = [pack];\n }\n }\n }\n },\n\n _initVersion: function (versions) {\n if (!versions) return;\n var assetInfos = this.assetInfos;\n var entries = versions.import;\n if (entries) {\n for (var i = 0, l = entries.length; i < l; i += 2) {\n var uuid = entries[i];\n var assetInfo = assetInfos.get(uuid);\n assetInfo.ver = entries[i + 1];\n }\n }\n entries = versions.native;\n if (entries) {\n for (var i = 0, l = entries.length; i < l; i += 2) {\n var uuid = entries[i];\n var assetInfo = assetInfos.get(uuid);\n assetInfo.nativeVer = entries[i + 1];\n }\n }\n },\n\n _initRedirect: function (redirect) {\n if (!redirect) return;\n var assetInfos = this.assetInfos;\n for (var i = 0, l = redirect.length; i < l; i += 2) {\n var uuid = redirect[i];\n var assetInfo = assetInfos.get(uuid);\n assetInfo.redirect = redirect[i + 1];\n }\n },\n\n getInfoWithPath: function (path, type) {\n\n if (!path) {\n return null;\n }\n path = normalize(path);\n var items = this.paths.get(path);\n if (items) {\n if (type) {\n for (var i = 0, l = items.length; i < l; i++) {\n var assetInfo = items[i];\n if (js.isChildClassOf(assetInfo.ctor, type)) {\n return assetInfo;\n }\n }\n }\n else {\n return items[0];\n }\n }\n return null;\n },\n\n getDirWithPath: function (path, type, out) {\n path = normalize(path);\n if (path[path.length - 1] === '/') {\n path = path.slice(0, -1);\n }\n\n var infos = out || [];\n function isMatchByWord (path, test) {\n if (path.length > test.length) {\n var nextAscii = path.charCodeAt(test.length);\n return nextAscii === 47; // '/'\n }\n return true;\n }\n this.paths.forEach(function (items, p) {\n if ((p.startsWith(path) && isMatchByWord(p, path)) || !path) {\n for (var i = 0, l = items.length; i < l; i++) {\n var entry = items[i];\n if (!type || js.isChildClassOf(entry.ctor, type)) {\n infos.push(entry);\n }\n }\n }\n });\n\n return infos;\n },\n\n getAssetInfo: function (uuid) {\n return this.assetInfos.get(uuid);\n },\n\n getSceneInfo: function (name) {\n if (!name.endsWith('.fire')) {\n name += '.fire';\n }\n if (name[0] !== '/' && !name.startsWith('db://')) {\n name = '/' + name; // 使用全名匹配\n }\n // search scene\n var info = this.scenes.find(function (val, key) {\n return key.endsWith(name);\n });\n return info;\n },\n\n destroy: function () {\n this.paths.destroy();\n this.scenes.destroy();\n this.assetInfos.destroy();\n }\n};\n\nif (CC_TEST) {\n cc._Test.Config = Config;\n}\n\nmodule.exports = Config;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst Cache = require('./cache');\nconst deserialize = require('./deserialize');\nconst { files, parsed } = require('./shared');\nimport { hasNativeDep , getDependUuidList } from '../platform/deserialize-compiled';\nimport deserializeForCompiled from '../platform/deserialize-compiled';\n\n/**\n * @module cc.AssetManager\n */\n/**\n * !#en\n * Control asset's dependency list, it is a singleton. All member can be accessed with `cc.assetManager.dependUtil`\n * \n * !#zh\n * 控制资源的依赖列表,这是一个单例, 所有成员能通过 `cc.assetManager.dependUtil` 访问\n * \n * @class DependUtil\n */\nvar dependUtil = {\n _depends: new Cache(),\n\n init () {\n this._depends.clear();\n },\n\n /**\n * !#en\n * Get asset's native dependency. For example, Texture's native dependency is image.\n * \n * !#zh\n * 获取资源的原生依赖,例如 Texture 的原生依赖是图片\n * \n * @method getNativeDep\n * @param {string} uuid - asset's uuid\n * @returns {Object} native dependency\n * \n * @example\n * var dep = dependUtil.getNativeDep('fcmR3XADNLgJ1ByKhqcC5Z');\n * \n * @typescript\n * getNativeDep(uuid: string): Record\n */\n getNativeDep (uuid) {\n let depend = this._depends.get(uuid);\n if (depend) return depend.nativeDep && Object.assign({}, depend.nativeDep);\n return null;\n },\n\n /**\n * !#en\n * Get asset's direct referencing non-native dependency list. For example, Material's non-native dependencies are Texture.\n * \n * !#zh\n * 获取资源直接引用的非原生依赖列表,例如,材质的非原生依赖是 Texture\n * \n * @method getDeps\n * @param {string} uuid - asset's uuid\n * @returns {string[]} direct referencing non-native dependency list\n * \n * @example\n * var deps = dependUtil.getDeps('fcmR3XADNLgJ1ByKhqcC5Z');\n * \n * @typescript\n * getDeps(uuid: string): string[]\n */\n getDeps (uuid) {\n if (this._depends.has(uuid)) {\n return this._depends.get(uuid).deps;\n }\n return [];\n },\n \n /**\n * !#en\n * Get non-native dependency list of the loaded asset, include indirect reference.\n * The returned array stores the dependencies with their uuid, after retrieve dependencies,\n * \n * !#zh\n * 获取某个已经加载好的资源的所有非原生依赖资源列表,包括间接引用的资源,并保存在数组中返回。\n * 返回的数组将仅保存依赖资源的 uuid。\n *\n * @method getDependsRecursively\n * @param {String} uuid - The asset's uuid\n * @returns {string[]} non-native dependency list\n * \n * @example\n * var deps = dependUtil.getDepsRecursively('fcmR3XADNLgJ1ByKhqcC5Z');\n * \n * @typescript\n * getDepsRecursively(uuid: string): string[]\n */\n getDepsRecursively (uuid) {\n var exclude = Object.create(null), depends = [];\n this._descend(uuid, exclude, depends);\n return depends;\n },\n\n _descend (uuid, exclude, depends) {\n var deps = this.getDeps(uuid);\n for (var i = 0; i < deps.length; i++) {\n var depend = deps[i];\n if ( !exclude[depend] ) {\n exclude[depend] = true;\n depends.push(depend);\n this._descend(depend, exclude, depends);\n }\n }\n },\n\n remove (uuid) {\n this._depends.remove(uuid);\n },\n \n /**\n * !#en\n * Extract dependency list from serialized data or asset and then store in cache.\n * \n * !#zh\n * 从序列化数据或资源中提取出依赖列表,并且存储在缓存中。\n * \n * @param {string} uuid - The uuid of serialized data or asset\n * @param {Object} json - Serialized data or asset\n * @returns {Object} dependency list, include non-native and native dependency\n * \n * @example\n * downloader.downloadFile('test.json', {responseType: 'json'}, null, (err, file) => {\n * var dependencies = parse('fcmR3XADNLgJ1ByKhqcC5Z', file);\n * });\n * \n * @typescript\n * parse(uuid: string, json: any): { deps?: string[], nativeDep?: any }\n */\n parse (uuid, json) {\n var out = null;\n if (Array.isArray(json) || json.__type__) {\n\n if (out = this._depends.get(uuid)) return out;\n\n if (Array.isArray(json) && (!(CC_BUILD || deserializeForCompiled.isCompiledJson(json)) || !hasNativeDep(json))) {\n out = {\n deps: this._parseDepsFromJson(json),\n };\n }\n else {\n try {\n var asset = deserialize(json);\n out = this._parseDepsFromAsset(asset);\n out.nativeDep && (out.nativeDep.uuid = uuid);\n parsed.add(uuid + '@import', asset);\n }\n catch (e) {\n files.remove(uuid + '@import');\n out = { deps: [] };\n }\n }\n }\n // get deps from an existing asset \n else {\n if (!CC_EDITOR && (out = this._depends.get(uuid)) && out.parsedFromExistAsset) return out;\n out = this._parseDepsFromAsset(json);\n }\n // cache dependency list\n this._depends.add(uuid, out);\n return out;\n },\n\n _parseDepsFromAsset: function (asset) {\n var out = {\n deps: [],\n parsedFromExistAsset: true,\n preventPreloadNativeObject: asset.constructor.preventPreloadNativeObject,\n preventDeferredLoadDependents: asset.constructor.preventDeferredLoadDependents\n };\n let deps = asset.__depends__;\n for (var i = 0, l = deps.length; i < l; i++) {\n var dep = deps[i].uuid;\n out.deps.push(dep);\n }\n \n if (asset.__nativeDepend__) {\n out.nativeDep = asset._nativeDep;\n }\n\n return out;\n },\n\n _parseDepsFromJson: CC_EDITOR || CC_PREVIEW ? function (json) {\n\n if (deserializeForCompiled.isCompiledJson(json)) {\n let depends = getDependUuidList(json);\n depends.forEach((uuid, index) => depends[index] = cc.assetManager.utils.decodeUuid(uuid));\n return depends;\n }\n \n var depends = [];\n function parseDependRecursively (data, out) {\n if (!data || typeof data !== 'object' || data.__id__) return;\n var uuid = data.__uuid__;\n if (Array.isArray(data)) {\n for (let i = 0, l = data.length; i < l; i++) {\n parseDependRecursively(data[i], out);\n }\n }\n else if (uuid) { \n out.push(cc.assetManager.utils.decodeUuid(uuid));\n }\n else {\n for (var prop in data) {\n parseDependRecursively(data[prop], out);\n }\n }\n }\n parseDependRecursively(json, depends);\n return depends;\n } : function (json) {\n let depends = getDependUuidList(json);\n depends.forEach((uuid, index) => depends[index] = cc.assetManager.utils.decodeUuid(uuid));\n return depends;\n }\n};\n\nmodule.exports = dependUtil;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst js = require('../platform/js');\nrequire('../CCDirector');\nconst utilities = require('./utilities');\nconst dependUtil = require('./depend-util');\nconst releaseManager = require('./releaseManager');\nconst downloader = require('./downloader');\nconst factory = require('./factory');\nconst helper = require('./helper');\n\nconst ImageFmts = ['.png', '.jpg', '.bmp', '.jpeg', '.gif', '.ico', '.tiff', '.webp', '.image', '.pvr', '.pkm'];\nconst AudioFmts = ['.mp3', '.ogg', '.wav', '.m4a'];\n\nfunction GetTrue () { return true; }\n\nconst md5Pipe = {\n transformURL (url) {\n let uuid = helper.getUuidFromURL(url);\n if (!uuid) { return url; }\n let bundle = cc.assetManager.bundles.find((b) => {\n return !!b.getAssetInfo(uuid);\n });\n if (!bundle) { return url; }\n let hashValue = '';\n let info = bundle.getAssetInfo(uuid);\n if (url.startsWith(bundle.base + bundle._config.nativeBase)) {\n hashValue = info.nativeVer || '';\n }\n else {\n hashValue = info.ver || '';\n }\n if (!hashValue || url.indexOf(hashValue) !== -1) { return url; }\n let hashPatchInFolder = false;\n if (cc.path.extname(url) === '.ttf') {\n hashPatchInFolder = true;\n }\n if (hashPatchInFolder) {\n let dirname = cc.path.dirname(url);\n let basename = cc.path.basename(url);\n url = `${dirname}.${hashValue}/${basename}`;\n } else {\n url = url.replace(/.*[/\\\\][0-9a-fA-F]{2}[/\\\\]([0-9a-fA-F-]{8,})/, (match, uuid) => {\n return match + '.' + hashValue;\n });\n }\n \n return url;\n },\n};\n\n/**\n * `cc.loader` is deprecated, please backup your project and upgrade to {{#crossLink \"AssetManager\"}}{{/crossLink}}\n *\n * @class loader\n * @static\n * @deprecated cc.loader is deprecated, please backup your project and upgrade to cc.assetManager\n */\nconst loader = {\n /**\n * `cc.loader.onProgress` is deprecated, please transfer onProgress to API as a parameter\n * @property onProgress\n * @deprecated cc.loader.onProgress is deprecated, please transfer onProgress to API as a parameter\n */\n onProgress: null,\n _autoReleaseSetting: Object.create(null),\n\n get _cache () {\n return cc.assetManager.assets._map;\n },\n\n /**\n * `cc.loader.load` is deprecated, please use {{#crossLink \"AssetManager/loadAny:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.load is deprecated, please use cc.assetManager.loadAny instead\n *\n * @method load\n * @param {String|String[]|Object} resources - Url list in an array\n * @param {Function} [progressCallback] - Callback invoked when progression change\n * @param {Number} progressCallback.completedCount - The number of the items that are already completed\n * @param {Number} progressCallback.totalCount - The total number of the items\n * @param {Object} progressCallback.item - The latest item which flow out the pipeline\n * @param {Function} [completeCallback] - Callback invoked when all resources loaded\n * @typescript\n * load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, completeCallback?: Function): void\n * load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: Function|null): void\n */\n load (resources, progressCallback, completeCallback) {\n if (completeCallback === undefined) {\n if (progressCallback !== undefined) {\n completeCallback = progressCallback;\n progressCallback = null;\n }\n }\n resources = Array.isArray(resources) ? resources : [resources];\n for (var i = 0; i < resources.length; i++) {\n var item = resources[i];\n if (typeof item === 'string') {\n resources[i] = { url: item, __isNative__: true};\n }\n else {\n if (item.type) {\n item.ext = '.' + item.type;\n item.type = undefined;\n }\n\n if (item.url) {\n item.__isNative__ = true;\n }\n }\n }\n var images = [];\n var audios = [];\n cc.assetManager.loadAny(resources, null, (finish, total, item) => {\n if (item.content) {\n if (ImageFmts.includes(item.ext)) {\n images.push(item.content);\n }\n else if (AudioFmts.includes(item.ext)) {\n audios.push(item.content);\n }\n }\n progressCallback && progressCallback(finish, total, item);\n }, (err, native) => {\n var res = null;\n if (!err) {\n native = Array.isArray(native) ? native : [native];\n for (var i = 0; i < native.length; i++) {\n var item = native[i];\n if (!(item instanceof cc.Asset)) {\n var asset = item;\n var url = resources[i].url;\n if (images.includes(asset)) {\n factory.create(url, item, '.png', null, (err, image) => {\n asset = native[i] = image;\n });\n }\n else if (audios.includes(asset)) {\n factory.create(url, item, '.mp3', null, (err, audio) => {\n asset = native[i] = audio;\n });\n }\n cc.assetManager.assets.add(url, asset);\n }\n }\n if (native.length > 1) {\n var map = Object.create(null);\n native.forEach(function (asset) {\n map[asset._uuid] = asset;\n });\n res = { isCompleted: GetTrue, _map: map };\n }\n else {\n res = native[0];\n }\n }\n completeCallback && completeCallback(err, res);\n });\n },\n\n /**\n * `cc.loader.getXMLHttpRequest` is deprecated, please use `XMLHttpRequest` directly\n *\n * @method getXMLHttpRequest\n * @deprecated cc.loader.getXMLHttpRequest is deprecated, please use XMLHttpRequest directly\n * @returns {XMLHttpRequest}\n */\n getXMLHttpRequest () {\n return new XMLHttpRequest();\n },\n\n _parseLoadResArgs: utilities.parseLoadResArgs,\n\n /**\n * `cc.loader.getItem` is deprecated, please use `cc.assetManager.asset.get` instead\n *\n * @method getItem\n * @param {Object} id The id of the item\n * @return {Object}\n * @deprecated cc.loader.getItem is deprecated, please use cc.assetManager.assets.get instead\n */\n getItem (key) {\n return cc.assetManager.assets.has(key) ? { content: cc.assetManager.assets.get(key) } : null;\n },\n\n /**\n * `cc.loader.loadRes` is deprecated, please use {{#crossLink \"Bundle/load:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.loadRes is deprecated, please use cc.resources.load instead\n * @method loadRes\n * @param {String} url - Url of the target resource.\n * The url is relative to the \"resources\" folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be loaded if this argument is supplied.\n * @param {Function} [progressCallback] - Callback invoked when progression change.\n * @param {Number} progressCallback.completedCount - The number of the items that are already completed.\n * @param {Number} progressCallback.totalCount - The total number of the items.\n * @param {Object} progressCallback.item - The latest item which flow out the pipeline.\n * @param {Function} [completeCallback] - Callback invoked when the resource loaded.\n * @param {Error} completeCallback.error - The error info or null if loaded successfully.\n * @param {Object} completeCallback.resource - The loaded resource if it can be found otherwise returns null.\n *\n * @typescript\n * loadRes(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void\n * loadRes(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any) => void): void\n * loadRes(url: string, type: typeof cc.Asset): void\n * loadRes(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void\n * loadRes(url: string, completeCallback: (error: Error, resource: any) => void): void\n * loadRes(url: string): void\n */\n loadRes (url, type, progressCallback, completeCallback) {\n var { type, onProgress, onComplete } = this._parseLoadResArgs(type, progressCallback, completeCallback);\n var extname = cc.path.extname(url);\n if (extname) {\n // strip extname\n url = url.slice(0, - extname.length);\n }\n cc.resources.load(url, type, onProgress, onComplete);\n },\n\n /**\n * `cc.loader.loadResArray` is deprecated, please use {{#crossLink \"Bundle/load:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.loadResArray is deprecated, please use cc.resources.load instead\n * @method loadResArray\n * @param {String[]} urls - Array of URLs of the target resource.\n * The url is relative to the \"resources\" folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be loaded if this argument is supplied.\n * @param {Function} [progressCallback] - Callback invoked when progression change.\n * @param {Number} progressCallback.completedCount - The number of the items that are already completed.\n * @param {Number} progressCallback.totalCount - The total number of the items.\n * @param {Object} progressCallback.item - The latest item which flow out the pipeline.\n * @param {Function} [completeCallback] - A callback which is called when all assets have been loaded, or an error occurs.\n * @param {Error} completeCallback.error - If one of the asset failed, the complete callback is immediately called\n * with the error. If all assets are loaded successfully, error will be null.\n * @param {Asset[]|Array} completeCallback.assets - An array of all loaded assets.\n * If nothing to load, assets will be an empty array.\n * @typescript\n * loadResArray(url: string[], type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void\n * loadResArray(url: string[], type: typeof cc.Asset, completeCallback: (error: Error, resource: any[]) => void): void\n * loadResArray(url: string[], type: typeof cc.Asset): void\n * loadResArray(url: string[], progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void\n * loadResArray(url: string[], completeCallback: (error: Error, resource: any[]) => void): void\n * loadResArray(url: string[]): void\n * loadResArray(url: string[], type: typeof cc.Asset[]): void\n */\n loadResArray (urls, type, progressCallback, completeCallback) {\n var { type, onProgress, onComplete } = this._parseLoadResArgs(type, progressCallback, completeCallback);\n urls.forEach((url, i) => {\n var extname = cc.path.extname(url);\n if (extname) {\n // strip extname\n urls[i] = url.slice(0, - extname.length);\n }\n })\n cc.resources.load(urls, type, onProgress, onComplete);\n },\n\n /**\n * `cc.loader.loadResDir` is deprecated, please use {{#crossLink \"Bundle/loadDir:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.loadResDir is deprecated, please use cc.resources.loadDir instead\n * @method loadResDir\n * @param {String} url - Url of the target folder.\n * The url is relative to the \"resources\" folder, extensions must be omitted.\n * @param {Function} [type] - Only asset of type will be loaded if this argument is supplied.\n * @param {Function} [progressCallback] - Callback invoked when progression change.\n * @param {Number} progressCallback.completedCount - The number of the items that are already completed.\n * @param {Number} progressCallback.totalCount - The total number of the items.\n * @param {Object} progressCallback.item - The latest item which flow out the pipeline.\n * @param {Function} [completeCallback] - A callback which is called when all assets have been loaded, or an error occurs.\n * @param {Error} completeCallback.error - If one of the asset failed, the complete callback is immediately called\n * with the error. If all assets are loaded successfully, error will be null.\n * @param {Asset[]|Array} completeCallback.assets - An array of all loaded assets.\n * If nothing to load, assets will be an empty array.\n * @param {String[]} completeCallback.urls - An array that lists all the URLs of loaded assets.\n *\n * @typescript\n * loadResDir(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void\n * loadResDir(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void\n * loadResDir(url: string, type: typeof cc.Asset): void\n * loadResDir(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void\n * loadResDir(url: string, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void\n * loadResDir(url: string): void\n */\n loadResDir (url, type, progressCallback, completeCallback) {\n var { type, onProgress, onComplete } = this._parseLoadResArgs(type, progressCallback, completeCallback);\n cc.resources.loadDir(url, type, onProgress, function (err, assets) {\n var urls = [];\n if (!err) {\n var infos = cc.resources.getDirWithPath(url, type);\n urls = infos.map(function (info) {\n return info.path;\n });\n }\n onComplete && onComplete(err, assets, urls);\n });\n },\n\n /**\n * `cc.loader.getRes` is deprecated, please use {{#crossLink \"Bundle/get:method\"}}{{/crossLink}} instead\n *\n * @method getRes\n * @param {String} url\n * @param {Function} [type] - Only asset of type will be returned if this argument is supplied.\n * @returns {*}\n * @deprecated cc.loader.getRes is deprecated, please use cc.resources.get instead\n */\n getRes (url, type) {\n return cc.assetManager.assets.has(url) ? cc.assetManager.assets.get(url) : cc.resources.get(url, type);\n },\n\n getResCount () {\n return cc.assetManager.assets.count;\n },\n\n /**\n * `cc.loader.getDependsRecursively` is deprecated, please use use {{#crossLink \"DependUtil/getDepsRecursively:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.getDependsRecursively is deprecated, please use use cc.assetManager.dependUtil.getDepsRecursively instead\n * @method getDependsRecursively\n * @param {Asset|String} owner - The owner asset or the resource url or the asset's uuid\n * @returns {Array}\n */\n getDependsRecursively (owner) {\n if (!owner) return [];\n return dependUtil.getDepsRecursively(typeof owner === 'string' ? owner : owner._uuid).concat([ owner._uuid ]);\n },\n\n /**\n * `cc.loader.assetLoader` was removed, assetLoader and md5Pipe were merged into {{#crossLink \"AssetManager/transformPipeline:property\"}}{{/crossLink}}\n *\n * @property assetLoader\n * @deprecated cc.loader.assetLoader was removed, assetLoader and md5Pipe were merged into cc.assetManager.transformPipeline\n * @type {Object}\n */\n get assetLoader () {\n if (CC_DEBUG) {\n cc.error('cc.loader.assetLoader was removed, assetLoader and md5Pipe were merged into cc.assetManager.transformPipeline');\n }\n },\n\n /**\n * `cc.loader.md5Pipe` is deprecated, assetLoader and md5Pipe were merged into {{#crossLink \"AssetManager/transformPipeline:property\"}}{{/crossLink}}\n *\n * @property md5Pipe\n * @deprecated cc.loader.md5Pipe is deprecated, assetLoader and md5Pipe were merged into cc.assetManager.transformPipeline\n * @type {Object}\n */\n get md5Pipe () {\n return md5Pipe;\n },\n\n /**\n * `cc.loader.downloader` is deprecated, please use {{#crossLink \"AssetManager/downloader:property\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.downloader is deprecated, please use cc.assetManager.downloader instead\n * @property downloader\n * @type {Object}\n */\n get downloader () {\n return cc.assetManager.downloader;\n },\n\n /**\n * `cc.loader.loader` is deprecated, please use {{#crossLink \"AssetManager/parser:property\"}}{{/crossLink}} instead\n *\n * @property loader\n * @type {Object}\n * @deprecated cc.loader.loader is deprecated, please use cc.assetManager.parser instead\n */\n get loader () {\n return cc.assetManager.parser;\n },\n\n /**\n * `cc.loader.addDownloadHandlers` is deprecated, please use `cc.assetManager.downloader.register` instead\n *\n * @method addDownloadHandlers\n * @param {Object} extMap Custom supported types with corresponded handler\n * @deprecated cc.loader.addDownloadHandlers is deprecated, please use cc.assetManager.downloader.register instead\n */\n addDownloadHandlers (extMap) {\n if (CC_DEBUG) {\n cc.warn('`cc.loader.addDownloadHandlers` is deprecated, please use `cc.assetManager.downloader.register` instead');\n }\n var handler = Object.create(null);\n for (var type in extMap) {\n var func = extMap[type];\n handler['.' + type] = function (url, options, onComplete) {\n func({url}, onComplete);\n };\n }\n cc.assetManager.downloader.register(handler);\n },\n\n /**\n * `cc.loader.addLoadHandlers` is deprecated, please use `cc.assetManager.parser.register` instead\n *\n * @method addLoadHandlers\n * @param {Object} extMap Custom supported types with corresponded handler\n * @deprecated cc.loader.addLoadHandlers is deprecated, please use cc.assetManager.parser.register instead\n */\n addLoadHandlers (extMap) {\n if (CC_DEBUG) {\n cc.warn('`cc.loader.addLoadHandlers` is deprecated, please use `cc.assetManager.parser.register` instead');\n }\n var handler = Object.create(null);\n for (var type in extMap) {\n var func = extMap[type];\n handler['.' + type] = function (file, options, onComplete) {\n func({content: file}, onComplete);\n };\n }\n cc.assetManager.parser.register(handler);\n },\n\n flowInDeps () {\n if (CC_DEBUG) {\n cc.error('cc.loader.flowInDeps was removed');\n }\n },\n\n /**\n * `cc.loader.release` is deprecated, please use {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}} instead\n *\n * @method release\n * @param {Asset|String|Array} asset\n * @deprecated cc.loader.release is deprecated, please use cc.assetManager.releaseAsset instead\n */\n release (asset) {\n if (Array.isArray(asset)) {\n for (let i = 0; i < asset.length; i++) {\n var key = asset[i];\n if (typeof key === 'string') key = cc.assetManager.assets.get(key);\n let isBuiltin = cc.assetManager.builtins._assets.find(function (assets) {\n return assets.find(builtinAsset => builtinAsset === key);\n });\n if (isBuiltin) continue;\n cc.assetManager.releaseAsset(key);\n }\n }\n else if (asset) {\n if (typeof asset === 'string') asset = cc.assetManager.assets.get(asset);\n let isBuiltin = cc.assetManager.builtins._assets.find(function (assets) {\n return assets.find(builtinAsset => builtinAsset === asset);\n });\n if (isBuiltin) return;\n cc.assetManager.releaseAsset(asset);\n }\n },\n\n /**\n * `cc.loader.releaseAsset` is deprecated, please use {{#crossLink \"AssetManager/releaseAsset:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.releaseAsset is deprecated, please use cc.assetManager.releaseAsset instead\n * @method releaseAsset\n * @param {Asset} asset\n */\n releaseAsset (asset) {\n cc.assetManager.releaseAsset(asset);\n },\n\n /**\n * `cc.loader.releaseRes` is deprecated, please use {{#crossLink \"AssetManager/releaseRes:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.releaseRes is deprecated, please use cc.assetManager.releaseRes instead\n * @method releaseRes\n * @param {String} url\n * @param {Function} [type] - Only asset of type will be released if this argument is supplied.\n */\n releaseRes (url, type) {\n cc.resources.release(url, type);\n },\n\n /**\n * `cc.loader.releaseResDir` was removed, please use {{#crossLink \"AssetManager/releaseRes:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.releaseResDir was removed, please use cc.assetManager.releaseRes instead\n * @method releaseResDir\n */\n releaseResDir () {\n if (CC_DEBUG) {\n cc.error('cc.loader.releaseResDir was removed, please use cc.assetManager.releaseAsset instead');\n }\n },\n\n /**\n * `cc.loader.releaseAll` is deprecated, please use {{#crossLink \"AssetManager/releaseAll:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.releaseAll is deprecated, please use cc.assetManager.releaseAll instead\n * @method releaseAll\n */\n releaseAll () {\n cc.assetManager.releaseAll();\n cc.assetManager.assets.clear();\n },\n\n /**\n * `cc.loader.removeItem` is deprecated, please use `cc.assetManager.assets.remove` instead\n *\n * @deprecated cc.loader.removeItem is deprecated, please use cc.assetManager.assets.remove instead\n * @method removeItem\n * @param {Object} id The id of the item\n * @return {Boolean} succeed or not\n */\n removeItem (key) {\n cc.assetManager.assets.remove(key);\n },\n\n /**\n * `cc.loader.setAutoRelease` is deprecated, if you want to prevent some asset from auto releasing, please use {{#crossLink \"Asset/addRef:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.setAutoRelease is deprecated, if you want to prevent some asset from auto releasing, please use cc.Asset.addRef instead\n * @method setAutoRelease\n * @param {Asset|String} assetOrUrlOrUuid - asset object or the raw asset's url or uuid\n * @param {Boolean} autoRelease - indicates whether should release automatically\n */\n setAutoRelease (asset, autoRelease) {\n if (typeof asset === 'object') asset = asset._uuid;\n this._autoReleaseSetting[asset] = !!autoRelease;\n },\n\n /**\n * `cc.loader.setAutoReleaseRecursively` is deprecated, if you want to prevent some asset from auto releasing, please use {{#crossLink \"Asset/addRef:method\"}}{{/crossLink}} instead\n *\n * @method setAutoReleaseRecursively\n * @param {Asset|String} assetOrUrlOrUuid - asset object or the raw asset's url or uuid\n * @param {Boolean} autoRelease - indicates whether should release automatically\n * @deprecated cc.loader.setAutoReleaseRecursively is deprecated, if you want to prevent some asset from auto releasing, please use cc.Asset.addRef instead\n */\n setAutoReleaseRecursively (asset, autoRelease) {\n if (typeof asset === 'object') asset = asset._uuid;\n autoRelease = !!autoRelease;\n this._autoReleaseSetting[asset] = autoRelease;\n var depends = dependUtil.getDepsRecursively(asset);\n for (var i = 0; i < depends.length; i++) {\n var depend = depends[i];\n this._autoReleaseSetting[depend] = autoRelease;\n }\n },\n\n /**\n * `cc.loader.isAutoRelease` is deprecated\n *\n * @method isAutoRelease\n * @param {Asset|String} assetOrUrl - asset object or the raw asset's url\n * @returns {Boolean}\n * @deprecated cc.loader.isAutoRelease is deprecated\n */\n isAutoRelease (asset) {\n if (typeof asset === 'object') asset = asset._uuid;\n return !!this._autoReleaseSetting[asset];\n }\n};\n\n/**\n * @class Downloader\n */\n/**\n * `cc.loader.downloader.loadSubpackage` is deprecated, please use {{#crossLink \"AssetManager/loadBundle:method\"}}{{/crossLink}} instead\n *\n * @deprecated cc.loader.downloader.loadSubpackage is deprecated, please use AssetManager.loadBundle instead\n * @method loadSubpackage\n * @param {String} name - Subpackage name\n * @param {Function} [completeCallback] - Callback invoked when subpackage loaded\n * @param {Error} completeCallback.error - error information\n */\ndownloader.loadSubpackage = function (name, completeCallback) {\n cc.assetManager.loadBundle(name, null, completeCallback);\n};\n\n/**\n * @deprecated cc.AssetLibrary is deprecated, please backup your project and upgrade to cc.assetManager\n */\nvar AssetLibrary = {\n\n /**\n * @deprecated cc.AssetLibrary.init is deprecated, please use cc.assetManager.init instead\n */\n init (options) {\n options.importBase = options.libraryPath;\n options.nativeBase = CC_BUILD ? options.rawAssetsBase : options.libraryPath;\n cc.assetManager.init(options);\n if (options.rawAssets) {\n var resources = new cc.AssetManager.Bundle();\n resources.init({\n name: cc.AssetManager.BuiltinBundleName.RESOURCES,\n importBase: options.importBase,\n nativeBase: options.nativeBase,\n paths: options.rawAssets.assets,\n uuids: Object.keys(options.rawAssets.assets),\n });\n }\n },\n\n /**\n * @deprecated cc.AssetLibrary is deprecated, please use cc.assetManager.loadAny instead\n */\n loadAsset (uuid, onComplete) {\n cc.assetManager.loadAny(uuid, onComplete);\n },\n\n getLibUrlNoExt () {\n if (CC_DEBUG) {\n cc.error('cc.AssetLibrary.getLibUrlNoExt was removed, if you want to transform url, please use cc.assetManager.utils.getUrlWithUuid instead');\n }\n },\n\n queryAssetInfo () {\n if (CC_DEBUG) {\n cc.error('cc.AssetLibrary.queryAssetInfo was removed, only available in the editor by using cc.assetManager.editorExtend.queryAssetInfo');\n }\n }\n};\n\n/**\n * `cc.url` is deprecated\n *\n * @deprecated cc.url is deprecated\n * @class url\n * @static\n */\ncc.url = {\n normalize (url) {\n cc.warnID(1400, 'cc.url.normalize', 'cc.assetManager.utils.normalize');\n return cc.assetManager.utils.normalize(url);\n },\n\n /**\n * `cc.url.raw` is deprecated, please use `cc.resources.load` directly, or use `Asset.nativeUrl` instead.\n *\n * @deprecated cc.url.raw is deprecated, please use cc.resources.load directly, or use Asset.nativeUrl instead.\n * @method raw\n * @param {String} url\n * @return {String}\n */\n raw (url) {\n cc.warnID(1400, 'cc.url.raw', 'cc.resources.load');\n if (url.startsWith('resources/')) {\n return cc.assetManager._transform({'path': cc.path.changeExtname(url.substr(10)), bundle: cc.AssetManager.BuiltinBundleName.RESOURCES, __isNative__: true, ext: cc.path.extname(url)});\n }\n return '';\n }\n};\n\nlet onceWarns = {\n loader: true,\n assetLibrary: true,\n};\n\nObject.defineProperties(cc, {\n loader: {\n get () {\n if (CC_DEBUG) {\n if (onceWarns.loader) {\n onceWarns.loader = false;\n cc.log('cc.loader is deprecated, use cc.assetManager instead please. See https://docs.cocos.com/creator/manual/zh/release-notes/asset-manager-upgrade-guide.html');\n }\n }\n return loader;\n }\n },\n\n AssetLibrary: {\n get () {\n if (CC_DEBUG) {\n if (onceWarns.assetLibrary) {\n onceWarns.assetLibrary = false;\n cc.log('cc.AssetLibrary is deprecated, use cc.assetManager instead please. See https://docs.cocos.com/creator/manual/zh/release-notes/asset-manager-upgrade-guide.html');\n }\n }\n return AssetLibrary;\n }\n },\n\n /**\n * `cc.LoadingItems` was removed, please use {{#crossLink \"Task\"}}{{/crossLink}} instead\n *\n * @deprecated cc.LoadingItems was removed, please use cc.AssetManager.Task instead\n * @class LoadingItems\n */\n LoadingItems: {\n get () {\n cc.warnID(1400, 'cc.LoadingItems', 'cc.AssetManager.Task');\n return cc.AssetManager.Task;\n }\n },\n\n Pipeline: {\n get () {\n cc.warnID(1400, 'cc.Pipeline', 'cc.AssetManager.Pipeline');\n return cc.AssetManager.Pipeline;\n }\n }\n});\n\njs.obsolete(cc, 'cc.RawAsset', 'cc.Asset');\n\n/**\n * @class Asset\n */\n/**\n * `cc.Asset.url` is deprecated, please use {{#crossLink \"Asset/nativeUrl:property\"}}{{/crossLink}} instead\n * @property url\n * @type {String}\n * @deprecated cc.Asset.url is deprecated, please use cc.Asset.nativeUrl instead\n */\njs.obsolete(cc.Asset.prototype, 'cc.Asset.url', 'nativeUrl');\n\n/**\n * @class macro\n * @static\n */\nObject.defineProperties(cc.macro, {\n /**\n * `cc.macro.DOWNLOAD_MAX_CONCURRENT` is deprecated now, please use {{#crossLink \"Downloader/maxConcurrency:property\"}}{{/crossLink}} instead\n * \n * @property DOWNLOAD_MAX_CONCURRENT\n * @type {Number}\n * @deprecated cc.macro.DOWNLOAD_MAX_CONCURRENT is deprecated now, please use cc.assetManager.downloader.maxConcurrency instead\n */\n DOWNLOAD_MAX_CONCURRENT: {\n get () {\n return cc.assetManager.downloader.maxConcurrency;\n },\n\n set (val) {\n cc.assetManager.downloader.maxConcurrency = val;\n }\n }\n});\n\nObject.assign(cc.director, {\n _getSceneUuid (sceneName) {\n cc.assetManager.main.getSceneInfo(sceneName);\n }\n});\n\nObject.defineProperties(cc.game, {\n _sceneInfos: {\n get () {\n var scenes = [];\n cc.assetManager.main._config.scenes.forEach(function (val) {\n scenes.push(val);\n });\n return scenes;\n }\n }\n});\n\nvar parseParameters = utilities.parseParameters;\nutilities.parseParameters = function (options, onProgress, onComplete) {\n var result = parseParameters(options, onProgress, onComplete);\n result.onProgress = result.onProgress || loader.onProgress;\n return result;\n};\n\nvar autoRelease = releaseManager._autoRelease;\nreleaseManager._autoRelease = function () {\n autoRelease.apply(this, arguments);\n var releaseSettings = loader._autoReleaseSetting;\n var keys = Object.keys(releaseSettings);\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n if (releaseSettings[key] === true) {\n var asset = cc.assetManager.assets.get(key);\n asset && releaseManager.tryRelease(asset);\n }\n }\n};","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst helper = require('./helper');\nconst MissingClass = CC_EDITOR && Editor.require('app://editor/page/scene-utils/missing-class-reporter').MissingClass;\nrequire('../platform/deserialize');\n\nfunction deserialize (json, options) {\n var classFinder, missingClass;\n if (CC_EDITOR) {\n missingClass = MissingClass;\n classFinder = function (type, data, owner, propName) {\n var res = missingClass.classFinder(type, data, owner, propName);\n if (res) {\n return res;\n }\n return cc._MissingScript;\n };\n classFinder.onDereferenced = missingClass.classFinder.onDereferenced;\n }\n else {\n classFinder = cc._MissingScript.safeFindClass;\n }\n\n let pool = null;\n if (!CC_PREVIEW) {\n pool = cc.deserialize.Details.pool;\n }\n else {\n let { default: deserializeForCompiled } = require('../platform/deserialize-compiled');\n let deserializeForEditor = require('../platform/deserialize-editor');\n if (deserializeForCompiled.isCompiledJson(json)) {\n pool = deserializeForCompiled.Details.pool;\n }\n else {\n pool = deserializeForEditor.Details.pool;\n }\n }\n var tdInfo = pool.get();\n\n var asset;\n try {\n asset = cc.deserialize(json, tdInfo, {\n classFinder: classFinder,\n customEnv: options\n });\n }\n catch (e) {\n pool.put(tdInfo);\n throw e;\n }\n\n if (CC_EDITOR && missingClass) {\n missingClass.reportMissingClass(asset);\n missingClass.reset();\n }\n\n var uuidList = tdInfo.uuidList;\n var objList = tdInfo.uuidObjList;\n var propList = tdInfo.uuidPropList;\n var depends = [];\n\n for (var i = 0; i < uuidList.length; i++) {\n var dependUuid = uuidList[i];\n depends[i] = {\n uuid: helper.decodeUuid(dependUuid),\n owner: objList[i],\n prop: propList[i]\n };\n }\n\n // non-native deps\n asset.__depends__ = depends;\n // native dep\n asset._native && (asset.__nativeDepend__ = true);\n pool.put(tdInfo);\n return asset;\n\n}\n\nmodule.exports = deserialize;\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nvar __audioSupport = cc.sys.__audioSupport;\nconst { parseParameters } = require('./utilities');\n\nfunction downloadDomAudio (url, options, onComplete) {\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n\n var dom = document.createElement('audio');\n dom.src = url;\n\n var clearEvent = function () {\n clearTimeout(timer);\n dom.removeEventListener(\"canplaythrough\", success, false);\n dom.removeEventListener(\"error\", failure, false);\n if(__audioSupport.USE_LOADER_EVENT)\n dom.removeEventListener(__audioSupport.USE_LOADER_EVENT, success, false);\n };\n\n var timer = setTimeout(function () {\n if (dom.readyState === 0)\n failure();\n else\n success();\n }, 8000);\n\n var success = function () {\n clearEvent();\n onComplete && onComplete(null, dom);\n };\n \n var failure = function () {\n clearEvent();\n var message = 'load audio failure - ' + url;\n cc.log(message);\n onComplete && onComplete(new Error(message));\n };\n\n dom.addEventListener(\"canplaythrough\", success, false);\n dom.addEventListener(\"error\", failure, false);\n if(__audioSupport.USE_LOADER_EVENT)\n dom.addEventListener(__audioSupport.USE_LOADER_EVENT, success, false);\n return dom;\n}\n\nmodule.exports = downloadDomAudio;","\n/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst { parseParameters } = require('./utilities');\n\nfunction downloadDomImage (url, options, onComplete) {\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n\n var img = new Image();\n\n if (window.location.protocol !== 'file:') {\n img.crossOrigin = 'anonymous';\n }\n\n function loadCallback () {\n img.removeEventListener('load', loadCallback);\n img.removeEventListener('error', errorCallback);\n onComplete && onComplete(null, img);\n }\n \n function errorCallback () {\n img.removeEventListener('load', loadCallback);\n img.removeEventListener('error', errorCallback);\n onComplete && onComplete(new Error(cc.debug.getError(4930, url)));\n }\n\n img.addEventListener('load', loadCallback);\n img.addEventListener('error', errorCallback);\n img.src = url;\n return img;\n}\n\nmodule.exports = downloadDomImage;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst { parseParameters } = require('./utilities');\n\nfunction downloadFile (url, options, onProgress, onComplete) {\n var { options, onProgress, onComplete } = parseParameters(options, onProgress, onComplete);\n\n var xhr = new XMLHttpRequest(), errInfo = 'download failed: ' + url + ', status: ';\n\n xhr.open('GET', url, true);\n\n if (options.responseType !== undefined) xhr.responseType = options.responseType;\n if (options.withCredentials !== undefined) xhr.withCredentials = options.withCredentials;\n if (options.mimeType !== undefined && xhr.overrideMimeType ) xhr.overrideMimeType(options.mimeType);\n if (options.timeout !== undefined) xhr.timeout = options.timeout;\n\n if (options.header) {\n for (var header in options.header) {\n xhr.setRequestHeader(header, options.header[header]);\n }\n }\n\n xhr.onload = function () {\n if ( xhr.status === 200 || xhr.status === 0 ) {\n onComplete && onComplete(null, xhr.response);\n } else {\n onComplete && onComplete(new Error(errInfo + xhr.status + '(no response)'));\n }\n\n };\n\n if (onProgress) {\n xhr.onprogress = function (e) {\n if (e.lengthComputable) {\n onProgress(e.loaded, e.total);\n }\n };\n }\n\n xhr.onerror = function(){\n onComplete && onComplete(new Error(errInfo + xhr.status + '(error)'));\n };\n\n xhr.ontimeout = function(){\n onComplete && onComplete(new Error(errInfo + xhr.status + '(time out)'));\n };\n\n xhr.onabort = function(){\n onComplete && onComplete(new Error(errInfo + xhr.status + '(abort)'));\n };\n\n xhr.send(null);\n \n return xhr;\n}\n\nmodule.exports = downloadFile;","\n/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst { parseParameters } = require('./utilities');\n\nconst downloaded = {};\n\nfunction downloadScript (url, options, onComplete) {\n var { options, onComplete } = parseParameters(options, undefined, onComplete);\n\n // no need to load script again\n if (downloaded[url]) {\n return onComplete && onComplete(null);\n }\n\n var d = document, s = document.createElement('script');\n\n if (window.location.protocol !== 'file:') {\n s.crossOrigin = 'anonymous';\n }\n\n s.async = options.async;\n s.src = url;\n function loadHandler () {\n s.parentNode.removeChild(s);\n s.removeEventListener('load', loadHandler, false);\n s.removeEventListener('error', errorHandler, false);\n downloaded[url] = true;\n onComplete && onComplete(null);\n }\n\n function errorHandler() {\n s.parentNode.removeChild(s);\n s.removeEventListener('load', loadHandler, false);\n s.removeEventListener('error', errorHandler, false);\n onComplete && onComplete(new Error(cc.debug.getError(4928, url)));\n }\n \n s.addEventListener('load', loadHandler, false);\n s.addEventListener('error', errorHandler, false);\n d.body.appendChild(s);\n}\n\nmodule.exports = downloadScript;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n/**\n * @module cc.AssetManager\n */\nconst js = require('../platform/js');\nconst debug = require('../CCDebug');\nconst { loadFont } = require('./font-loader');\nconst callInNextTick = require('../platform/utils').callInNextTick;\nconst downloadDomImage = require('./download-dom-image');\nconst downloadDomAudio = require('./download-dom-audio');\nconst downloadFile = require('./download-file');\nconst downloadScript = require('./download-script.js');\nconst Cache = require('./cache');\nconst { files } = require('./shared');\nconst { __audioSupport, capabilities } = require('../platform/CCSys');\nconst { urlAppendTimestamp, retry } = require('./utilities');\n\nconst REGEX = /^(?:\\w+:\\/\\/|\\.+\\/).+/;\n\n\nvar formatSupport = __audioSupport.format || [];\n\nvar unsupported = function (url, options, onComplete) {\n onComplete(new Error(debug.getError(4927)));\n}\n\nvar downloadAudio = function (url, options, onComplete) {\n // web audio need to download file as arrayBuffer\n if (options.audioLoadMode !== cc.AudioClip.LoadMode.DOM_AUDIO) {\n downloadArrayBuffer(url, options, onComplete);\n }\n else {\n downloadDomAudio(url, options, onComplete);\n }\n};\n\nvar downloadAudio = (!CC_EDITOR || !Editor.isMainProcess) ? (formatSupport.length === 0 ? unsupported : (__audioSupport.WEB_AUDIO ? downloadAudio : downloadDomAudio)) : null;\n\nvar downloadImage = function (url, options, onComplete) {\n // if createImageBitmap is valid, we can transform blob to ImageBitmap. Otherwise, just use HTMLImageElement to load\n var func = capabilities.imageBitmap && cc.macro.ALLOW_IMAGE_BITMAP ? downloadBlob : downloadDomImage;\n func.apply(this, arguments);\n};\n\nvar downloadBlob = function (url, options, onComplete) {\n options.responseType = \"blob\";\n downloadFile(url, options, options.onFileProgress, onComplete);\n};\n\nvar downloadJson = function (url, options, onComplete) {\n options.responseType = \"json\";\n downloadFile(url, options, options.onFileProgress, function (err, data) {\n if (!err && typeof data === 'string') {\n try {\n data = JSON.parse(data);\n }\n catch (e) {\n err = e;\n }\n }\n onComplete && onComplete(err, data);\n });\n};\n\nvar downloadArrayBuffer = function (url, options, onComplete) {\n options.responseType = \"arraybuffer\";\n downloadFile(url, options, options.onFileProgress, onComplete);\n};\n\nvar downloadText = function (url, options, onComplete) {\n options.responseType = \"text\";\n downloadFile(url, options, options.onFileProgress, onComplete);\n};\n\nvar downloadVideo = function (url, options, onComplete) {\n onComplete(null, url);\n};\n\nvar downloadBundle = function (nameOrUrl, options, onComplete) {\n let bundleName = cc.path.basename(nameOrUrl);\n let url = nameOrUrl;\n if (!REGEX.test(url)) url = 'assets/' + bundleName;\n var version = options.version || downloader.bundleVers[bundleName];\n var count = 0;\n var config = `${url}/config.${version ? version + '.' : ''}json`;\n let out = null, error = null;\n downloadJson(config, options, function (err, response) {\n if (err) {\n error = err;\n }\n out = response;\n out && (out.base = url + '/');\n count++;\n if (count === 2) {\n onComplete(error, out);\n }\n });\n\n var js = `${url}/index.${version ? version + '.' : ''}js`;\n downloadScript(js, options, function (err) {\n if (err) {\n error = err;\n }\n count++;\n if (count === 2) {\n onComplete(error, out);\n }\n });\n};\n\nvar _downloading = new Cache();\nvar _queue = [];\nvar _queueDirty = false;\n\n// the number of loading thread\nvar _totalNum = 0;\n\n// the number of request that launched in this period\nvar _totalNumThisPeriod = 0;\n\n// last time, if now - lastTime > period, refresh _totalNumThisPeriod.\nvar _lastDate = -1;\n\n// if _totalNumThisPeriod equals max, move request to next period using setTimeOut.\nvar _checkNextPeriod = false;\n\nvar updateTime = function () {\n var now = Date.now();\n // use deltaTime as interval\n let interval = cc.director._deltaTime > downloader._maxInterval ? downloader._maxInterval : cc.director._deltaTime;\n if (now - _lastDate > interval * 1000) {\n _totalNumThisPeriod = 0;\n _lastDate = now;\n }\n};\n\n// handle the rest request in next period\nvar handleQueue = function (maxConcurrency, maxRequestsPerFrame) {\n _checkNextPeriod = false;\n updateTime();\n while (_queue.length > 0 && _totalNum < maxConcurrency && _totalNumThisPeriod < maxRequestsPerFrame) {\n if (_queueDirty) {\n _queue.sort(function (a, b) {\n return a.priority - b.priority;\n });\n _queueDirty = false;\n }\n var nextOne = _queue.pop();\n if (!nextOne) {\n break;\n }\n _totalNum++;\n _totalNumThisPeriod++;\n nextOne.invoke();\n }\n\n if (_queue.length > 0 && _totalNum < maxConcurrency) {\n callInNextTick(handleQueue, maxConcurrency, maxRequestsPerFrame);\n _checkNextPeriod = true;\n }\n}\n\n\n/**\n * !#en\n * Control all download process, it is a singleton. All member can be accessed with `cc.assetManager.downloader` , it can download several types of files:\n * 1. Text\n * 2. Image\n * 3. Audio\n * 4. Assets\n * 5. Scripts\n * \n * !#zh\n * 管理所有下载过程,downloader 是个单例,所有成员能通过 `cc.assetManager.downloader` 访问,它能下载以下几种类型的文件:\n * 1. 文本\n * 2. 图片\n * 3. 音频\n * 4. 资源\n * 5. 脚本\n * \n * @class Downloader\n */\nvar downloader = {\n\n _remoteServerAddress: '',\n _maxInterval: 1 / 30,\n \n /**\n * !#en \n * The address of remote server\n * \n * !#zh\n * 远程服务器地址\n * \n * @property remoteServerAddress\n * @type {string}\n * @default ''\n */\n get remoteServerAddress () {\n return this._remoteServerAddress;\n },\n\n /**\n * !#en \n * The maximum number of concurrent when downloading\n * \n * !#zh\n * 下载时的最大并发数\n * \n * @property maxConcurrency\n * @type {number}\n * @default 6\n */\n maxConcurrency: 6,\n\n /**\n * !#en \n * The maximum number of request can be launched per frame when downloading\n * \n * !#zh\n * 下载时每帧可以启动的最大请求数\n * \n * @property maxRequestsPerFrame\n * @type {number}\n * @default 6\n */\n maxRequestsPerFrame: 6,\n\n /**\n * !#en\n * The max number of retries when fail\n * \n * !#zh\n * 失败重试次数\n * \n * @property maxRetryCount\n * @type {Number}\n */\n maxRetryCount: 3,\n\n appendTimeStamp: false,\n\n limited: true,\n\n /**\n * !#en\n * Wait for while before another retry, unit: ms\n * \n * !#zh\n * 重试的间隔时间\n * \n * @property retryInterval\n * @type {Number}\n */\n retryInterval: 2000,\n\n bundleVers: null,\n\n /*\n * !#en\n * Use Image element to download image\n * \n * !#zh\n * 使用 Image 元素来下载图片\n * \n * @method downloadDomImage\n * @param {string} url - Url of the image\n * @param {Object} [options] - Some optional paramters\n * @param {Function} [onComplete] - Callback when image loaded or failed\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {HTMLImageElement} onComplete.img - The loaded Image element, null if error occurred\n * @returns {HTMLImageElement} The image element\n * \n * @example\n * downloadDomImage('http://example.com/test.jpg', null, (err, img) => console.log(err));\n * \n * @typescript\n * downloadDomImage(url: string, options?: Record , onComplete?: (err: Error, img: HTMLImageElement) => void): HTMLImageElement\n * downloadDomImage(url: string, onComplete?: (err: Error, img: HTMLImageElement) => void): HTMLImageElement\n */\n downloadDomImage: downloadDomImage,\n\n /*\n * !#en\n * Use audio element to download audio\n * \n * !#zh\n * 使用 Audio 元素来下载音频 \n * \n * @method downloadDomAudio\n * @param {string} url - Url of the audio\n * @param {Object} [options] - Some optional paramters\n * @param {Function} [onComplete] - Callback invoked when audio loaded or failed\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {HTMLAudioElement} onComplete.audio - The loaded audio element, null if error occurred\n * @returns {HTMLAudioElement} The audio element\n * \n * @example\n * downloadDomAudio('http://example.com/test.mp3', null, (err, audio) => console.log(err));\n * \n * @typescript\n * downloadDomAudio(url: string, options?: Record, onComplete?: (err: Error, audio: HTMLAudioElement) => void): HTMLAudioElement\n * downloadDomAudio(url: string, onComplete?: (err: Error, audio: HTMLAudioElement) => void): HTMLAudioElement\n */\n downloadDomAudio: downloadDomAudio,\n \n /*\n * !#en\n * Use XMLHttpRequest to download file\n * \n * !#zh\n * 使用 XMLHttpRequest 来下载文件\n * \n * @method downloadFile\n * @param {string} url - Url of the file\n * @param {Object} [options] - Some optional paramters\n * @param {string} [options.responseType] - Indicate which type of content should be returned\n * @param {boolean} [options.withCredentials] - Indicate whether or not cross-site Access-Contorl requests should be made using credentials\n * @param {string} [options.mimeType] - Indicate which type of content should be returned. In some browsers, responseType does't work, you can use mimeType instead\n * @param {Number} [options.timeout] - Represent the number of ms a request can take before being terminated.\n * @param {Object} [options.header] - The header should be tranferred to server\n * @param {Function} [onFileProgress] - Callback continuously during download is processing\n * @param {Number} onFileProgress.loaded - Size of downloaded content.\n * @param {Number} onFileProgress.total - Total size of content.\n * @param {Function} [onComplete] - Callback when file loaded or failed\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {*} onComplete.response - The loaded content, null if error occurred, type of content can be indicated by options.responseType\n * @returns {XMLHttpRequest} The xhr to be send\n * \n * @example\n * downloadFile('http://example.com/test.bin', {responseType: 'arraybuffer'}, null, (err, arrayBuffer) => console.log(err));\n * \n * @typescript\n * downloadFile(url: string, options?: Record, onFileProgress?: (loaded: Number, total: Number) => void, onComplete?: (err: Error, response: any) => void): XMLHttpRequest\n * downloadFile(url: string, onFileProgress?: (loaded: Number, total: Number) => void, onComplete?: (err: Error, response: any) => void): XMLHttpRequest\n * downloadFile(url: string, options?: Record, onComplete?: (err: Error, response: any) => void): XMLHttpRequest\n * downloadFile(url: string, onComplete?: (err: Error, response: any) => void): XMLHttpRequest\n */\n downloadFile: downloadFile,\n\n /*\n * !#en\n * Load script \n * \n * !#zh\n * 加载脚本\n * \n * @method downloadScript\n * @param {string} url - Url of the script\n * @param {Object} [options] - Some optional paramters\n * @param {boolean} [options.isAsync] - Indicate whether or not loading process should be async\n * @param {Function} [onComplete] - Callback when script loaded or failed\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * \n * @example\n * downloadScript('http://localhost:8080/index.js', null, (err) => console.log(err));\n * \n * @typescript\n * downloadScript(url: string, options?: Record, onComplete?: (err: Error) => void): void\n * downloadScript(url: string, onComplete?: (err: Error) => void): void\n */\n downloadScript: downloadScript,\n\n init (bundleVers, remoteServerAddress) {\n _downloading.clear();\n _queue.length = 0;\n this._remoteServerAddress = remoteServerAddress || '';\n this.bundleVers = bundleVers || Object.create(null);\n },\n\n /**\n * !#en\n * Register custom handler if you want to change default behavior or extend downloader to download other format file\n * \n * !#zh\n * 当你想修改默认行为或者拓展 downloader 来下载其他格式文件时可以注册自定义的 handler \n * \n * @method register\n * @param {string|Object} type - Extension likes '.jpg' or map likes {'.jpg': jpgHandler, '.png': pngHandler}\n * @param {Function} [handler] - handler\n * @param {string} handler.url - url\n * @param {Object} handler.options - some optional paramters will be transferred to handler.\n * @param {Function} handler.onComplete - callback when finishing downloading\n * \n * @example\n * downloader.register('.tga', (url, options, onComplete) => onComplete(null, null));\n * downloader.register({'.tga': (url, options, onComplete) => onComplete(null, null), '.ext': (url, options, onComplete) => onComplete(null, null)});\n * \n * @typescript\n * register(type: string, handler: (url: string, options: Record, onComplete: (err: Error, content: any) => void) => void): void\n * register(map: Record, onComplete: (err: Error, content: any) => void) => void>): void\n */\n register (type, handler) {\n if (typeof type === 'object') {\n js.mixin(downloaders, type);\n }\n else {\n downloaders[type] = handler;\n }\n },\n\n /**\n * !#en\n * Use corresponding handler to download file under limitation \n * \n * !#zh\n * 在限制下使用对应的 handler 来下载文件\n * \n * @method download\n * @param {string} url - The url should be downloaded\n * @param {string} type - The type indicates that which handler should be used to download, such as '.jpg'\n * @param {Object} options - some optional paramters will be transferred to the corresponding handler.\n * @param {Function} [options.onFileProgress] - progressive callback will be transferred to handler.\n * @param {Number} [options.maxRetryCount] - How many times should retry when download failed\n * @param {Number} [options.maxConcurrency] - The maximum number of concurrent when downloading\n * @param {Number} [options.maxRequestsPerFrame] - The maximum number of request can be launched per frame when downloading\n * @param {Number} [options.priority] - The priority of this url, default is 0, the greater number is higher priority.\n * @param {Function} onComplete - callback when finishing downloading\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {*} onComplete.contetnt - The downloaded file\n * \n * @example\n * download('http://example.com/test.tga', '.tga', {onFileProgress: (loaded, total) => console.lgo(loaded/total)}, onComplete: (err) => console.log(err));\n * \n * @typescript\n * download(id: string, url: string, type: string, options: Record, onComplete: (err: Error, content: any) => void): void\n */\n download (id, url, type, options, onComplete) {\n let func = downloaders[type] || downloaders['default'];\n let self = this;\n // if it is downloaded, don't download again\n let file, downloadCallbacks;\n if (file = files.get(id)) {\n onComplete(null, file);\n }\n else if (downloadCallbacks = _downloading.get(id)) {\n downloadCallbacks.push(onComplete);\n for (let i = 0, l = _queue.length; i < l; i++) {\n var item = _queue[i];\n if (item.id === id) {\n var priority = options.priority || 0;\n if (item.priority < priority) {\n item.priority = priority;\n _queueDirty = true;\n } \n return;\n }\n } \n }\n else {\n // if download fail, should retry\n var maxRetryCount = typeof options.maxRetryCount !== 'undefined' ? options.maxRetryCount : this.maxRetryCount;\n var maxConcurrency = typeof options.maxConcurrency !== 'undefined' ? options.maxConcurrency : this.maxConcurrency;\n var maxRequestsPerFrame = typeof options.maxRequestsPerFrame !== 'undefined' ? options.maxRequestsPerFrame : this.maxRequestsPerFrame;\n\n function process (index, callback) {\n if (index === 0) {\n _downloading.add(id, [onComplete]);\n }\n \n if (!self.limited) return func(urlAppendTimestamp(url), options, callback);\n\n // refresh\n updateTime();\n\n function invoke () {\n func(urlAppendTimestamp(url), options, function () {\n // when finish downloading, update _totalNum\n _totalNum--;\n if (!_checkNextPeriod && _queue.length > 0) {\n callInNextTick(handleQueue, maxConcurrency, maxRequestsPerFrame);\n _checkNextPeriod = true;\n }\n callback.apply(this, arguments);\n });\n }\n\n if (_totalNum < maxConcurrency && _totalNumThisPeriod < maxRequestsPerFrame) {\n invoke();\n _totalNum++;\n _totalNumThisPeriod++;\n }\n else {\n // when number of request up to limitation, cache the rest\n _queue.push({ id, priority: options.priority || 0, invoke });\n _queueDirty = true;\n \n if (!_checkNextPeriod && _totalNum < maxConcurrency) {\n callInNextTick(handleQueue, maxConcurrency, maxRequestsPerFrame);\n _checkNextPeriod = true;\n }\n }\n }\n\n // when retry finished, invoke callbacks\n function finale (err, result) {\n if (!err) files.add(id, result);\n var callbacks = _downloading.remove(id);\n for (let i = 0, l = callbacks.length; i < l; i++) {\n callbacks[i](err, result);\n }\n }\n \n retry(process, maxRetryCount, this.retryInterval, finale);\n }\n }\n};\n\n// dafault handler map\nvar downloaders = {\n // Images\n '.png' : downloadImage,\n '.jpg' : downloadImage,\n '.bmp' : downloadImage,\n '.jpeg' : downloadImage,\n '.gif' : downloadImage,\n '.ico' : downloadImage,\n '.tiff' : downloadImage,\n '.webp' : downloadImage,\n '.image' : downloadImage,\n '.pvr': downloadArrayBuffer,\n '.pkm': downloadArrayBuffer,\n\n // Audio\n '.mp3' : downloadAudio,\n '.ogg' : downloadAudio,\n '.wav' : downloadAudio,\n '.m4a' : downloadAudio,\n\n // Txt\n '.txt' : downloadText,\n '.xml' : downloadText,\n '.vsh' : downloadText,\n '.fsh' : downloadText,\n '.atlas' : downloadText,\n\n '.tmx' : downloadText,\n '.tsx' : downloadText,\n\n '.json' : downloadJson,\n '.ExportJson' : downloadJson,\n '.plist' : downloadText,\n\n '.fnt' : downloadText,\n\n // font\n '.font' : loadFont,\n '.eot' : loadFont,\n '.ttf' : loadFont,\n '.woff' : loadFont,\n '.svg' : loadFont,\n '.ttc' : loadFont,\n\n // Video\n '.mp4': downloadVideo,\n '.avi': downloadVideo,\n '.mov': downloadVideo,\n '.mpg': downloadVideo,\n '.mpeg': downloadVideo,\n '.rm': downloadVideo,\n '.rmvb': downloadVideo,\n\n // Binary\n '.binary' : downloadArrayBuffer,\n '.bin': downloadArrayBuffer,\n '.dbbin': downloadArrayBuffer,\n '.skel': downloadArrayBuffer,\n\n '.js': downloadScript,\n\n 'bundle': downloadBundle,\n\n 'default': downloadText\n\n};\n\ndownloader._downloaders = downloaders;\nmodule.exports = downloader;\n","/****************************************************************************\n Copyright (c) 2020 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst Bundle = require('./bundle');\nconst Cache = require('./cache');\nconst { assets, bundles } = require('./shared');\n\nconst _creating = new Cache();\n\nfunction createTexture (id, data, options, onComplete) {\n let out = null, err = null;\n try {\n out = new cc.Texture2D();\n out._nativeUrl = id;\n out._nativeAsset = data;\n }\n catch (e) {\n err = e;\n }\n onComplete && onComplete(err, out);\n}\n\nfunction createAudioClip (id, data, options, onComplete) {\n let out = new cc.AudioClip();\n out._nativeUrl = id;\n out._nativeAsset = data;\n out.duration = data.duration;\n onComplete && onComplete(null, out);\n}\n\nfunction createJsonAsset (id, data, options, onComplete) {\n let out = new cc.JsonAsset();\n out.json = data;\n onComplete && onComplete(null, out);\n}\n\nfunction createTextAsset (id, data, options, onComplete) {\n let out = new cc.TextAsset();\n out.text = data;\n onComplete && onComplete(null, out);\n}\n\nfunction createFont (id, data, options, onComplete) {\n let out = new cc.TTFFont();\n out._nativeUrl = id;\n out._nativeAsset = data;\n onComplete && onComplete(null, out);\n}\n\nfunction createBufferAsset (id, data, options, onComplete) {\n let out = new cc.BufferAsset();\n out._nativeUrl = id;\n out._nativeAsset = data;\n onComplete && onComplete(null, out);\n}\n\nfunction createAsset (id, data, options, onComplete) {\n let out = new cc.Asset();\n out._nativeUrl = id;\n out._nativeAsset = data;\n onComplete && onComplete(null, out);\n}\n\nfunction createBundle (id, data, options, onComplete) {\n let bundle = bundles.get(data.name);\n if (!bundle) {\n bundle = new Bundle();\n data.base = data.base || id + '/';\n bundle.init(data);\n }\n onComplete && onComplete(null, bundle);\n}\n\nconst factory = {\n\n register (type, handler) {\n if (typeof type === 'object') {\n cc.js.mixin(producers, type);\n }\n else {\n producers[type] = handler;\n }\n },\n\n create (id, data, type, options, onComplete) {\n var func = producers[type] || producers['default'];\n let asset, creating;\n if (asset = assets.get(id)) {\n onComplete(null, asset);\n }\n else if (creating = _creating.get(id)) {\n creating.push(onComplete);\n }\n else {\n _creating.add(id, [onComplete]);\n func(id, data, options, function (err, data) {\n if (!err && data instanceof cc.Asset) {\n data._uuid = id;\n assets.add(id, data);\n }\n let callbacks = _creating.remove(id);\n for (let i = 0, l = callbacks.length; i < l; i++) {\n callbacks[i](err, data);\n }\n });\n }\n }\n};\n\nconst producers = {\n // Images\n '.png' : createTexture,\n '.jpg' : createTexture,\n '.bmp' : createTexture,\n '.jpeg' : createTexture,\n '.gif' : createTexture,\n '.ico' : createTexture,\n '.tiff' : createTexture,\n '.webp' : createTexture,\n '.image' : createTexture,\n '.pvr': createTexture,\n '.pkm': createTexture,\n\n // Audio\n '.mp3' : createAudioClip,\n '.ogg' : createAudioClip,\n '.wav' : createAudioClip,\n '.m4a' : createAudioClip,\n\n // Txt\n '.txt' : createTextAsset,\n '.xml' : createTextAsset,\n '.vsh' : createTextAsset,\n '.fsh' : createTextAsset,\n '.atlas' : createTextAsset,\n\n '.tmx' : createTextAsset,\n '.tsx' : createTextAsset,\n '.fnt' : createTextAsset,\n\n '.json' : createJsonAsset,\n '.ExportJson' : createJsonAsset,\n\n // font\n '.font' : createFont,\n '.eot' : createFont,\n '.ttf' : createFont,\n '.woff' : createFont,\n '.svg' : createFont,\n '.ttc' : createFont,\n\n // Binary\n '.binary': createBufferAsset,\n '.bin': createBufferAsset,\n '.dbbin': createBufferAsset,\n '.skel': createBufferAsset,\n\n 'bundle': createBundle,\n\n 'default': createAsset\n\n};\n\nmodule.exports = factory;\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst packManager = require('./pack-manager');\nconst Task = require('./task');\nconst { getDepends, clear, forEach } = require('./utilities');\nconst { assets, fetchPipeline } = require('./shared');\n\nfunction fetch (task, done) {\n\n let firstTask = false;\n if (!task.progress) {\n task.progress = { finish: 0, total: task.input.length, canInvoke: true }; \n firstTask = true;\n }\n\n let options = task.options, depends = [], progress = task.progress, total = progress.total;\n options.__exclude__ = options.__exclude__ || Object.create(null);\n\n task.output = [];\n\n forEach(task.input, function (item, cb) {\n \n if (!item.isNative && assets.has(item.uuid)) {\n var asset = assets.get(item.uuid);\n asset.addRef();\n handle(item, task, asset, null, asset.__asyncLoadAssets__, depends, total, done);\n return cb();\n }\n\n packManager.load(item, task.options, function (err, data) {\n if (err) {\n if (!task.isFinish) {\n if (!cc.assetManager.force || firstTask) {\n cc.error(err.message, err.stack);\n progress.canInvoke = false;\n done(err);\n }\n else {\n handle(item, task, null, null, false, depends, total, done);\n }\n }\n }\n else {\n if (!task.isFinish) handle(item, task, null, data, !item.isNative, depends, total, done);\n }\n cb();\n });\n \n }, function () {\n\n if (task.isFinish) {\n clear(task, true);\n return task.dispatch('error');\n } \n if (depends.length > 0) {\n\n // stage 2 , download depend asset\n let subTask = Task.create({\n name: task.name + ' dependencies',\n input: depends,\n progress,\n options,\n onProgress: task.onProgress,\n onError: Task.prototype.recycle,\n onComplete: function (err) {\n if (!err) {\n task.output.push.apply(task.output, this.output);\n subTask.recycle();\n }\n if (firstTask) decreaseRef(task);\n done(err);\n },\n });\n fetchPipeline.async(subTask);\n return;\n }\n if (firstTask) decreaseRef(task);\n done();\n });\n}\n\nfunction decreaseRef (task) {\n let output = task.output;\n for (let i = 0, l = output.length; i < l; i++) {\n output[i].content && output[i].content.decRef(false);\n }\n}\n\nfunction handle (item, task, content, file, loadDepends, depends, last, done) {\n\n var exclude = task.options.__exclude__;\n var progress = task.progress;\n\n item.content = content;\n item.file = file;\n task.output.push(item);\n\n if (loadDepends) {\n exclude[item.uuid] = true;\n getDepends(item.uuid, file || content, exclude, depends, true, false, item.config);\n progress.total = last + depends.length;\n }\n\n progress.canInvoke && task.dispatch('progress', ++progress.finish, progress.total, item);\n}\n\nmodule.exports = fetch;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst textUtils = require('../utils/text-utils');\n\nlet _canvasContext = null;\n// letter symbol number CJK\nlet _testString = \"BES bswy:->@123\\u4E01\\u3041\\u1101\";\n\nlet _fontFaces = Object.create(null);\nlet _intervalId = -1;\nlet _loadingFonts = [];\n// 3 seconds timeout\nlet _timeout = 3000;\n\n// Refer to https://github.com/typekit/webfontloader/blob/master/src/core/fontwatcher.js\nlet useNativeCheck = (function () {\n var nativeCheck = undefined;\n return function () {\n if (nativeCheck === undefined) {\n if (!!window.FontFace) {\n var match = /Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent);\n var safari10Match = /OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor);\n \n if (match) {\n nativeCheck = parseInt(match[1], 10) > 42;\n } \n else if (safari10Match) {\n nativeCheck = false;\n } \n else {\n nativeCheck = true;\n }\n \n } else {\n nativeCheck = false;\n }\n }\n\n return nativeCheck;\n \n }\n})();\n\nfunction _checkFontLoaded () {\n let allFontsLoaded = true;\n let now = Date.now();\n\n for (let i = _loadingFonts.length - 1; i >= 0; i--) {\n let fontLoadHandle = _loadingFonts[i];\n let fontFamily = fontLoadHandle.fontFamilyName;\n // load timeout\n if (now - fontLoadHandle.startTime > _timeout) {\n cc.warnID(4933, fontFamily);\n fontLoadHandle.onComplete(null, fontFamily);\n _loadingFonts.splice(i, 1);\n continue;\n }\n\n let oldWidth = fontLoadHandle.refWidth;\n let fontDesc = '40px ' + fontFamily;\n _canvasContext.font = fontDesc;\n let newWidth = textUtils.safeMeasureText(_canvasContext, _testString, fontDesc);\n // loaded successfully\n if (oldWidth !== newWidth) {\n _loadingFonts.splice(i, 1);\n fontLoadHandle.onComplete(null, fontFamily);\n }\n else {\n allFontsLoaded = false;\n }\n }\n\n if (allFontsLoaded) {\n clearInterval(_intervalId);\n _intervalId = -1;\n }\n}\n\n// refer to https://github.com/typekit/webfontloader/blob/master/src/core/nativefontwatchrunner.js\nfunction nativeCheckFontLoaded (start, font, callback) {\n var loader = new Promise(function (resolve, reject) {\n var check = function () {\n var now = Date.now();\n\n if (now - start >= _timeout) {\n reject();\n } \n else {\n document.fonts.load('40px ' + font).then(function (fonts) {\n if (fonts.length >= 1) {\n resolve();\n } \n else {\n setTimeout(check, 100);\n }\n }, function () {\n reject();\n });\n }\n };\n\n check();\n });\n \n var timeoutId = null,\n timer = new Promise(function (resolve, reject) {\n timeoutId = setTimeout(reject, _timeout);\n });\n \n Promise.race([timer, loader]).then(function () {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n \n callback(null, font);\n }, function () {\n cc.warnID(4933, font);\n callback(null, font);\n });\n}\n\nvar fontLoader = {\n loadFont: function (url, options, onComplete) {\n let fontFamilyName = fontLoader._getFontFamily(url);\n\n // Already loaded fonts\n if (_fontFaces[fontFamilyName]) {\n return onComplete(null, fontFamilyName);\n }\n\n if (!_canvasContext) {\n let labelCanvas = document.createElement('canvas');\n labelCanvas.width = 100;\n labelCanvas.height = 100;\n _canvasContext = labelCanvas.getContext('2d');\n }\n \n // Default width reference to test whether new font is loaded correctly\n let fontDesc = '40px ' + fontFamilyName;\n _canvasContext.font = fontDesc;\n let refWidth = textUtils.safeMeasureText(_canvasContext, _testString, fontDesc);\n\n // Setup font face style\n let fontStyle = document.createElement(\"style\");\n fontStyle.type = \"text/css\";\n let fontStr = \"\";\n if (isNaN(fontFamilyName - 0))\n fontStr += \"@font-face { font-family:\" + fontFamilyName + \"; src:\";\n else\n fontStr += \"@font-face { font-family:'\" + fontFamilyName + \"'; src:\";\n fontStr += \"url('\" + url + \"');\";\n fontStyle.textContent = fontStr + \"}\";\n document.body.appendChild(fontStyle);\n\n // Preload font with div\n let preloadDiv = document.createElement(\"div\");\n let divStyle = preloadDiv.style;\n divStyle.fontFamily = fontFamilyName;\n preloadDiv.innerHTML = \".\";\n divStyle.position = \"absolute\";\n divStyle.left = \"-100px\";\n divStyle.top = \"-100px\";\n document.body.appendChild(preloadDiv);\n\n if (useNativeCheck()) {\n nativeCheckFontLoaded(Date.now(), fontFamilyName, onComplete);\n }\n else {\n // Save loading font\n let fontLoadHandle = {\n fontFamilyName,\n refWidth,\n onComplete,\n startTime: Date.now()\n }\n _loadingFonts.push(fontLoadHandle);\n if (_intervalId === -1) {\n _intervalId = setInterval(_checkFontLoaded, 100);\n }\n }\n _fontFaces[fontFamilyName] = fontStyle;\n },\n\n _getFontFamily: function (fontHandle) {\n var ttfIndex = fontHandle.lastIndexOf(\".ttf\");\n if (ttfIndex === -1) return fontHandle;\n\n var slashPos = fontHandle.lastIndexOf(\"/\");\n var fontFamilyName;\n if (slashPos === -1) {\n fontFamilyName = fontHandle.substring(0, ttfIndex) + \"_LABEL\";\n } else {\n fontFamilyName = fontHandle.substring(slashPos + 1, ttfIndex) + \"_LABEL\";\n }\n if (fontFamilyName.indexOf(' ') !== -1) {\n fontFamilyName = '\"' + fontFamilyName + '\"';\n }\n return fontFamilyName;\n }\n};\n\nmodule.exports = fontLoader","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst { bundles } = require('./shared');\n/**\n * @module cc.AssetManager\n */\n/**\n * !#en\n * Provide some helpful function, it is a singleton. All member can be accessed with `cc.assetManager.utils`\n * \n * !#zh\n * 提供一些辅助方法,helper 是一个单例, 所有成员能通过 `cc.assetManager.utils` 访问\n * \n * @class Helper\n */\nvar helper = {\n /**\n * !#en\n * Decode uuid, returns the original uuid\n * \n * !#zh\n * 解码 uuid,返回原始 uuid\n * \n * @method decodeUuid\n * @param {String} base64 - the encoded uuid\n * @returns {String} the original uuid \n * \n * @example\n * var uuid = 'fcmR3XADNLgJ1ByKhqcC5Z';\n * var originalUuid = decodeUuid(uuid); // fc991dd7-0033-4b80-9d41-c8a86a702e59\n * \n * @typescript\n * decodeUuid(base64: string): string\n */\n decodeUuid: require('../utils/decode-uuid'),\n\n /**\n * !#en\n * Extract uuid from url\n * \n * !#zh\n * 从 url 中提取 uuid\n * \n * @method getUuidFromURL\n * @param {String} url - url\n * @returns {String} the uuid parsed from url\n * \n * @example\n * var url = 'assets/main/import/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.json';\n * var uuid = getUuidFromURL(url); // fc991dd7-0033-4b80-9d41-c8a86a702e59\n * \n * @typescript\n * getUuidFromURL(url: string): string\n */\n getUuidFromURL: (function () {\n var _uuidRegex = /.*[/\\\\][0-9a-fA-F]{2}[/\\\\]([0-9a-fA-F-]{8,})/;\n return function (url) {\n var matches = url.match(_uuidRegex);\n if (matches) {\n return matches[1];\n }\n return '';\n }\n })(),\n\n /**\n * !#en\n * Transform uuid to url\n * \n * !#zh\n * 转换 uuid 为 url\n * \n * @method getUrlWithUuid\n * @param {string} uuid - The uuid of asset\n * @param {Object} [options] - Some optional parameters\n * @param {Boolean} [options.isNative] - Indicates whether the path you want is a native resource path\n * @param {string} [options.nativeExt] - Extension of the native resource path, it is required when isNative is true\n * @returns {string} url\n * \n * @example\n * // json path, 'assets/main/import/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.json';\n * var url = getUrlWithUuid('fcmR3XADNLgJ1ByKhqcC5Z', {isNative: false});\n * \n * // png path, 'assets/main/native/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.png';\n * var url = getUrlWithUuid('fcmR3XADNLgJ1ByKhqcC5Z', {isNative: true, nativeExt: '.png'});\n * \n * @typescript\n * getUrlWithUuid(uuid: string, options?: Record): string\n */\n getUrlWithUuid: function (uuid, options) {\n options = options || Object.create(null);\n options.__isNative__ = options.isNative;\n options.ext = options.nativeExt;\n var bundle = bundles.find(function (bundle) {\n return bundle.getAssetInfo(uuid);\n });\n\n if (bundle) {\n options.bundle = bundle.name;\n }\n\n return cc.assetManager._transform(uuid, options);\n },\n\n /**\n * !#en\n * Check if the type of asset is scene\n * \n * !#zh\n * 检查资源类型是否是场景\n * \n * @method isScene\n * @param {*} asset - asset\n * @returns {boolean} - whether or not type is cc.SceneAsset\n * \n * @typescript\n * isScene(asset: any): boolean\n */\n isScene: function (asset) {\n return asset && (asset.constructor === cc.SceneAsset || asset instanceof cc.Scene);\n },\n\n /**\n * !#en\n * Normalize url, strip './' and '/'\n * \n * !#zh\n * 标准化 url ,去除 './' 和 '/' \n * \n * @method normalize\n * @param {string} url - url\n * @returns {string} - The normalized url\n * \n * @typescript\n * normalize(url: string): string\n */\n normalize: function (url) {\n if (url) {\n if (url.charCodeAt(0) === 46 && url.charCodeAt(1) === 47) {\n // strip './'\n url = url.slice(2);\n }\n else if (url.charCodeAt(0) === 47) {\n // strip '/'\n url = url.slice(1);\n }\n }\n return url;\n }\n};\n\nmodule.exports = helper;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nrequire('./deprecated');\nrequire('./CCAssetManager');\n\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst packManager = require('./pack-manager');\nconst Pipeline = require('./pipeline');\nconst parser = require('./parser');\nconst { getDepends, cache, gatherAsset, setProperties, forEach, clear, checkCircleReference } = require('./utilities');\nconst { assets, files, parsed, pipeline } = require('./shared');\nconst Task = require('./task');\n\nfunction load (task, done) {\n\n let firstTask = false;\n if (!task.progress) {\n task.progress = { finish: 0, total: task.input.length, canInvoke: true };\n firstTask = true;\n }\n \n var options = task.options, progress = task.progress;\n\n options.__exclude__ = options.__exclude__ || Object.create(null);\n\n task.output = [];\n \n forEach(task.input, function (item, cb) {\n\n let subTask = Task.create({ \n input: item, \n onProgress: task.onProgress, \n options, \n progress, \n onComplete: function (err, item) {\n if (err && !task.isFinish) {\n if (!cc.assetManager.force || firstTask) {\n if (!CC_EDITOR) {\n cc.error(err.message, err.stack);\n }\n progress.canInvoke = false;\n done(err);\n }\n else {\n progress.canInvoke && task.dispatch('progress', ++progress.finish, progress.total, item);\n }\n }\n task.output.push(item);\n subTask.recycle();\n cb();\n }\n });\n\n loadOneAssetPipeline.async(subTask);\n\n }, function () {\n\n options.__exclude__ = null;\n\n if (task.isFinish) {\n clear(task, true);\n return task.dispatch('error');\n }\n\n gatherAsset(task);\n clear(task, true);\n done();\n });\n}\n\nvar loadOneAssetPipeline = new Pipeline('loadOneAsset', [\n\n function fetch (task, done) {\n var item = task.output = task.input;\n var { options, isNative, uuid, file } = item;\n var { reload } = options;\n\n if (file || (!reload && !isNative && assets.has(uuid))) return done();\n\n packManager.load(item, task.options, function (err, data) {\n item.file = data;\n done(err);\n });\n },\n\n function parse (task, done) {\n\n var item = task.output = task.input, progress = task.progress, exclude = task.options.__exclude__;\n var { id, file, options } = item;\n\n if (item.isNative) {\n parser.parse(id, file, item.ext, options, function (err, asset) {\n if (err) return done(err);\n item.content = asset;\n progress.canInvoke && task.dispatch('progress', ++progress.finish, progress.total, item);\n files.remove(id);\n parsed.remove(id);\n done();\n });\n }\n else {\n var { uuid } = item;\n if (uuid in exclude) {\n \n var { finish, content, err, callbacks } = exclude[uuid];\n progress.canInvoke && task.dispatch('progress', ++progress.finish, progress.total, item);\n \n if (finish || checkCircleReference(uuid, uuid, exclude) ) {\n content && content.addRef && content.addRef();\n item.content = content;\n done(err);\n }\n else {\n callbacks.push({ done, item });\n }\n }\n else {\n if (!options.reload && assets.has(uuid)) {\n var asset = assets.get(uuid);\n if (options.__asyncLoadAssets__ || !asset.__asyncLoadAssets__) {\n item.content = asset.addRef();\n progress.canInvoke && task.dispatch('progress', ++progress.finish, progress.total, item);\n done();\n }\n else {\n loadDepends(task, asset, done, false);\n }\n }\n else {\n parser.parse(id, file, 'import', options, function (err, asset) {\n if (err) return done(err);\n asset._uuid = uuid;\n loadDepends(task, asset, done, true);\n });\n }\n }\n }\n }\n]);\n\nfunction loadDepends (task, asset, done, init) {\n\n var item = task.input, progress = task.progress;\n var { uuid, id, options, config } = item;\n var { __asyncLoadAssets__, cacheAsset } = options;\n\n var depends = [];\n // add reference avoid being released during loading dependencies\n asset.addRef && asset.addRef();\n getDepends(uuid, asset, Object.create(null), depends, false, __asyncLoadAssets__, config);\n progress.canInvoke && task.dispatch('progress', ++progress.finish, progress.total += depends.length, item);\n\n var repeatItem = task.options.__exclude__[uuid] = { content: asset, finish: false, callbacks: [{ done, item }] };\n\n let subTask = Task.create({ \n input: depends, \n options: task.options, \n onProgress: task.onProgress, \n onError: Task.prototype.recycle, \n progress, \n onComplete: function (err) {\n asset.decRef && asset.decRef(false);\n asset.__asyncLoadAssets__ = __asyncLoadAssets__;\n repeatItem.finish = true;\n repeatItem.err = err;\n\n if (!err) {\n\n var assets = Array.isArray(subTask.output) ? subTask.output : [subTask.output];\n var map = Object.create(null);\n for (let i = 0, l = assets.length; i < l; i++) {\n var dependAsset = assets[i];\n dependAsset && (map[dependAsset instanceof cc.Asset ? dependAsset._uuid + '@import' : uuid + '@native'] = dependAsset);\n }\n\n if (!init) {\n if (asset.__nativeDepend__ && !asset._nativeAsset) {\n var missingAsset = setProperties(uuid, asset, map);\n if (!missingAsset && !asset.__onLoadInvoked__) {\n try {\n asset.onLoad && asset.onLoad();\n asset.__onLoadInvoked__ = true;\n }\n catch (e) {\n cc.error(e.message, e.stack);\n }\n }\n }\n }\n else {\n var missingAsset = setProperties(uuid, asset, map);\n if (!missingAsset && !asset.__onLoadInvoked__) {\n try {\n asset.onLoad && asset.onLoad();\n asset.__onLoadInvoked__ = true;\n }\n catch (e) {\n cc.error(e.message, e.stack);\n }\n }\n files.remove(id);\n parsed.remove(id);\n cache(uuid, asset, cacheAsset !== undefined ? cacheAsset : cc.assetManager.cacheAsset); \n }\n subTask.recycle();\n }\n \n var callbacks = repeatItem.callbacks;\n\n for (var i = 0, l = callbacks.length; i < l; i++) {\n\n var cb = callbacks[i];\n asset.addRef && asset.addRef();\n cb.item.content = asset;\n cb.done(err);\n\n }\n\n callbacks.length = 0;\n }\n });\n\n pipeline.async(subTask);\n}\n\nmodule.exports = load;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nimport { unpackJSONs, packCustomObjData } from '../platform/deserialize-compiled';\n\nconst downloader = require('./downloader');\nconst Cache = require('./cache');\nconst js = require('../platform/js');\nconst { files } = require('./shared');\n\nvar _loading = new Cache();\n\nfunction isLoading (val) {\n return _loading.has(val.uuid);\n}\n\n\n/**\n * @module cc.AssetManager\n */\n/**\n * !#en\n * Handle the packed asset, include unpacking, loading, cache and so on. It is a singleton. All member can be accessed with `cc.assetManager.packManager`\n * \n * !#zh\n * 处理打包资源,包括拆包,加载,缓存等等,这是一个单例, 所有成员能通过 `cc.assetManager.packManager` 访问\n * \n * @class PackManager\n */\nvar packManager = {\n\n /**\n * !#en\n * Unpack the json, revert to what it was before packing\n * \n * !#zh\n * 拆解 json 包,恢复为打包之前的内容\n * \n * @method unpackJson\n * @param {String[]} pack - The pack\n * @param {Object} json - The content of pack\n * @param {Object} options - Some optional parameters\n * @param {Function} onComplete - Callback when finish unpacking\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {Object} onComplete.content - The unpacked assets\n * \n * @example\n * downloader.downloadFile('pack.json', {responseType: 'json'}, null, (err, file) => {\n * packManager.unpackJson(['a', 'b'], file, null, (err, data) => console.log(err));\n * });\n * \n * @typescript\n * unpackJson(pack: string[], json: any, options: Record, onComplete?: (err: Error, content: any) => void): void\n */\n unpackJson (pack, json, options, onComplete) {\n\n var out = js.createMap(true), err = null;\n \n if (Array.isArray(json)) {\n\n json = unpackJSONs(json);\n\n if (json.length !== pack.length) {\n cc.errorID(4915);\n }\n for (let i = 0; i < pack.length; i++) {\n var key = pack[i] + '@import';\n out[key] = json[i];\n }\n }\n else {\n const textureType = js._getClassId(cc.Texture2D);\n if (json.type === textureType) {\n if (json.data) {\n var datas = json.data.split('|');\n if (datas.length !== pack.length) {\n cc.errorID(4915);\n }\n for (let i = 0; i < pack.length; i++) {\n out[pack[i] + '@import'] = packCustomObjData(textureType, datas[i], true);\n }\n }\n }\n else {\n err = new Error('unmatched type pack!');\n out = null;\n }\n }\n onComplete && onComplete(err, out);\n },\n\n init () {\n _loading.clear();\n },\n\n /**\n * !#en\n * Register custom handler if you want to change default behavior or extend packManager to unpack other format pack\n * \n * !#zh\n * 当你想修改默认行为或者拓展 packManager 来拆分其他格式的包时可以注册自定义的 handler\n * \n * @method register\n * @param {string|Object} type - Extension likes '.bin' or map likes {'.bin': binHandler, '.ab': abHandler}\n * @param {Function} [handler] - handler\n * @param {string} handler.packUuid - The uuid of pack\n * @param {*} handler.data - The content of pack\n * @param {Object} handler.options - Some optional parameters\n * @param {Function} handler.onComplete - Callback when finishing unpacking\n * \n * @example\n * packManager.register('.bin', (packUuid, file, options, onComplete) => onComplete(null, null));\n * packManager.register({'.bin': (packUuid, file, options, onComplete) => onComplete(null, null), '.ab': (packUuid, file, options, onComplete) => onComplete(null, null)});\n * \n * @typescript\n * register(type: string, handler: (packUuid: string, data: any, options: Record, onComplete: (err: Error, content: any) => void) => void): void\n * register(map: Record, onComplete: (err: Error, content: any) => void) => void>): void\n */\n register (type, handler) {\n if (typeof type === 'object') {\n js.mixin(unpackers, type);\n }\n else {\n unpackers[type] = handler;\n }\n },\n \n /**\n * !#en\n * Use corresponding handler to unpack package\n * \n * !#zh\n * 用对应的 handler 来进行解包 \n * \n * @method unpack\n * @param {String[]} pack - The uuid of packed assets \n * @param {*} data - The packed data\n * @param {string} type - The type indicates that which handler should be used to download, such as '.jpg'\n * @param {Object} options - Some optional parameter\n * @param {Function} onComplete - callback when finishing unpacking\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {*} onComplete.data - Original assets\n * \n * @example\n * downloader.downloadFile('pack.json', {responseType: 'json'}, null, (err, file) => {\n * packManager.unpack(['2fawq123d', '1zsweq23f'], file, '.json', null, (err, data) => console.log(err));\n * });\n * \n * @typescript\n * unpack(pack: string[], data: any, type: string, options: Record, onComplete?: (err: Error, data: any) => void): void\n */\n unpack (pack, data, type, options, onComplete) {\n if (!data) {\n onComplete && onComplete(new Error('package data is wrong!'));\n return;\n }\n var unpacker = unpackers[type];\n unpacker(pack, data, options, onComplete);\n },\n\n /**\n * !#en\n * Download request item, If item is not in any package, download as usual. Otherwise, download the corresponding package and unpack it. \n * And then retrieve the corresponding content form it.\n * \n * !#zh\n * 下载请求对象,如果请求对象不在任何包内,则正常下载,否则下载对应的 package 并进行拆解,并取回包内对应的内容\n * \n * @method load\n * @param {RequestItem} item - Some item you want to download\n * @param {Object} options - Some optional parameters\n * @param {Function} onComplete - Callback when finished\n * @param {Err} onComplete.err - The occurred error, null indicetes success\n * @param {*} onComplete.data - The unpacked data retrieved from package\n * \n * @example\n * var requestItem = cc.AssetManager.RequestItem.create();\n * requestItem.uuid = 'fcmR3XADNLgJ1ByKhqcC5Z';\n * requestItem.info = config.getAssetInfo('fcmR3XADNLgJ1ByKhqcC5Z');\n * packManager.load(requestItem, null, (err, data) => console.log(err));\n * \n * @typescript\n * load(item: RequestItem, options: Record, onComplete: (err: Error, data: any) => void): void\n * \n */\n load (item, options, onComplete) {\n // if not in any package, download as uausl\n if (item.isNative || !item.info || !item.info.packs) return downloader.download(item.id, item.url, item.ext, item.options, onComplete);\n\n if (files.has(item.id)) return onComplete(null, files.get(item.id));\n\n var packs = item.info.packs;\n\n // find a loading package\n var pack = packs.find(isLoading);\n \n if (pack) return _loading.get(pack.uuid).push({ onComplete, id: item.id });\n\n // download a new package\n pack = packs[0];\n _loading.add(pack.uuid, [{ onComplete, id: item.id }]);\n\n let url = cc.assetManager._transform(pack.uuid, {ext: pack.ext, bundle: item.config.name});\n\n downloader.download(pack.uuid, url, pack.ext, item.options, function (err, data) {\n files.remove(pack.uuid);\n if (err) {\n cc.error(err.message, err.stack);\n }\n // unpack package\n packManager.unpack(pack.packs, data, pack.ext, item.options, function (err, result) {\n if (!err) {\n for (var id in result) {\n files.add(id, result[id]);\n }\n }\n var callbacks = _loading.remove(pack.uuid);\n for (var i = 0, l = callbacks.length; i < l; i++) {\n var cb = callbacks[i];\n if (err) {\n cb.onComplete(err);\n continue;\n }\n\n var data = result[cb.id];\n if (!data) {\n cb.onComplete(new Error('can not retrieve data from package'));\n }\n else {\n cb.onComplete(null, data);\n }\n }\n });\n });\n }\n};\n\nvar unpackers = {\n '.json': packManager.unpackJson\n};\n\nmodule.exports = packManager;\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc.AssetManager\n */\n\nconst plistParser = require('../platform/CCSAXParser').plistParser;\nconst js = require('../platform/js');\nconst deserialize = require('./deserialize');\nconst Cache = require('./cache');\nconst { isScene } = require('./helper');\nconst { parsed, files } = require('./shared');\nconst { __audioSupport, capabilities } = require('../platform/CCSys');\n\nvar _parsing = new Cache();\n\n/**\n * !#en\n * Parse the downloaded file, it's a singleton, all member can be accessed with `cc.assetManager.parser`\n * \n * !#zh\n * 解析已下载的文件,parser 是一个单例, 所有成员能通过 `cc.assetManaager.parser` 访问\n * \n * @class Parser\n */\nvar parser = {\n /*\n * !#en\n * Parse image file\n * \n * !#zh\n * 解析图片文件\n * \n * @method parseImage\n * @param {Blob} file - The downloaded file\n * @param {Object} options - Some optional paramters \n * @param {Function} [onComplete] - callback when finish parsing.\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {ImageBitmap|HTMLImageElement} onComplete.img - The parsed content\n * \n * @example\n * downloader.downloadFile('test.jpg', {responseType: 'blob'}, null, (err, file) => {\n * parser.parseImage(file, null, (err, img) => console.log(err));\n * });\n * \n * @typescript\n * parseImage(file: Blob, options: Record, onComplete?: (err: Error, img: ImageBitmap|HTMLImageElement) => void): void\n */\n parseImage (file, options, onComplete) {\n if (capabilities.imageBitmap && file instanceof Blob) {\n let imageOptions = {};\n imageOptions.imageOrientation = options.__flipY__ ? 'flipY' : 'none';\n imageOptions.premultiplyAlpha = options.__premultiplyAlpha__ ? 'premultiply' : 'none';\n createImageBitmap(file, imageOptions).then(function (result) {\n result.flipY = !!options.__flipY__;\n result.premultiplyAlpha = !!options.__premultiplyAlpha__;\n onComplete && onComplete(null, result);\n }, function (err) {\n onComplete && onComplete(err, null);\n });\n }\n else {\n onComplete && onComplete(null, file);\n }\n },\n\n /*\n * !#en\n * Parse audio file\n * \n * !#zh\n * 解析音频文件\n * \n * @method parseAudio\n * @param {ArrayBuffer|HTMLAudioElement} file - The downloaded file\n * @param {Object} options - Some optional paramters\n * @param {Function} onComplete - Callback when finish parsing.\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {AudioBuffer|HTMLAudioElement} onComplete.audio - The parsed content\n * \n * @example\n * downloader.downloadFile('test.mp3', {responseType: 'arraybuffer'}, null, (err, file) => {\n * parser.parseAudio(file, null, (err, audio) => console.log(err));\n * });\n * \n * @typescript\n * parseAudio(file: ArrayBuffer|HTMLAudioElement, options: Record, onComplete?: (err: Error, audio: AudioBuffer|HTMLAudioElement) => void): void\n */\n parseAudio (file, options, onComplete) {\n if (file instanceof ArrayBuffer) { \n __audioSupport.context.decodeAudioData(file, function (buffer) {\n onComplete && onComplete(null, buffer);\n }, function(e){\n onComplete && onComplete(e, null);\n });\n }\n else {\n onComplete && onComplete(null, file);\n }\n },\n\n /*\n * !#en\n * Parse pvr file \n * \n * !#zh\n * 解析压缩纹理格式 pvr 文件\n * \n * @method parsePVRTex\n * @param {ArrayBuffer|ArrayBufferView} file - The downloaded file\n * @param {Object} options - Some optional paramters\n * @param {Function} onComplete - Callback when finish parsing.\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {Object} onComplete.pvrAsset - The parsed content\n * \n * @example\n * downloader.downloadFile('test.pvr', {responseType: 'arraybuffer'}, null, (err, file) => {\n * parser.parsePVRTex(file, null, (err, pvrAsset) => console.log(err));\n * });\n * \n * @typescript\n * parsePVRTex(file: ArrayBuffer|ArrayBufferView, options: Record, onComplete: (err: Error, pvrAsset: {_data: Uint8Array, _compressed: boolean, width: number, height: number}) => void): void\n */\n parsePVRTex : (function () {\n //===============//\n // PVR constants //\n //===============//\n // https://github.com/toji/texture-tester/blob/master/js/webgl-texture-util.js#L424\n const PVR_HEADER_LENGTH = 13; // The header length in 32 bit ints.\n const PVR_MAGIC = 0x03525650; //0x50565203;\n \n // Offsets into the header array.\n const PVR_HEADER_MAGIC = 0;\n const PVR_HEADER_FORMAT = 2;\n const PVR_HEADER_HEIGHT = 6;\n const PVR_HEADER_WIDTH = 7;\n const PVR_HEADER_MIPMAPCOUNT = 11;\n const PVR_HEADER_METADATA = 12;\n \n return function (file, options, onComplete) {\n let err = null, out = null;\n try {\n let buffer = file instanceof ArrayBuffer ? file : file.buffer;\n // Get a view of the arrayBuffer that represents the DDS header.\n let header = new Int32Array(buffer, 0, PVR_HEADER_LENGTH);\n \n // Do some sanity checks to make sure this is a valid DDS file.\n if(header[PVR_HEADER_MAGIC] != PVR_MAGIC) {\n throw new Error(\"Invalid magic number in PVR header\");\n }\n \n // Gather other basic metrics and a view of the raw the DXT data.\n let width = header[PVR_HEADER_WIDTH];\n let height = header[PVR_HEADER_HEIGHT];\n let dataOffset = header[PVR_HEADER_METADATA] + 52;\n let pvrtcData = new Uint8Array(buffer, dataOffset);\n \n out = {\n _data: pvrtcData,\n _compressed: true,\n width: width,\n height: height,\n };\n \n }\n catch (e) {\n err = e;\n }\n onComplete && onComplete(err, out);\n };\n })(),\n\n /*\n * !#en\n * Parse pkm file\n * \n * !#zh\n * 解析压缩纹理格式 pkm 文件\n * \n * @method parsePKMTex\n * @param {ArrayBuffer|ArrayBufferView} file - The downloaded file\n * @param {Object} options - Some optional paramters\n * @param {Function} onComplete - Callback when finish parsing.\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {Object} onComplete.etcAsset - The parsed content\n * \n * @example\n * downloader.downloadFile('test.pkm', {responseType: 'arraybuffer'}, null, (err, file) => {\n * parser.parsePKMTex(file, null, (err, etcAsset) => console.log(err));\n * });\n * \n * @typescript\n * parsePKMTex(file: ArrayBuffer|ArrayBufferView, options: Record, onComplete: (err: Error, etcAsset: {_data: Uint8Array, _compressed: boolean, width: number, height: number}) => void): void\n */\n parsePKMTex: (function () {\n //===============//\n // ETC constants //\n //===============//\n const ETC_PKM_HEADER_SIZE = 16;\n\n const ETC_PKM_FORMAT_OFFSET = 6;\n const ETC_PKM_ENCODED_WIDTH_OFFSET = 8;\n const ETC_PKM_ENCODED_HEIGHT_OFFSET = 10;\n const ETC_PKM_WIDTH_OFFSET = 12;\n const ETC_PKM_HEIGHT_OFFSET = 14;\n\n const ETC1_RGB_NO_MIPMAPS = 0;\n const ETC2_RGB_NO_MIPMAPS = 1;\n const ETC2_RGBA_NO_MIPMAPS = 3;\n\n function readBEUint16(header, offset) {\n return (header[offset] << 8) | header[offset+1];\n }\n return function (file, options, onComplete) {\n let err = null, out = null;\n try {\n let buffer = file instanceof ArrayBuffer ? file : file.buffer;\n let header = new Uint8Array(buffer);\n let format = readBEUint16(header, ETC_PKM_FORMAT_OFFSET);\n if (format !== ETC1_RGB_NO_MIPMAPS && format !== ETC2_RGB_NO_MIPMAPS && format !== ETC2_RGBA_NO_MIPMAPS) {\n return new Error(\"Invalid magic number in ETC header\");\n }\n let width = readBEUint16(header, ETC_PKM_WIDTH_OFFSET);\n let height = readBEUint16(header, ETC_PKM_HEIGHT_OFFSET);\n let encodedWidth = readBEUint16(header, ETC_PKM_ENCODED_WIDTH_OFFSET);\n let encodedHeight = readBEUint16(header, ETC_PKM_ENCODED_HEIGHT_OFFSET);\n let etcData = new Uint8Array(buffer, ETC_PKM_HEADER_SIZE);\n out = {\n _data: etcData,\n _compressed: true,\n width: width,\n height: height\n };\n \n }\n catch (e) {\n err = e;\n }\n onComplete && onComplete(err, out);\n }\n })(),\n\n /*\n * !#en\n * Parse plist file\n * \n * !#zh\n * 解析 plist 文件\n * \n * @method parsePlist\n * @param {string} file - The downloaded file\n * @param {Object} options - Some optional paramters\n * @param {Function} onComplete - Callback when finish parsing\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {*} onComplete.data - The parsed content\n * \n * @example\n * downloader.downloadFile('test.plist', {responseType: 'text'}, null, (err, file) => {\n * parser.parsePlist(file, null, (err, data) => console.log(err));\n * });\n * \n * @typescript\n * parsePlist(file: string, options: Record, onComplete?: (err: Error, data: any) => void): void\n */\n parsePlist (file, options, onComplete) {\n var err = null;\n var result = plistParser.parse(file);\n if (!result) err = new Error('parse failed');\n onComplete && onComplete(err, result);\n },\n\n /*\n * !#en\n * Deserialize asset file\n * \n * !#zh\n * 反序列化资源文件\n * \n * @method parseImport\n * @param {Object} file - The serialized json\n * @param {Object} options - Some optional paramters\n * @param {Function} onComplete - Callback when finish parsing\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {Asset} onComplete.asset - The parsed content\n * \n * @example\n * downloader.downloadFile('test.json', {responseType: 'json'}, null, (err, file) => {\n * parser.parseImport(file, null, (err, data) => console.log(err));\n * });\n * \n * @typescript\n * parseImport (file: any, options: Record, onComplete?: (err: Error, asset: cc.Asset) => void): void\n */\n parseImport (file, options, onComplete) {\n if (!file) return onComplete && onComplete(new Error('Json is empty'));\n var result, err = null;\n try {\n result = deserialize(file, options);\n }\n catch (e) {\n err = e;\n }\n onComplete && onComplete(err, result);\n },\n\n init () {\n _parsing.clear();\n },\n\n /**\n * !#en\n * Register custom handler if you want to change default behavior or extend parser to parse other format file\n * \n * !#zh\n * 当你想修改默认行为或者拓展 parser 来解析其他格式文件时可以注册自定义的handler\n * \n * @method register\n * @param {string|Object} type - Extension likes '.jpg' or map likes {'.jpg': jpgHandler, '.png': pngHandler}\n * @param {Function} [handler] - The corresponding handler\n * @param {*} handler.file - File\n * @param {Object} handler.options - Some optional paramter\n * @param {Function} handler.onComplete - callback when finishing parsing\n * \n * @example\n * parser.register('.tga', (file, options, onComplete) => onComplete(null, null));\n * parser.register({'.tga': (file, options, onComplete) => onComplete(null, null), '.ext': (file, options, onComplete) => onComplete(null, null)});\n * \n * @typescript\n * register(type: string, handler: (file: any, options: Record, onComplete: (err: Error, data: any) => void) => void): void\n * register(map: Record, onComplete: (err: Error, data: any) => void) => void>): void\n */\n register (type, handler) {\n if (typeof type === 'object') {\n js.mixin(parsers, type);\n }\n else {\n parsers[type] = handler;\n }\n },\n\n /**\n * !#en\n * Use corresponding handler to parse file \n * \n * !#zh\n * 使用对应的handler来解析文件\n * \n * @method parse\n * @param {string} id - The id of file\n * @param {*} file - File\n * @param {string} type - The corresponding type of file, likes '.jpg'.\n * @param {Object} options - Some optional paramters will be transferred to the corresponding handler.\n * @param {Function} onComplete - callback when finishing downloading\n * @param {Error} onComplete.err - The occurred error, null indicetes success\n * @param {*} onComplete.contetnt - The parsed file\n * \n * @example\n * downloader.downloadFile('test.jpg', {responseType: 'blob'}, null, (err, file) => {\n * parser.parse('test.jpg', file, '.jpg', null, (err, img) => console.log(err));\n * });\n * \n * @typescript\n * parse(id: string, file: any, type: string, options: Record, onComplete: (err: Error, content: any) => void): void\n */\n parse (id, file, type, options, onComplete) {\n let parsedAsset, parsing, parseHandler;\n if (parsedAsset = parsed.get(id)) {\n onComplete(null, parsedAsset);\n }\n else if (parsing = _parsing.get(id)){\n parsing.push(onComplete);\n }\n else if (parseHandler = parsers[type]){\n _parsing.add(id, [onComplete]);\n parseHandler(file, options, function (err, data) {\n if (err) {\n files.remove(id);\n } \n else if (!isScene(data)){\n parsed.add(id, data);\n }\n let callbacks = _parsing.remove(id);\n for (let i = 0, l = callbacks.length; i < l; i++) {\n callbacks[i](err, data);\n }\n });\n }\n else {\n onComplete(null, file);\n }\n }\n};\n\nvar parsers = {\n '.png' : parser.parseImage,\n '.jpg' : parser.parseImage,\n '.bmp' : parser.parseImage,\n '.jpeg' : parser.parseImage,\n '.gif' : parser.parseImage,\n '.ico' : parser.parseImage,\n '.tiff' : parser.parseImage,\n '.webp' : parser.parseImage,\n '.image' : parser.parseImage,\n '.pvr' : parser.parsePVRTex,\n '.pkm' : parser.parsePKMTex,\n // Audio\n '.mp3' : parser.parseAudio,\n '.ogg' : parser.parseAudio,\n '.wav' : parser.parseAudio,\n '.m4a' : parser.parseAudio,\n\n // plist\n '.plist' : parser.parsePlist,\n 'import' : parser.parseImport\n};\n\nmodule.exports = parser;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n/**\n * @module cc.AssetManager\n */\n\nconst Task = require('./task');\n\nvar _pipelineId = 0;\n/**\n * !#en\n * Pipeline can execute the task for some effect.\n * \n * !#zh\n * 管线能执行任务达到某个效果\n * \n * @class Pipeline\n */\nfunction Pipeline (name, funcs) {\n if (!Array.isArray(funcs)) {\n cc.warn('funcs must be an array');\n return;\n } \n \n /**\n * !#en\n * The id of pipeline\n * \n * !#zh\n * 管线的 id\n * \n * @property id\n * @type {Number}\n */\n this.id = _pipelineId++;\n\n /**\n * !#en\n * The name of pipeline\n * \n * !#zh\n * 管线的名字\n * \n * @property name\n * @type {String}\n */\n this.name = name;\n\n /**\n * !#en\n * All pipes of pipeline\n * \n * !#zh\n * 所有的管道\n * \n * @property pipes\n * @type {Function[]}\n */\n this.pipes = [];\n\n for (var i = 0, l = funcs.length; i < l; i++) {\n if (typeof funcs[i] === 'function') {\n this.pipes.push(funcs[i]);\n }\n }\n\n}\n\nPipeline.prototype = {\n\n\n /**\n * !#en\n * Create a new pipeline\n * \n * !#zh\n * 创建一个管线\n * \n * @method constructor\n * @param {string} name - The name of pipeline\n * @param {Function[]} funcs - The array of pipe, every pipe must be function which take two parameters, the first is a `Task` flowed in pipeline, the second is complete callback\n * \n * @example\n * var pipeline = new Pipeline('download', [\n * (task, done) => {\n * var url = task.input;\n * cc.assetManager.downloader.downloadFile(url, null, null, (err, result) => {\n * task.output = result;\n * done(err);\n * });\n * },\n * (task, done) => {\n * var text = task.input;\n * var json = JSON.stringify(text);\n * task.output = json;\n * done();\n * }\n * ]);\n * \n * @typescript\n * constructor(name: string, funcs: Array<(task: Task, done?: (err: Error) => void) => void>)\n */\n constructor: Pipeline,\n\n /**\n * !#en\n * At specific point insert a new pipe to pipeline\n * \n * !#zh\n * 在某个特定的点为管线插入一个新的 pipe\n * \n * @method insert\n * @param {Function} func - The new pipe\n * @param {Task} func.task - The task handled with pipeline will be transferred to this function\n * @param {Function} [func.callback] - Callback you need to invoke manually when this pipe is finished. if the pipeline is synchronous, callback is unnecessary.\n * @param {number} index - The specific point you want to insert at.\n * @return {Pipeline} pipeline\n * \n * @example\n * var pipeline = new Pipeline('test', []);\n * pipeline.insert((task, done) => {\n * // do something\n * done();\n * }, 0);\n * \n * @typescript\n * insert(func: (task: Task, callback?: (err: Error) => void) => void, index: number): Pipeline\n */\n insert (func, index) {\n if (typeof func !== 'function' || index > this.pipes.length) {\n cc.warnID(4921);\n return;\n }\n \n this.pipes.splice(index, 0, func);\n return this;\n },\n\n\n /**\n * !#en\n * Append a new pipe to the pipeline\n * \n * !#zh\n * 添加一个管道到管线中\n * \n * @method append\n * @param {Function} func - The new pipe\n * @param {Task} func.task - The task handled with pipeline will be transferred to this function\n * @param {Function} [func.callback] - Callback you need to invoke manually when this pipe is finished. if the pipeline is synchronous, callback is unnecessary.\n * @return {Pipeline} pipeline\n * \n * @example\n * var pipeline = new Pipeline('test', []);\n * pipeline.append((task, done) => {\n * // do something\n * done();\n * });\n * \n * @typescript\n * append(func: (task: Task, callback?: (err: Error) => void) => void): Pipeline\n */\n append (func) {\n if (typeof func !== 'function') {\n return;\n }\n \n this.pipes.push(func);\n return this;\n },\n\n /**\n * !#en\n * Remove pipe which at specific point\n * \n * !#zh\n * 移除特定位置的管道\n * \n * @method remove\n * @param {number} index - The specific point\n * @return {Pipeline} pipeline\n * \n * @example\n * var pipeline = new Pipeline('test', (task, done) => {\n * // do something\n * done(); \n * });\n * pipeline.remove(0);\n * \n * @typescript\n * remove(index: number): Pipeline\n */\n remove (index) {\n if (typeof index !== 'number') {\n return;\n }\n \n this.pipes.splice(index, 1);\n return this;\n },\n\n /**\n * !#en\n * Execute task synchronously\n * \n * !#zh\n * 同步执行任务\n * \n * @method sync\n * @param {Task} task - The task will be executed\n * @returns {*} result\n * \n * @example\n * var pipeline = new Pipeline('sync', [(task) => {\n * let input = task.input;\n * task.output = doSomething(task.input);\n * }]);\n * \n * var task = new Task({input: 'test'});\n * console.log(pipeline.sync(task));\n * \n * @typescript\n * sync(task: Task): any \n */\n sync (task) {\n var pipes = this.pipes;\n if (!(task instanceof Task) || pipes.length === 0) return;\n if (task.output != null) {\n task.input = task.output;\n task.output = null;\n }\n task._isFinish = false;\n for (var i = 0, l = pipes.length; i < l;) {\n var pipe = pipes[i];\n var result = pipe(task);\n if (result) {\n task._isFinish = true;\n return result;\n }\n i++;\n if (i !== l) {\n task.input = task.output;\n task.output = null;\n }\n }\n task._isFinish = true;\n return task.output;\n },\n\n /**\n * !#en\n * Execute task asynchronously\n * \n * !#zh\n * 异步执行任务\n * \n * @method async\n * @param {Task} task - The task will be executed\n * \n * @example\n * var pipeline = new Pipeline('sync', [(task, done) => {\n * let input = task.input;\n * task.output = doSomething(task.input);\n * done();\n * }]);\n * var task = new Task({input: 'test', onComplete: (err, result) => console.log(result)});\n * pipeline.async(task);\n * \n * @typescript\n * async(task: Task): void\n */\n async (task) {\n var pipes = this.pipes;\n if (!(task instanceof Task) || pipes.length === 0) return;\n if (task.output != null) {\n task.input = task.output;\n task.output = null;\n }\n task._isFinish = false;\n this._flow(0, task);\n },\n\n _flow (index, task) {\n var self = this;\n var pipe = this.pipes[index];\n pipe(task, function (result) {\n if (result) {\n task._isFinish = true;\n task.onComplete && task.onComplete(result);\n }\n else {\n index++;\n if (index < self.pipes.length) {\n // move output to input\n task.input = task.output;\n task.output = null;\n self._flow(index, task);\n }\n else {\n task._isFinish = true;\n task.onComplete && task.onComplete(result, task.output);\n }\n }\n });\n }\n};\n\nmodule.exports = Pipeline;\n","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst Task = require('./task');\nconst { transformPipeline, RequestType } = require('./shared');\n\nfunction preprocess (task, done) {\n var options = task.options, subOptions = Object.create(null), leftOptions = Object.create(null);\n\n for (var op in options) {\n switch (op) {\n // can't set these attributes in options\n case RequestType.PATH:\n case RequestType.UUID:\n case RequestType.DIR:\n case RequestType.SCENE:\n case RequestType.URL : break;\n // only need these attributes to transform url\n case '__requestType__':\n case '__isNative__':\n case 'ext' :\n case 'type':\n case '__nativeName__':\n case 'audioLoadMode':\n case 'bundle':\n subOptions[op] = options[op];\n break;\n // other settings, left to next pipe\n case '__exclude__':\n case '__outputAsArray__':\n leftOptions[op] = options[op];\n break;\n default: \n subOptions[op] = options[op];\n leftOptions[op] = options[op];\n break;\n }\n }\n task.options = leftOptions;\n\n // transform url\n let subTask = Task.create({input: task.input, options: subOptions});\n var err = null;\n try {\n task.output = task.source = transformPipeline.sync(subTask);\n }\n catch (e) {\n err = e;\n for (var i = 0, l = subTask.output.length; i < l; i++) {\n subTask.output[i].recycle();\n }\n }\n subTask.recycle();\n done(err);\n}\n\nmodule.exports = preprocess;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst dependUtil = require('./depend-util');\nconst Cache = require('./cache');\nrequire('../assets/CCAsset');\nconst { assets } = require('./shared');\nconst { callInNextTick } = require('../platform/utils');\n\nfunction visitAsset (asset, deps) {\n // Skip assets generated programmatically or by user (e.g. label texture)\n if (!asset._uuid) {\n return;\n }\n deps.push(asset._uuid);\n}\n\nfunction visitComponent (comp, deps) {\n var props = Object.getOwnPropertyNames(comp);\n for (let i = 0; i < props.length; i++) {\n var propName = props[i];\n if (propName === 'node' || propName === '__eventTargets') continue;\n var value = comp[propName];\n if (typeof value === 'object' && value) {\n if (Array.isArray(value)) {\n for (let j = 0; j < value.length; j++) {\n let val = value[j];\n if (val instanceof cc.Asset) {\n visitAsset(val, deps);\n }\n }\n }\n else if (!value.constructor || value.constructor === Object) {\n let keys = Object.getOwnPropertyNames(value);\n for (let j = 0; j < keys.length; j++) {\n let val = value[keys[j]];\n if (val instanceof cc.Asset) {\n visitAsset(val, deps);\n }\n }\n }\n else if (value instanceof cc.Asset) {\n visitAsset(value, deps);\n }\n }\n }\n}\n\nlet _temp = [];\n\nfunction visitNode (node, deps) {\n for (let i = 0; i < node._components.length; i++) {\n visitComponent(node._components[i], deps);\n }\n for (let i = 0; i < node._children.length; i++) {\n visitNode(node._children[i], deps);\n }\n}\n\nfunction descendOpRef (asset, refs, exclude, op) {\n exclude.push(asset._uuid);\n var depends = dependUtil.getDeps(asset._uuid);\n for (let i = 0, l = depends.length; i < l; i++) {\n var dependAsset = assets.get(depends[i]);\n if (dependAsset) {\n let uuid = dependAsset._uuid;\n if (!(uuid in refs)) { \n refs[uuid] = dependAsset.refCount + op;\n }\n else {\n refs[uuid] += op;\n }\n if (exclude.includes(uuid)) continue; \n descendOpRef(dependAsset, refs, exclude, op);\n }\n }\n}\n\nfunction checkCircularReference (asset) {\n // check circular reference\n var refs = Object.create(null);\n refs[asset._uuid] = asset.refCount;\n descendOpRef(asset, refs, _temp, -1);\n _temp.length = 0;\n if (refs[asset._uuid] !== 0) return refs[asset._uuid];\n\n for (let uuid in refs) {\n if (refs[uuid] !== 0) {\n descendOpRef(assets.get(uuid), refs, _temp, 1);\n }\n }\n _temp.length = 0;\n\n return refs[asset._uuid];\n}\n\nvar _persistNodeDeps = new Cache();\nvar _toDelete = new Cache();\nvar eventListener = false;\n\nfunction freeAssets () {\n eventListener = false;\n _toDelete.forEach(function (asset) {\n releaseManager._free(asset);\n });\n _toDelete.clear();\n}\n\nvar releaseManager = {\n init () {\n _persistNodeDeps.clear();\n _toDelete.clear();\n },\n\n _addPersistNodeRef (node) {\n var deps = [];\n visitNode(node, deps);\n for (let i = 0, l = deps.length; i < l; i++) {\n var dependAsset = assets.get(deps[i]);\n if (dependAsset) {\n dependAsset.addRef();\n }\n }\n _persistNodeDeps.add(node.uuid, deps);\n },\n\n _removePersistNodeRef (node) {\n if (_persistNodeDeps.has(node.uuid)) {\n var deps = _persistNodeDeps.get(node.uuid);\n for (let i = 0, l = deps.length; i < l; i++) {\n var dependAsset = assets.get(deps[i]);\n if (dependAsset) {\n dependAsset.decRef();\n }\n }\n _persistNodeDeps.remove(node.uuid);\n }\n },\n\n // do auto release\n _autoRelease (oldScene, newScene, persistNodes) { \n\n if (oldScene) {\n var childs = dependUtil.getDeps(oldScene._id);\n for (let i = 0, l = childs.length; i < l; i++) {\n let asset = assets.get(childs[i]);\n asset && asset.decRef(CC_TEST || oldScene.autoReleaseAssets);\n }\n var dependencies = dependUtil._depends.get(oldScene._id);\n if (dependencies && dependencies.persistDeps) {\n var persistDeps = dependencies.persistDeps;\n for (let i = 0, l = persistDeps.length; i < l; i++) {\n let asset = assets.get(persistDeps[i]);\n asset && asset.decRef(CC_TEST || oldScene.autoReleaseAssets);\n }\n }\n oldScene._id !== newScene._id && dependUtil.remove(oldScene._id);\n }\n\n var sceneDeps = dependUtil._depends.get(newScene._id);\n sceneDeps && (sceneDeps.persistDeps = []);\n // transfer refs from persist nodes to new scene\n for (let key in persistNodes) {\n var node = persistNodes[key];\n var deps = _persistNodeDeps.get(node.uuid);\n for (let i = 0, l = deps.length; i < l; i++) {\n var dependAsset = assets.get(deps[i]);\n if (dependAsset) {\n dependAsset.addRef();\n }\n }\n if (sceneDeps) {\n sceneDeps.persistDeps.push.apply(sceneDeps.persistDeps, deps);\n }\n }\n },\n\n _free (asset, force) {\n _toDelete.remove(asset._uuid);\n\n if (!cc.isValid(asset, true)) return;\n\n if (!force) {\n if (asset.refCount > 0) {\n if (checkCircularReference(asset) > 0) return; \n }\n }\n \n // remove from cache\n assets.remove(asset._uuid);\n var depends = dependUtil.getDeps(asset._uuid);\n for (let i = 0, l = depends.length; i < l; i++) {\n var dependAsset = assets.get(depends[i]);\n if (dependAsset) {\n dependAsset.decRef(false);\n releaseManager._free(dependAsset, false);\n }\n }\n asset.destroy();\n dependUtil.remove(asset._uuid);\n },\n\n tryRelease (asset, force) {\n if (!(asset instanceof cc.Asset)) return;\n if (force) {\n releaseManager._free(asset, force);\n }\n else {\n _toDelete.add(asset._uuid, asset);\n if (!eventListener) {\n eventListener = true;\n callInNextTick(freeAssets);\n }\n }\n }\n};\n\nmodule.exports = releaseManager;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc.AssetManager\n */\n\nvar MAX_DEAD_NUM = 500;\nvar _deadPool = [];\n\n/**\n * !#en\n * A collection of information about a request\n * \n * !#zh\n * 请求的相关信息集合\n * \n * @class RequestItem\n */\nfunction RequestItem () {\n\n this._id = '';\n\n /**\n * !#en \n * The uuid of request\n * \n * !#zh \n * 请求资源的uuid\n * \n * @property uuid\n * @type {String}\n */\n this.uuid = '';\n\n /**\n * !#en \n * The final url of request\n * \n * !#zh\n * 请求的最终url\n * \n * @property url\n * @type {String}\n */\n this.url = '';\n\n /**\n * !#en\n * The extension name of asset\n * \n * !#zh\n * 资源的扩展名\n * \n * @property ext\n * @type {String}\n */\n this.ext = '.json';\n\n /**\n * !#en\n * The content of asset\n * \n * !#zh\n * 资源的内容\n * \n * @property content\n * @type {*}\n */\n this.content = null;\n\n /**\n * !#en\n * The file of asset\n * \n * !#zh\n * 资源的文件\n * \n * @property file\n * @type {*}\n */\n this.file = null;\n\n /**\n * !#en\n * The information of asset\n * \n * !#zh\n * 资源的相关信息\n * \n * @property info\n * @type {Object}\n */\n this.info = null;\n\n this.config = null;\n\n /**\n * !#en\n * Whether or not it is native asset\n * \n * !#zh\n * 资源是否是原生资源\n * \n * @property isNative\n * @type {Boolean}\n */\n this.isNative = false;\n\n /**\n * !#en\n * Custom options\n * \n * !#zh\n * 自定义参数\n * \n * @property options\n * @type {Object}\n */\n this.options = Object.create(null);\n}\n\nRequestItem.prototype = {\n\n /**\n * !#en\n * Create a request item\n * \n * !#zh\n * 创建一个 request item\n * \n * @method constructor\n * \n * @typescript\n * constructor()\n */\n constructor: RequestItem,\n\n /**\n * !#en\n * The id of request, combined from uuid and isNative\n * \n * !#zh\n * 请求的 id, 由 uuid 和 isNative 组合而成\n * \n * @property id\n * @type {String}\n */\n get id () {\n if (!this._id) {\n this._id = this.uuid + '@' + (this.isNative ? 'native' : 'import');\n }\n return this._id;\n },\n\n /**\n * !#en\n * Recycle this for reuse\n * \n * !#zh\n * 回收 requestItem 用于复用\n * \n * @method recycle\n * \n * @typescript\n * recycle(): void\n */\n recycle () {\n if (_deadPool.length === MAX_DEAD_NUM) return;\n this._id = '';\n this.uuid = '';\n this.url = '';\n this.ext = '.json';\n this.content = null;\n this.file = null;\n this.info = null;\n this.config = null;\n this.isNative = false;\n this.options = Object.create(null);\n _deadPool.push(this);\n }\n};\n\n/**\n * !#en\n * Create a new request item from pool\n * \n * !#zh\n * 从对象池中创建 requestItem\n * \n * @static\n * @method create\n * @returns {RequestItem} requestItem\n * \n * @typescript \n * create(): RequestItem\n */\nRequestItem.create = function () {\n var out = null;\n if (_deadPool.length !== 0) {\n out = _deadPool.pop();\n }\n else {\n out = new RequestItem();\n }\n\n return out;\n};\n\nmodule.exports = RequestItem;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst Cache = require('./cache');\nconst Pipeline = require('./pipeline');\n\nvar assets = new Cache();\nvar files = new Cache();\nvar parsed = new Cache();\nvar bundles = new Cache();\nvar pipeline = new Pipeline('normal load', []);\nvar fetchPipeline = new Pipeline('fetch', []);\nvar transformPipeline = new Pipeline('transform url', []);\n\n/**\n * @module cc.AssetManager\n */\n\nvar RequestType = {\n \n UUID: 'uuid',\n\n PATH: 'path',\n\n DIR: 'dir',\n\n URL: 'url',\n\n SCENE: 'scene'\n};\n\n/**\n * !#en\n * The builtin bundles \n * \n * !#zh\n * 内置 bundle\n * \n * @enum BuiltinBundleName\n */\nvar BuiltinBundleName = {\n /**\n * !#en\n * The builtin bundle corresponds to 'assets/resources'.\n * \n * !#zh\n * 内置 bundle, 对应 'assets/resources' 目录\n * \n * @property RESOURCES\n * @readonly\n * @type {String}\n */\n RESOURCES: 'resources',\n\n /**\n * !#en\n * The builtin bundle corresponds to 'internal/resources'.\n * \n * !#zh\n * 内置 bundle, 对应 'internal/resources' 目录\n * \n * @property INTERNAL\n * @readonly\n * @type {String}\n */\n INTERNAL: 'internal',\n\n /**\n * !#en\n * The builtin bundle\n * \n * !#zh\n * 内置 bundle\n * \n * @property MAIN\n * @readonly\n * @type {String}\n */\n MAIN: 'main',\n\n /**\n * !#en\n * The builtin bundle, exists when Start Scene asset bundle is checked on the project building panel\n * \n * !#zh\n * 内置 bundle, 如果构建面板开启了首场景分包,则会有 START_SCENE bundle\n * \n * @property START_SCENE\n * @readonly\n * @type {String}\n */\n START_SCENE: 'start-scene',\n};\n\nmodule.exports = { assets, files, parsed, pipeline, fetchPipeline, transformPipeline, RequestType, bundles, BuiltinBundleName };","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\n/**\n * @module cc.AssetManager\n */\n\nvar _taskId = 0;\nvar MAX_DEAD_NUM = 500;\nvar _deadPool = [];\n\n/**\n * !#en\n * Task is used to run in the pipeline for some effect\n * \n * !#zh\n * 任务用于在管线中运行以达成某种效果\n * \n * @class Task\n */\nfunction Task (options) {\n /**\n * !#en\n * The id of task\n * \n * !#zh\n * 任务id\n * \n * @property id\n * @type {Number}\n */\n this.id = _taskId++;\n\n this._isFinish = true;\n\n /**\n * !#en\n * The callback when task is completed\n * \n * !#zh\n * 完成回调\n * \n * @property onComplete\n * @type {Function}\n */\n this.onComplete = null;\n\n /**\n * !#en\n * The callback of progression\n * \n * !#zh\n * 进度回调\n * \n * @property onProgress\n * @type {Function}\n */\n this.onProgress = null;\n\n /**\n * !#en\n * The callback when something goes wrong\n * \n * !#zh\n * 错误回调\n * \n * @property onError\n * @type {Function}\n */\n this.onError = null;\n\n /**\n * !#en\n * The source of task\n * \n * !#zh\n * 任务的源\n * \n * @property source\n * @type {*}\n */\n this.source = null;\n\n /**\n * !#en\n * The output of task\n * \n * !#zh\n * 任务的输出\n * \n * @property output\n * @type {*}\n */\n this.output = null\n\n /**\n * !#en\n * The input of task\n * \n * !#zh\n * 任务的输入\n * \n * @property input\n * @type {*}\n */\n this.input = null;\n\n /**\n * !#en\n * The progression of task\n * \n * !#zh\n * 任务的进度\n * \n * @property progress\n * @type {*}\n */\n this.progress = null;\n\n /**\n * !#en\n * Custom options\n * \n * !#zh\n * 自定义参数\n * \n * @property options\n * @type {Object}\n */\n this.options = null;\n this.set(options);\n};\n\nTask.prototype = {\n \n /**\n * !#en\n * Create a new Task\n * \n * !#zh\n * 创建一个任务\n * \n * @method constructor\n * @param {Object} [options] - Some optional paramters\n * @param {Function} [options.onComplete] - Callback when the task is completed, if the pipeline is synchronous, onComplete is unnecessary.\n * @param {Function} [options.onProgress] - Continuously callback when the task is runing, if the pipeline is synchronous, onProgress is unnecessary.\n * @param {Function} [options.onError] - Callback when something goes wrong, if the pipeline is synchronous, onError is unnecessary.\n * @param {*} options.input - Something will be handled with pipeline\n * @param {*} [options.progress] - Progress information, you may need to assign it manually when multiple pipeline share one progress\n * @param {Object} [options.options] - Custom parameters\n * \n * @typescript\n * constructor(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record})\n */\n constructor: Task,\n\n /**\n * !#en\n * Set paramters of this task\n * \n * !#zh\n * 设置任务的参数\n * \n * @method set\n * @param {Object} [options] - Some optional paramters\n * @param {Function} [options.onComplete] - Callback when the task complete, if the pipeline is synchronous, onComplete is unnecessary.\n * @param {Function} [options.onProgress] - Continuously callback when the task is runing, if the pipeline is synchronous, onProgress is unnecessary.\n * @param {Function} [options.onError] - Callback when something goes wrong, if the pipeline is synchronous, onError is unnecessary.\n * @param {*} options.input - Something will be handled with pipeline\n * @param {*} [options.progress] - Progress information, you may need to assign it manually when multiple pipeline share one progress\n * @param {Object} [options.options] - Custom parameters\n * \n * @example \n * var task = new Task();\n * task.set({input: ['test'], onComplete: (err, result) => console.log(err), onProgress: (finish, total) => console.log(finish / total)});\n * \n * @typescript\n * set(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record}): void\n */\n set (options) {\n options = options || Object.create(null);\n this.onComplete = options.onComplete;\n this.onProgress = options.onProgress;\n this.onError = options.onError;\n this.source = this.input = options.input;\n this.output = null;\n this.progress = options.progress;\n // custom data\n this.options = options.options || Object.create(null);\n },\n\n /**\n * !#en\n * Dispatch event\n * \n * !#zh\n * 发布事件\n * \n * @method dispatch\n * @param {string} event - The event name\n * @param {*} param1 - Parameter 1\n * @param {*} param2 - Parameter 2\n * @param {*} param3 - Parameter 3\n * @param {*} param4 - Parameter 4\n * \n * @example\n * var task = Task.create();\n * Task.onComplete = (msg) => console.log(msg);\n * Task.dispatch('complete', 'hello world');\n * \n * @typescript\n * dispatch(event: string, param1?: any, param2?: any, param3?: any, param4?: any): void\n */\n dispatch (event, param1, param2, param3, param4) {\n switch (event) {\n case 'complete' :\n this.onComplete && this.onComplete(param1, param2, param3, param4);\n break; \n case 'progress': \n this.onProgress && this.onProgress(param1, param2, param3, param4);\n break;\n case 'error': \n this.onError && this.onError(param1, param2, param3, param4);\n break;\n default:\n var str = 'on' + event[0].toUpperCase() + event.substr(1);\n if (typeof this[str] === 'function') {\n this[str](param1, param2, param3, param4);\n }\n break;\n }\n },\n\n /**\n * !#en\n * Recycle this for reuse\n * \n * !#zh\n * 回收 task 用于复用\n * \n * @method recycle\n * \n * @typescript\n * recycle(): void\n */\n recycle () {\n if (_deadPool.length === MAX_DEAD_NUM) return;\n this.onComplete = null;\n this.onProgress = null;\n this.onError = null;\n this.source = this.output = this.input = null;\n this.progress = null;\n this.options = null;\n _deadPool.push(this);\n },\n\n /**\n * !#en\n * Whether or not this task is completed\n * \n * !#zh\n * 此任务是否已经完成\n * \n * @property isFinish\n * @type {Boolean}\n */\n get isFinish () {\n return this._isFinish;\n }\n};\n\n/**\n * !#en\n * Create a new task from pool\n * \n * !#zh\n * 从对象池中创建 task\n * \n * @static\n * @method create\n * @param {Object} [options] - Some optional paramters\n * @param {Function} [options.onComplete] - Callback when the task complete, if the pipeline is synchronous, onComplete is unnecessary.\n * @param {Function} [options.onProgress] - Continuously callback when the task is runing, if the pipeline is synchronous, onProgress is unnecessary.\n * @param {Function} [options.onError] - Callback when something goes wrong, if the pipeline is synchronous, onError is unnecessary.\n * @param {*} options.input - Something will be handled with pipeline\n * @param {*} [options.progress] - Progress information, you may need to assign it manually when multiple pipeline share one progress\n * @param {Object} [options.options] - Custom parameters\n * @returns {Task} task\n * \n * @typescript \n * create(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record}): Task\n */\nTask.create = function (options) {\n var out = null;\n if (_deadPool.length !== 0) {\n out = _deadPool.pop();\n out.set(options);\n }\n else {\n out = new Task(options);\n }\n\n return out;\n};\n\nmodule.exports = Task;","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst { decodeUuid } = require('./helper');\nconst RequestItem = require('./request-item');\nconst { RequestType, bundles } = require('./shared');\n\nfunction parse (task) {\n\n var input = task.input, options = task.options;\n input = Array.isArray(input) ? input : [ input ];\n\n task.output = [];\n for (var i = 0; i < input.length; i ++ ) {\n var item = input[i];\n var out = RequestItem.create();\n if (typeof item === 'string') {\n item = Object.create(null);\n item[options.__requestType__ || RequestType.UUID] = input[i];\n }\n if (typeof item === 'object') {\n // local options will overlap glabal options\n cc.js.addon(item, options);\n if (item.preset) {\n cc.js.addon(item, cc.assetManager.presets[item.preset]);\n }\n for (var key in item) {\n switch (key) {\n case RequestType.UUID: \n var uuid = out.uuid = decodeUuid(item.uuid);\n if (bundles.has(item.bundle)) {\n var config = bundles.get(item.bundle)._config;\n var info = config.getAssetInfo(uuid);\n if (info && info.redirect) {\n if (!bundles.has(info.redirect)) throw new Error(`Please load bundle ${info.redirect} first`);\n config = bundles.get(info.redirect)._config;\n info = config.getAssetInfo(uuid);\n }\n out.config = config;\n out.info = info;\n }\n out.ext = item.ext || '.json';\n break;\n case '__requestType__':\n case 'ext': \n case 'bundle':\n case 'preset':\n case 'type': break;\n case RequestType.DIR: \n if (bundles.has(item.bundle)) {\n var infos = [];\n bundles.get(item.bundle)._config.getDirWithPath(item.dir, item.type, infos);\n for (let i = 0, l = infos.length; i < l; i++) {\n var info = infos[i];\n input.push({uuid: info.uuid, __isNative__: false, ext: '.json', bundle: item.bundle});\n }\n }\n out.recycle();\n out = null;\n break;\n case RequestType.PATH: \n if (bundles.has(item.bundle)) {\n var config = bundles.get(item.bundle)._config;\n var info = config.getInfoWithPath(item.path, item.type);\n \n if (info && info.redirect) {\n if (!bundles.has(info.redirect)) throw new Error(`you need to load bundle ${info.redirect} first`);\n config = bundles.get(info.redirect)._config;\n info = config.getAssetInfo(info.uuid);\n }\n\n if (!info) {\n out.recycle();\n throw new Error(`Bundle ${item.bundle} doesn't contain ${item.path}`);\n }\n out.config = config; \n out.uuid = info.uuid;\n out.info = info;\n }\n out.ext = item.ext || '.json';\n break;\n case RequestType.SCENE:\n if (bundles.has(item.bundle)) {\n var config = bundles.get(item.bundle)._config;\n var info = config.getSceneInfo(item.scene);\n \n if (info && info.redirect) {\n if (!bundles.has(info.redirect)) throw new Error(`you need to load bundle ${info.redirect} first`);\n config = bundles.get(info.redirect)._config;\n info = config.getAssetInfo(info.uuid);\n }\n if (!info) {\n out.recycle();\n throw new Error(`Bundle ${config.name} doesn't contain scene ${item.scene}`);\n }\n out.config = config; \n out.uuid = info.uuid;\n out.info = info;\n }\n break;\n case '__isNative__': \n out.isNative = item.__isNative__;\n break;\n case RequestType.URL: \n out.url = item.url;\n out.uuid = item.uuid || item.url;\n out.ext = item.ext || cc.path.extname(item.url);\n out.isNative = item.__isNative__ !== undefined ? item.__isNative__ : true;\n break;\n default: out.options[key] = item[key];\n }\n if (!out) break;\n }\n }\n if (!out) continue;\n task.output.push(out);\n if (!out.uuid && !out.url) throw new Error('Can not parse this input:' + JSON.stringify(item));\n }\n return null;\n}\n\nfunction combine (task) {\n var input = task.output = task.input;\n for (var i = 0; i < input.length; i++) {\n var item = input[i];\n if (item.url) continue;\n\n var url = '', base = '';\n var config = item.config;\n if (item.isNative) {\n base = (config && config.nativeBase) ? (config.base + config.nativeBase) : cc.assetManager.generalNativeBase;\n } \n else {\n base = (config && config.importBase) ? (config.base + config.importBase) : cc.assetManager.generalImportBase;\n }\n\n let uuid = item.uuid;\n \n var ver = '';\n if (item.info) {\n if (item.isNative) {\n ver = item.info.nativeVer ? ('.' + item.info.nativeVer) : '';\n }\n else {\n ver = item.info.ver ? ('.' + item.info.ver) : '';\n }\n }\n\n // ugly hack, WeChat does not support loading font likes 'myfont.dw213.ttf'. So append hash to directory\n if (item.ext === '.ttf') {\n url = `${base}/${uuid.slice(0, 2)}/${uuid}${ver}/${item.options.__nativeName__}`;\n }\n else {\n url = `${base}/${uuid.slice(0, 2)}/${uuid}${ver}${item.ext}`;\n }\n \n item.url = url;\n }\n return null;\n}\n\nmodule.exports = { parse, combine };","/****************************************************************************\n Copyright (c) 2019 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\nconst dependUtil = require('./depend-util');\nconst { isScene, decodeUuid } = require('./helper');\nconst { assets } = require('./shared');\nconst { callInNextTick } = require('../platform/utils');\nconst MissingObjectReporter = CC_EDITOR && Editor.require('app://editor/page/scene-utils/missing-object-reporter');\nrequire('../assets/CCAsset');\n\nvar utils = {\n\n processOptions (options) {\n if (CC_EDITOR) return;\n var uuids = options.uuids;\n var paths = options.paths;\n var types = options.types;\n var bundles = options.deps;\n var realEntries = options.paths = Object.create(null);\n\n if (options.debug === false) {\n for (let i = 0, l = uuids.length; i < l; i++) {\n uuids[i] = decodeUuid(uuids[i]);\n }\n\n for (let id in paths) {\n let entry = paths[id];\n let type = entry[1];\n entry[1] = types[type];\n }\n }\n else {\n var out = Object.create(null);\n for (let i = 0, l = uuids.length; i < l; i++) {\n let uuid = uuids[i];\n uuids[i] = out[uuid] = decodeUuid(uuid);\n }\n uuids = out;\n }\n\n for (let id in paths) {\n let entry = paths[id];\n realEntries[uuids[id]] = entry;\n }\n\n var scenes = options.scenes;\n for (let name in scenes) {\n let uuid = scenes[name];\n scenes[name] = uuids[uuid];\n }\n\n var packs = options.packs;\n for (let packId in packs) {\n let packedIds = packs[packId];\n for (let j = 0; j < packedIds.length; ++j) {\n packedIds[j] = uuids[packedIds[j]];\n }\n }\n\n var versions = options.versions;\n if (versions) {\n for (let folder in versions) {\n var entries = versions[folder];\n for (let i = 0; i < entries.length; i += 2) {\n let uuid = entries[i];\n entries[i] = uuids[uuid] || uuid;\n }\n }\n }\n\n var redirect = options.redirect;\n if (redirect) {\n for (let i = 0; i < redirect.length; i += 2) {\n redirect[i] = uuids[redirect[i]];\n redirect[i + 1] = bundles[redirect[i + 1]];\n }\n }\n\n },\n\n clear (task, clearRef) {\n for (var i = 0, l = task.input.length; i < l; i++) {\n var item = task.input[i];\n if (clearRef) {\n !item.isNative && item.content && item.content.decRef && item.content.decRef(false);\n }\n item.recycle();\n }\n task.input = null;\n },\n\n urlAppendTimestamp (url) {\n if (cc.assetManager.downloader.appendTimeStamp && typeof url === 'string') {\n if (/\\?/.test(url))\n return url + '&_t=' + (new Date() - 0);\n else\n return url + '?_t=' + (new Date() - 0);\n }\n return url;\n },\n\n retry (process, times, wait, onComplete, index) {\n index = index || 0;\n process(index, function (err, result) {\n index++;\n if (!err || index > times) {\n onComplete && onComplete(err, result);\n }\n else {\n setTimeout(function () {\n utils.retry(process, times, wait, onComplete, index);\n }, wait);\n }\n });\n },\n\n getDepends (uuid, data, exclude, depends, preload, asyncLoadAssets, config) {\n try {\n var info = dependUtil.parse(uuid, data);\n var includeNative = true;\n if (data instanceof cc.Asset && (!data.__nativeDepend__ || data._nativeAsset)) includeNative = false; \n if (!preload) {\n asyncLoadAssets = !CC_EDITOR && (!!data.asyncLoadAssets || (asyncLoadAssets && !info.preventDeferredLoadDependents));\n for (let i = 0, l = info.deps.length; i < l; i++) {\n let dep = info.deps[i];\n if (!(dep in exclude)) {\n exclude[dep] = true;\n depends.push({uuid: dep, __asyncLoadAssets__: asyncLoadAssets, bundle: config && config.name});\n }\n }\n\n if (includeNative && !asyncLoadAssets && !info.preventPreloadNativeObject && info.nativeDep) {\n config && (info.nativeDep.bundle = config.name);\n depends.push(Object.assign({}, info.nativeDep));\n }\n \n } else {\n for (let i = 0, l = info.deps.length; i < l; i++) {\n let dep = info.deps[i];\n if (!(dep in exclude)) {\n exclude[dep] = true;\n depends.push({uuid: dep, bundle: config && config.name});\n }\n }\n if (includeNative && info.nativeDep) {\n config && (info.nativeDep.bundle = config.name);\n depends.push(Object.assign({}, info.nativeDep));\n }\n }\n }\n catch (e) {\n cc.error(e.message, e.stack);\n }\n },\n \n cache (id, asset, cacheAsset) {\n if (!asset) return;\n var _isScene = isScene(asset);\n if (!_isScene && cacheAsset) {\n assets.add(id, asset);\n }\n if (_isScene) {\n if (CC_EDITOR && !asset.scene) {\n Editor.error('Sorry, the scene data of \"%s\" is corrupted!', asset._uuid);\n }\n }\n },\n\n setProperties (uuid, asset, assetsMap) {\n\n var missingAsset = false;\n let depends = asset.__depends__;\n if (depends) {\n var missingAssetReporter = null;\n for (var i = 0, l = depends.length; i < l; i++) {\n var depend = depends[i];\n var dependAsset = assetsMap[depend.uuid + '@import'];\n if (!dependAsset) {\n if (CC_EDITOR) {\n !missingAssetReporter && (missingAssetReporter = new MissingObjectReporter(asset));\n missingAssetReporter.stashByOwner(depend.owner, depend.prop, Editor.serialize.asAsset(depend.uuid));\n }\n else {\n cc.error('The asset ' + depend.uuid + ' is missing!');\n }\n missingAsset = true;\n }\n else {\n depend.owner[depend.prop] = dependAsset.addRef();\n }\n }\n\n missingAssetReporter && missingAssetReporter.reportByOwner();\n asset.__depends__ = undefined;\n }\n \n if (asset.__nativeDepend__) {\n if (!asset._nativeAsset) {\n if (assetsMap[uuid + '@native']) {\n asset._nativeAsset = assetsMap[uuid + '@native'];\n }\n else {\n missingAsset = true;\n if (CC_EDITOR) {\n console.error(`the native asset of ${uuid} is missing!`);\n }\n }\n }\n asset.__nativeDepend__ = undefined;\n }\n return missingAsset;\n },\n\n gatherAsset (task) {\n let source = task.source;\n if (!task.options.__outputAsArray__ && source.length === 1) {\n task.output = source[0].content;\n }\n else {\n let output = task.output = [];\n for (var i = 0, l = source.length; i < l; i++) {\n output.push(source[i].content);\n }\n }\n },\n\n forEach (array, process, onComplete) {\n var count = 0;\n var errs = [];\n if (array.length === 0) onComplete && onComplete(errs);\n for (var i = 0, l = array.length; i < l; i++) {\n process(array[i], function (err) {\n if (err) {\n errs.push(err);\n }\n count ++;\n if (count === l) {\n onComplete && onComplete(errs);\n }\n });\n }\n },\n\n parseParameters (options, onProgress, onComplete) {\n if (onComplete === undefined) {\n var isCallback = typeof options === 'function';\n if (onProgress) {\n onComplete = onProgress;\n if (!isCallback) {\n onProgress = null;\n }\n }\n else if (onProgress === undefined && isCallback) {\n onComplete = options;\n options = null;\n onProgress = null;\n }\n if (onProgress !== undefined && isCallback) {\n onProgress = options;\n options = null;\n }\n }\n options = options || Object.create(null);\n return { options, onProgress, onComplete };\n },\n\n parseLoadResArgs (type, onProgress, onComplete) {\n if (onComplete === undefined) {\n var isValidType = cc.js.isChildClassOf(type, cc.Asset);\n if (onProgress) {\n onComplete = onProgress;\n if (isValidType) {\n onProgress = null;\n }\n }\n else if (onProgress === undefined && !isValidType) {\n onComplete = type;\n onProgress = null;\n type = null;\n }\n if (onProgress !== undefined && !isValidType) {\n onProgress = type;\n type = null;\n }\n }\n return { type, onProgress, onComplete };\n },\n\n checkCircleReference (owner, uuid, map, checked) {\n if (!checked) { \n checked = Object.create(null);\n }\n let item = map[uuid];\n if (!item || checked[uuid]) {\n return false;\n }\n checked[uuid] = true;\n var result = false;\n var deps = dependUtil.getDeps(uuid);\n if (deps) {\n for (var i = 0, l = deps.length; i < l; i++) {\n var dep = deps[i];\n if (dep === owner || utils.checkCircleReference(owner, dep, map, checked)) {\n result = true;\n break;\n }\n }\n }\n return result;\n },\n\n asyncify (cb) {\n return function (p1, p2) {\n if (!cb) return;\n let refs = [];\n if (Array.isArray(p2)) {\n p2.forEach(x => x instanceof cc.Asset && refs.push(x.addRef()));\n } else {\n p2 instanceof cc.Asset && refs.push(p2.addRef());\n }\n callInNextTick(() => {\n refs.forEach(x => x.decRef(false));\n cb(p1, p2);\n }); \n }\n }\n};\n\nmodule.exports = utils;","/****************************************************************************\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nvar CCObject = require('../platform/CCObject');\n\n/**\n * !#en\n * Base class for handling assets used in Creator. \n *\n * You may want to override: \n * - createNode \n * - getset functions of _nativeAsset \n * - cc.Object._serialize \n * - cc.Object._deserialize \n * !#zh\n * Creator 中的资源基类。 \n *\n * 您可能需要重写: \n * - createNode \n * - _nativeAsset 的 getset 方法 \n * - cc.Object._serialize \n * - cc.Object._deserialize \n *\n * @class Asset\n * @extends Object\n */\ncc.Asset = cc.Class({\n name: 'cc.Asset', extends: CCObject,\n\n ctor () {\n /**\n * @property {String} _uuid\n * @private\n */\n // enumerable is false by default, to avoid uuid being assigned to empty string during destroy\n Object.defineProperty(this, '_uuid', {\n value: '',\n writable: true,\n });\n /**\n * !#en\n * Whether the asset is loaded or not.\n * !#zh\n * 该资源是否已经成功加载。\n *\n * @property loaded\n * @type {Boolean}\n */\n this.loaded = true;\n this._nativeUrl = '';\n this._ref = 0;\n },\n\n properties: {\n /**\n * !#en\n * Returns the url of this asset's native object, if none it will returns an empty string.\n * !#zh\n * 返回该资源对应的目标平台资源的 URL,如果没有将返回一个空字符串。\n * @property nativeUrl\n * @type {String}\n * @readOnly\n */\n nativeUrl: {\n get: function () {\n if (!this._nativeUrl) {\n if (this._native) {\n var name = this._native;\n if (name.charCodeAt(0) === 47) { // '/'\n // remove library tag\n // not imported in library, just created on-the-fly\n return name.slice(1);\n }\n if (name.charCodeAt(0) === 46) { // '.'\n // imported in dir where json exist\n this._nativeUrl = cc.assetManager.utils.getUrlWithUuid(this._uuid, {nativeExt: name, isNative: true });\n }\n else {\n // imported in an independent dir\n this._nativeUrl = cc.assetManager.utils.getUrlWithUuid(this._uuid, {__nativeName__: name, nativeExt: cc.path.extname(name), isNative: true});\n }\n }\n }\n return this._nativeUrl;\n },\n visible: false\n },\n\n /**\n * !#en\n * The number of reference\n * \n * !#zh\n * 引用的数量\n * \n * @property refCount\n * @type {Number}\n */\n refCount: {\n get () {\n return this._ref;\n }\n },\n\n /**\n * !#en\n * Serializable url for native asset.\n * !#zh\n * 保存原生资源的 URL。\n * @property {String} _native\n * @default undefined\n * @private\n */\n _native: \"\",\n\n /**\n * !#en\n * The underlying native asset of this asset if one is available.\n * This property can be used to access additional details or functionality releated to the asset.\n * This property will be initialized by the loader if `_native` is available.\n * !#zh\n * 此资源依赖的底层原生资源(如果有的话)。\n * 此属性可用于访问与资源相关的其他详细信息或功能。\n * 如果 `_native` 可用,则此属性将由加载器初始化。\n * @property {Object} _nativeAsset\n * @default null\n * @private\n */\n _nativeAsset: {\n get () {\n return this._$nativeAsset;\n },\n set (obj) {\n this._$nativeAsset = obj;\n }\n },\n\n _nativeDep: {\n get () {\n if (this._native) {\n return {__isNative__: true, uuid: this._uuid, ext: this._native};\n }\n }\n }\n },\n\n statics: {\n /**\n * !#en\n * Provide this method at the request of AssetDB.\n * !#zh\n * 应 AssetDB 要求提供这个方法。\n *\n * @method deserialize\n * @param {String} data\n * @return {Asset}\n * @static\n * @private\n */\n deserialize: CC_EDITOR && function (data) {\n return cc.deserialize(data);\n },\n\n /**\n * !#en Indicates whether its dependent raw assets can support deferred load if the owner scene (or prefab) is marked as `asyncLoadAssets`.\n * !#zh 当场景或 Prefab 被标记为 `asyncLoadAssets`,禁止延迟加载该资源所依赖的其它原始资源。\n *\n * @property {Boolean} preventDeferredLoadDependents\n * @default false\n * @static\n */\n preventDeferredLoadDependents: false,\n\n /**\n * !#en Indicates whether its native object should be preloaded from native url.\n * !#zh 禁止预加载原生对象。\n *\n * @property {Boolean} preventPreloadNativeObject\n * @default false\n * @static\n */\n preventPreloadNativeObject: false\n\n },\n\n /**\n * !#en\n * Returns the asset's url.\n\n * The `Asset` object overrides the `toString()` method of the `Object` object.\n * For `Asset` objects, the `toString()` method returns a string representation of the object.\n * JavaScript calls the `toString()` method automatically when an asset is to be represented as a text value or when a texture is referred to in a string concatenation.\n * !#zh\n * 返回资源的 URL。\n * \n * Asset 对象将会重写 Object 对象的 `toString()` 方法。\n * 对于 Asset 对象,`toString()` 方法返回该对象的字符串表示形式。\n * 当资源要表示为文本值时或在字符串连接时引用时,JavaScript 会自动调用 `toString()` 方法。\n * @method toString\n * @return {String}\n */\n toString () {\n return this.nativeUrl;\n },\n\n /**\n * !#en\n * Provide this method at the request of AssetDB.\n * !#zh\n * 应 AssetDB 要求提供这个方法。\n *\n * @method serialize\n * @return {String}\n * @private\n */\n serialize: CC_EDITOR && function () {\n return Editor.serialize(this);\n },\n\n /**\n * !#en\n * Create a new node using this asset in the scene. \n * If this type of asset dont have its corresponding node type, this method should be null.\n * !#zh\n * 使用该资源在场景中创建一个新节点。 \n * 如果这类资源没有相应的节点类型,该方法应该是空的。\n *\n * @method createNode\n * @param {Function} callback\n * @param {String} callback.error - null or the error info\n * @param {Object} callback.node - the created node or null\n */\n createNode: null,\n\n /**\n * !#en\n * Set native file name for this asset.\n * !#zh\n * 为此资源设置原生文件名。\n * \n * @seealso nativeUrl\n *\n * @method _setRawAsset\n * @param {String} filename\n * @param {Boolean} [inLibrary=true]\n * @private\n */\n _setRawAsset: function (filename, inLibrary) {\n if (inLibrary !== false) {\n this._native = filename || undefined;\n }\n else {\n this._native = '/' + filename; // simply use '/' to tag location where is not in the library\n }\n },\n\n /**\n * !#en\n * Add references of asset\n * \n * !#zh\n * 增加资源的引用\n * \n * @method addRef\n * @return {Asset} itself\n * \n * @typescript\n * addRef(): cc.Asset\n */\n addRef () {\n this._ref++;\n return this;\n },\n\n /**\n * !#en\n * Reduce references of asset and it will be auto released when refCount equals 0.\n * \n * !#zh\n * 减少资源的引用并尝试进行自动释放。\n * \n * @method decRef\n * @return {Asset} itself\n * \n * @typescript\n * decRef(): cc.Asset\n */\n decRef (autoRelease) {\n this._ref > 0 && this._ref--;\n autoRelease !== false && cc.assetManager._releaseManager.tryRelease(this);\n return this;\n }\n});\n\nmodule.exports = cc.Asset;\n","/****************************************************************************\n Copyright (c) 2013-2016 Chukong Technologies Inc.\n Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.\n\n https://www.cocos.com/\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated engine source code (the \"Software\"), a limited,\n worldwide, royalty-free, non-assignable, revocable and non-exclusive license\n to use Cocos Creator solely to develop games on your target platforms. You shall\n not use Cocos Creator software for developing other software or tools that's\n used for developing games. You are not granted to publish, distribute,\n sublicense, and/or sell copies of Cocos Creator.\n\n The software or tools in this License Agreement are licensed, not sold.\n Xiamen Yaji Software Co., Ltd. reserves all rights not expressly granted to you.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n ****************************************************************************/\n\nconst Asset = require('./CCAsset');\nconst EventTarget = require('../event/event-target');\n\nvar LoadMode = cc.Enum({\n WEB_AUDIO: 0,\n DOM_AUDIO: 1,\n});\n\n/**\n * !#en Class for audio data handling.\n * !#zh 音频资源类。\n * @class AudioClip\n * @extends Asset\n * @uses EventTarget\n */\nvar AudioClip = cc.Class({\n name: 'cc.AudioClip',\n extends: Asset,\n mixins: [EventTarget],\n\n ctor () {\n this._loading = false;\n this.loaded = false;\n\n // the web audio buffer or