Skip to content

Commit fe8a45d

Browse files
LinYunMopandamicro
authored andcommitted
ccclass update & compress-texture add (cocos-creator#138)
1 parent 711290e commit fe8a45d

17 files changed

+102
-59
lines changed

en/_layouts/website/header.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{% block book_header %}
33
<div class="cocos-navbar navbar-collapse" id="navbar" role="navigation">
44
<ul class="nav navbar-nav">
5-
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.com/images/logo.png" height="30" /></a></li>
5+
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.org/images/logo.png" height="30" /></a></li>
66
<li><a href="#" class="btn autohide" onclick="toggleLanguage()">中文</a></li>
77
{% for item in book.products %}
88
{% if item.links %}
@@ -13,11 +13,11 @@
1313
<li><a href="{{entry.link}}" class="btn">{{entry.name}}</a></li>
1414
{% endfor %}
1515
</ul>
16-
</li>
16+
</li>
1717
{% else %}
1818
<li><a href="{{item.link}}" class="btn autohide"><i class="fa fa-book"></i>{{item.name}}</a></li>
1919
{% endif %}
20-
{% endfor %}
20+
{% endfor %}
2121
{% for item in book.version %}
2222
{% if item.links %}
2323
<li class="version-link">
@@ -27,11 +27,11 @@
2727
<li><a href="{{entry.link}}" class="btn">Version: <span style="font-weight:bold">{{entry.name}}</span></a></li>
2828
{% endfor %}
2929
</ul>
30-
</li>
30+
</li>
3131
{% else %}
3232
<li><a href="{{item.link}}" class="btn">{{item.name}}</a></li>
3333
{% endif %}
34-
{% endfor %}
34+
{% endfor %}
3535
</ul>
3636
</div>
3737
<div class="book-header" role="navigation">

en/_layouts/website/page.html

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
{% extends template.self %}
1+
{% extends template.self %}
22
{% block book_sidebar %}
33
<nav role="navigation" class="autoshow">
44
<ul class="summary">
5-
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.com/images/logo.png" height="30" /></a></li>
5+
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.org/images/logo.png" height="30" /></a></li>
66
<li><a href="#" class="btn" onclick="toggleLanguage()">中文</a></li>
77
{% for item in book.version %}
88
{% if item.links %}
@@ -13,11 +13,11 @@
1313
<li><a href="{{entry.link}}" class="btn">Version: <span style="font-weight:bold; display: inline">{{entry.name}}</span></a></li>
1414
{% endfor %}
1515
</ul>
16-
</li>
16+
</li>
1717
{% else %}
1818
<li><a href="{{item.link}}" class="btn"></i>{{item.name}}</a></li>
1919
{% endif %}
20-
{% endfor %}
20+
{% endfor %}
2121
{% for item in book.products %}
2222
{% if item.links %}
2323
<li>
@@ -27,11 +27,11 @@
2727
<li><a href="{{entry.link}}" class="btn">{{entry.name}}</a></li>
2828
{% endfor %}
2929
</ul>
30-
</li>
30+
</li>
3131
{% else %}
3232
<li><a href="{{item.link}}" class="btn"><i class="fa fa-book"></i>{{item.name}}</a></li>
3333
{% endif %}
34-
{% endfor %}
34+
{% endfor %}
3535
</ul>
3636
</nav>
3737
{{ super() }}
@@ -47,7 +47,7 @@
4747
} else if (path.indexOf('/en') !== -1) {
4848
path = path.replace(/\/en[\/$\s]/i, '/zh/');
4949
}
50-
// console.log('after: ' + path);
50+
// console.log('after: ' + path);
5151
location.assign(path);
5252
}
5353
</script>

zh/SUMMARY.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,10 @@
120120

121121
- [脚本指南及事件机制](scripting/index.md)
122122
- [脚本创建](scripting/setup.md)
123-
- [语言支持](scripting/language-support.md)
124123
- [脚本基础](scripting/basic.md)
124+
- [语言支持](scripting/language-support.md)
125125
- [ccclass](scripting/ccclass.md)
126+
- [属性参数参考](scripting/reference/attributes.md)
126127
- [访问节点和其他组件](scripting/access-node-component.md)
127128
- [常用节点和组件接口](scripting/basic-node-api.md)
128129
- [生命周期回调](scripting/life-cycle-callbacks.md)
@@ -132,8 +133,6 @@
132133
- [使用计时器](scripting/scheduler.md)
133134
- [脚本执行顺序](scripting/execution-order.md)
134135
- [组件](scripting/component.md)
135-
- [属性参数参考](scripting/reference/attributes.md)
136-
- [CCClass 进阶参考](scripting/ccclass.md)
137136
- [事件机制](engine/event/index.md)
138137
- [插件脚本](scripting/plugin-scripts.md)
139138
- [添加 Log](scripting/log.md)
@@ -149,6 +148,7 @@
149148
- [精灵帧资源](asset/sprite-frame.md)
150149
- [立方体贴图资源](concepts/scene/skybox.md#cubemap)
151150
- [图像资源的自动裁剪](ui-system/components/engine/trim.md)
151+
- [压缩纹理](asset/compress-texture.md)
152152
- [图集资源](asset/atlas.md)
153153
- [渲染纹理](asset/render-texture.md)
154154
- [预制资源](asset/prefab.md)

zh/_layouts/website/header.html

+6-6
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
{% block book_header %}
33
<div class="cocos-navbar navbar-collapse" id="navbar" role="navigation">
44
<ul class="nav navbar-nav">
5-
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.com/images/logo.png" height="30" /></a></li>
6-
<li><a href="#" class="btn autohide" onclick="toggleLanguage()">English</a></li>
5+
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.org/images/logo.png" height="30" /></a></li>
6+
<li><a href="#" class="btn autohide" onclick="toggleLanguage()">English</a></li>
77
{% for item in book.products %}
88
{% if item.links %}
99
<li>
@@ -13,11 +13,11 @@
1313
<li><a href="{{entry.link}}" class="btn">{{entry.name}}</a></li>
1414
{% endfor %}
1515
</ul>
16-
</li>
16+
</li>
1717
{% else %}
1818
<li><a href="{{item.link}}" class="btn autohide"><i class="fa fa-book"></i>{{item.name}}</a></li>
1919
{% endif %}
20-
{% endfor %}
20+
{% endfor %}
2121
{% for item in book.version %}
2222
{% if item.links %}
2323
<li class="version-link">
@@ -27,11 +27,11 @@
2727
<li><a href="{{entry.link}}" class="btn">Version: <span style="font-weight:bold">{{entry.name}}</span></a></li>
2828
{% endfor %}
2929
</ul>
30-
</li>
30+
</li>
3131
{% else %}
3232
<li><a href="{{item.link}}" class="btn">{{item.name}}</a></li>
3333
{% endif %}
34-
{% endfor %}
34+
{% endfor %}
3535
</ul>
3636
</div>
3737
<div class="book-header" role="navigation">

zh/_layouts/website/page.html

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
{% extends template.self %}
1+
{% extends template.self %}
22
{% block book_sidebar %}
33
<nav role="navigation" class="autoshow">
44
<ul class="summary">
5-
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.com/images/logo.png" height="30" /></a></li>
6-
<li><a href="#" class="btn" onclick="toggleLanguage()">English</a></li>
5+
<li><a href="https://cocos.com" class="btn" target="_blank"><img src="https://forum.cocos.org/images/logo.png" height="30" /></a></li>
6+
<li><a href="#" class="btn" onclick="toggleLanguage()">English</a></li>
77
{% for item in book.version %}
88
{% if item.links %}
99
<li class="version-link">
@@ -13,11 +13,11 @@
1313
<li><a href="{{entry.link}}" class="btn">Version: <span style="font-weight:bold; display: inline">{{entry.name}}</span></a></li>
1414
{% endfor %}
1515
</ul>
16-
</li>
16+
</li>
1717
{% else %}
1818
<li><a href="{{item.link}}" class="btn"></i>{{item.name}}</a></li>
1919
{% endif %}
20-
{% endfor %}
20+
{% endfor %}
2121
{% for item in book.products %}
2222
{% if item.links %}
2323
<li>
@@ -27,11 +27,11 @@
2727
<li><a href="{{entry.link}}" class="btn">{{entry.name}}</a></li>
2828
{% endfor %}
2929
</ul>
30-
</li>
30+
</li>
3131
{% else %}
3232
<li><a href="{{item.link}}" class="btn"><i class="fa fa-book"></i>{{item.name}}</a></li>
3333
{% endif %}
34-
{% endfor %}
34+
{% endfor %}
3535
</ul>
3636
</nav>
3737
{{ super() }}
@@ -47,7 +47,7 @@
4747
} else if (path.indexOf('/en') !== -1) {
4848
path = path.replace(/\/en[\/$\s]/i, '/zh/');
4949
}
50-
// console.log('after: ' + path);
50+
// console.log('after: ' + path);
5151
location.assign(path);
5252
}
5353
</script>

zh/asset/compress-texture.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# 压缩纹理
2+
3+
Cocos Creator 3D 可以直接在编辑器中设置纹理需要的压缩方式,然后在项目发布时自动对纹理进行压缩。针对 Web 平台,支持同时导出多种图片格式,引擎将根据不同的浏览器自动下载合适的格式。
4+
5+
## 配置压缩纹理
6+
7+
Cocos Creator 3D 支持导入多种格式的图片(具体见下表),但是在实际游戏运行中,我们不建议使用原始图片作为资源来加载。比如在手机平台上可能只需要原图 80% 或者更少的画质,又或者是没有使用到透明通道的 .png 可以将其转换成 .jpg,这样可以减少很大一部分图片的存储空间。
8+
9+
图片格式 | Android | iOS | 微信小游戏 | Web
10+
------------ | ------------- | --------- | -------- | --------
11+
PNG | 支持 | 支持 | 支持 | 支持
12+
JPG | 支持 | 支持 | 支持 | 支持
13+
WEBP | Android 4.0 以上原生支持<br>其他版本可以使用 [解析库](https://github.com/alexey-pelykh/webp-android-backport) | 可以使用 [解析库](https://github.com/carsonmcdonald/WebP-iOS-example) | 不支持 | [部分支持](https://caniuse.com/#feat=webp)
14+
PVR | 不支持 | 支持 | 支持 iOS 设备 | 支持 iOS 设备
15+
ETC1 | 支持 | 不支持 | 支持 Android 设备 | 支持 Android 设备
16+
ETC2 | 只支持生成资源,引擎部分需要参考 pr 自己实现:<https://github.com/cocos-creator/cocos2d-x-lite/pull/1685>
17+
18+
默认情况下 Cocos Creator 3D 在构建的时候输出的是原始图片,如果在构建时需要对某一张图片进行压缩,可以在 **资源管理器** 中选中这张图片,然后在 **属性管理器** 中对图片的纹理格式进行编辑。
19+
20+
![compress-texture](compress-texture/compress-texture.png)
21+
22+
## 压缩纹理详解
23+
24+
如果想要使用压缩纹理,在构建项目的时候需要打开压缩纹理选项使项目使用压缩纹理功能:
25+
26+
![compress-texture-build](compress-texture/compress-build.png)
27+
28+
Cocos Creator 3D 在构建图片的时候,会查找当前图片是否进行了压缩纹理的配置,如果没有,则继续查找是否做了默认(Default)的配置,如果没有,则最后按原图输出。
29+
30+
如果查找到了压缩纹理的配置,那么会按照找到的配置对图片进行纹理压缩。在一个平台中可以指定多种纹理格式,每种纹理格式在构建时都会根据原图压缩生成一张指定格式的图片。
31+
32+
这些生成的图片不会都被加载到引擎中,引擎会根据 cc.macro.SUPPORT_TEXTURE_FORMATS 中的配置来选择加载合适格式的图片。`cc.macro.SUPPORT_TEXTURE_FORMATS` 列举了当前平台支持的所有图片格式,引擎加载图片时会从生成的图片中找到在这个列表中 **优先级靠前**(即排列靠前)的格式来加载。
33+
34+
用户可以通过修改 `cc.macro.SUPPORT_TEXTURE_FORMATS` 来自定义平台的图片资源支持情况以及加载顺序的优先级。
35+
36+
## 示例
37+
38+
![1](compress-texture/compress-1.jpg)
39+
![2](compress-texture/compress-2.jpg)
40+
41+
在上面的示例图中,默认平台配置了 png 格式的压缩纹理,web 平台配置了 pvr、png 格式的压缩纹理,而其他平台没有添加任何配置。那么在构建 web 平台的时候这张图片就会被压缩成 pvr,png 两种格式,在构建其他平台的时候则只会生成 png 格式的图片。
42+
43+
而默认设置的 `cc.macro.SUPPORT_TEXTURE_FORMATS` 中只有 ios 平台上才添加了 .pvr 的支持,所以只有在 ios 的浏览器上才会加载 pvr 格式的图片,其他平台上的浏览器则加载 png 格式的图片。
7.67 KB
Loading
9.83 KB
Loading
26.7 KB
Loading
21.3 KB
Loading

zh/engine/animation/easing-method-example.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
const image = tr.appendChild(document.createElement('td')).
3838
appendChild(document.createElement('img'));
39-
image.src = "https://forum.cocos.com/images/logo.png";
39+
image.src = "https://forum.cocos.org/images/logo.png";
4040

4141
const slider = tr.appendChild(document.createElement('td')).
4242
appendChild(document.createElement('input'));
@@ -57,7 +57,7 @@
5757
let duration = 3000;
5858
setInterval(() => {
5959
const timePast = Date.now() - firstTime;
60-
const ratio = (timePast % duration) / duration;
60+
const ratio = (timePast % duration) / duration;
6161
for (const showcase of showcases) {
6262
const mappedRatio = showcase.fx(ratio);
6363
showcase.image.style.opacity = (1.0- mappedRatio);

zh/scripting/ccclass.md

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
## cc 类
33

4-
将装饰器 [ccclass]() 应用在类上时,此类称为 cc 类。
4+
将装饰器 [ccclass](#ccclass) 应用在类上时,此类称为 cc 类。
55
cc 类注入了额外的信息以控制 Cocos Creator 3D 对该类对象的序列化、编辑器对该类对象的展示等。
66

77
### ccclass
@@ -23,7 +23,7 @@ cc 类的各种特性是通过 `ccclass(name)` 的 cc 类选项参数来指定
2323

2424
## cc 属性
2525

26-
当装饰器 [property]() 应用在 cc 类的属性或访问器上时,此属性称为 cc 属性。
26+
当装饰器 [property](#property) 应用在 cc 类的属性或访问器上时,此属性称为 cc 属性。
2727
与 cc 类类似,cc 属性注入了额外的信息以控制 Cocos Creator 3D 对该属性的序列化、编辑器对该属性的展示等。
2828

2929
### property
@@ -61,8 +61,9 @@ cc 属性的各种特性是通过 `property()` 的 cc 属性选项参数来指
6161
- 否则,属性的 cc 类型是**未定义**的。
6262

6363
关于 cc 类型如何影响 cc 属性以及对未定义 cc 类型的属性的处理,见:
64-
- [编辑器和属性类型]()
65-
- [序列化]()
64+
65+
- [属性类型](###属性参数)
66+
- [序列化参数](####serializable参数)
6667

6768
下列代码演示了不同 cc 类型 的 cc 属性的声明:
6869

@@ -112,7 +113,7 @@ CCClass 的构造函数使用 `constructor` 定义,为了保证反序列化能
112113

113114
```typescript
114115
class Sub extends Base {
115-
116+
116117
}
117118
let sub = new Sub();
118119
console.log(sub instanceof Sub); //true
@@ -171,20 +172,20 @@ obj.print();
171172
class Sprite{
172173
static count=0;
173174
static getBounds(){
174-
175+
175176
}
176177
}
177178
```
178179

179180
静态成员会被子类继承,继承时会将父类的静态变量**浅拷贝**给子类,因此:
180181

181182
```typescript
182-
class Object{
183+
class Object{
183184
static count= 11;
184185
static range: { w: 100, h: 100 }
185186
}
186187
class Sprite extends Object{
187-
188+
188189
}
189190
console.log(Sprite.count); // 结果是 11,因为 count 继承自 Object 类
190191

@@ -278,7 +279,7 @@ class Sprite {
278279

279280
### 属性参数
280281

281-
#### <a name="default"></a>default 参数
282+
#### default参数
282283

283284
`default` 用于声明属性的默认值,声明了默认值的属性会被 CCClass 实现为成员变量。默认值只有在**第一次创建**对象的时候才会用到,也就是说修改默认值时,并不会改变已添加到场景里的组件的当前值。
284285

@@ -295,7 +296,7 @@ class Sprite {
295296
```
296297
4. 空数组 `[]` 或空对象 `{}`
297298

298-
#### <a name="visible"></a>visible 参数
299+
#### visible参数
299300

300301
默认情况下,是否显示在 **属性检查器** 取决于属性名是否以下划线 `_` 开头。如果以下划线开头,则默认不显示在 **属性检查器**,否则默认显示。
301302

@@ -313,7 +314,7 @@ class Sprite {
313314
private num = 0;
314315
```
315316

316-
#### <a name="serializable"></a>serializable 参数
317+
#### serializable参数
317318

318319
指定了 `default` 默认值的属性默认情况下都会被序列化,序列化后就会将编辑器中设置好的值保存到场景等资源文件中,并且在加载场景时自动还原之前设置好的值。如果不想序列化,可以设置`serializable: false`
319320

@@ -322,7 +323,7 @@ class Sprite {
322323
private num = 0;
323324
```
324325

325-
#### <a name="type"></a>type 参数
326+
#### type参数
326327

327328
`default` 不能提供足够详细的类型信息时,为了能在 **属性检查器** 显示正确的输入控件,就要用 `type` 显式声明具体的类型:
328329

@@ -357,7 +358,7 @@ class Sprite {
357358
}
358359
```
359360

360-
#### <a name="override"></a>override 参数
361+
#### override参数
361362

362363
所有属性都将被子类继承,如果子类要覆盖父类同名属性,需要显式设置 override 参数,否则会有重名警告:
363364

@@ -372,7 +373,7 @@ private get name(){
372373
}
373374
```
374375

375-
更多参数内容请查阅 [属性参数](attributes.md)。
376+
更多参数内容请查阅 [属性参数](./reference/attributes.md)。
376377

377378
## GetSet 方法
378379

@@ -462,7 +463,6 @@ set(value){
462463
}
463464
464465
```
465-
466+
466467
> 如果没有和 get 一起定义,则 set 自身不能附带任何参数。<br>
467468
>get 一样,设定了 set 以后,这个属性就不能被序列化,也不能指定默认值。
468-

0 commit comments

Comments
 (0)