Skip to content

Commit 28d0d83

Browse files
committed
Removed deprecated files and documentation.
1 parent 0150dd6 commit 28d0d83

19 files changed

Lines changed: 128 additions & 445 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ implementation of a video player with CommentCoreLibrary.
5555

5656
不管你在开发基于Javascript的Web服务,还是其他的需要弹幕播放功能服务,都可以参考弹幕核心
5757
的实现代码。我们以简单的方法构建了 (1) 时间轴管理 (2) 基础空间规划 (3) 弹幕过滤 (4)
58-
高级弹幕效果 (5) 基础格式解析 (6) 代码弹幕支持
58+
高级弹幕效果 (5) 基础格式解析 (6) 代码弹幕支持
5959

6060
## 测试
6161
你可以在[这里](http://jabbany.github.com/CommentCoreLibrary/demo) 访问到测试页面。

build/CommentCoreLibrary.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,13 @@ var CoreComment = (function () {
365365
if (this._y !== undefined) {
366366
this.y = this._y;
367367
}
368-
if (this._alpha !== 1) {
368+
if (this._alpha !== 1 || this.parent.options.opacity < 1) {
369369
this.alpha = this._alpha;
370370
}
371+
if (this.motion.length > 0) {
372+
// Force a position update before doing anything
373+
this.animate();
374+
}
371375
};
372376

373377
Object.defineProperty(CoreComment.prototype, "x", {
@@ -579,6 +583,9 @@ var CoreComment = (function () {
579583
*/
580584
CoreComment.prototype.time = function (time) {
581585
this.ttl -= time;
586+
if (this.ttl < 0) {
587+
this.ttl = 0;
588+
}
582589
if (this.movable) {
583590
this.update();
584591
}

build/CommentCoreLibrary.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/CommentObject.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
### LINEAR <Func> [静态]
1515
LINEAR 为线形拟合函数,提供用于默认补间动画的拟合。
1616

17-
### mode <Num>
17+
### mode <Num> = 1
1818
Danmaku Mode: mode 表示弹幕的类型,参考 [弹幕类型 (Comment Types)](CommentTypes.md)
1919

2020
### stime <Num> = 0
@@ -23,7 +23,7 @@ Start Time: stime 表示弹幕相对于视频位置的开始时间(ms),`0`
2323
### text <String>
2424
Text: text 表示弹幕的文字内容。注意:在创造弹幕对象后,对 text 的更改将无意义。
2525

26-
### ttl <Num>
26+
### ttl <Num> = 4000
2727
Time To Live: ttl 表示弹幕剩余的生存时间(ms)(注意:在css模式下该子段可能不准确)
2828

2929
### dur <Num> = 4000
@@ -103,7 +103,7 @@ DOM Correspondance: 对应的渲染元素,根据不同情况是不一样的。
103103
用于进行打扫。
104104

105105
### update()
106-
根据 ttl 和 dur 计算弹幕位置,并渲染
106+
根据 ttl 和 dur 计算弹幕位置,并渲染弹幕。不同的弹幕可以覆盖 update 函数来绘制 canvas 等。
107107

108108
### invalidate()
109109
无效化缓存的弹幕空间信息。下次读取 width, height, x, y, right, bottom 强制重新计算。

docs/Readme.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Readme 文档
2+
3+
CCL包括一套尽可能完备的文档来帮助二次开发。文档主要针对两个部分:各种东西都是什么,各种东西都应该
4+
怎么用。
5+
6+
### 部件参考(Individual Parts)
7+
8+
- [CommentManager 弹幕管理器](CommentManager.md)
9+
- [CommentObject 弹幕对象](CommentObject.md)
10+
11+
## 如何架设(How to Deploy)
12+
CommentCoreLibrary主要包括两个部分,CommentCore主体和KagerouEngine代码弹幕支持引擎。
13+
14+
CommentCore主体包括:
15+
- CommentManager 弹幕管理器(用于控制弹幕)
16+
- CommentSpaceAllocator 弹幕空间规划器(用于排版弹幕)
17+
- IComment:CoreComment/ScrollComment 弹幕对象(可以自己扩展实现更多弹幕类型)
18+
19+
KagerouEngine引擎包括:
20+
- Host (OOAPI) 接受与呈现端
21+
- Sandbox (OOAPI) 代码沙箱与BiliScript运行时
22+
23+
两个部分可以独立运行,也可以和体合作。 **对于仅需要普通的弹幕实现支持(包括高级定位弹幕),使用
24+
CommentCore 主体即可。** CommentCore主体可以进行:弹幕呈现和空间规划(滚动、逆向、顶部、底部、
25+
高级定位、高级移动),弹幕过滤和实时弹幕支持。
26+
27+
对于仅需要对代码沙箱支持的,可以直接使用 KagerouEngine。它对 CommentCore没有依赖。
28+
29+
对于希望进行完整还原的,可以参考合体配置方法。
30+
31+
### 架设 CommentCore 主体
32+
CommentCore主体分为两个重要部分:CSS和JS。在编译后,分别位于`build/style.css`
33+
`build/CommentCoreLibrary.js`。使用时必须保证引用了两个文件(或者在项目中已经合并入两个文件的
34+
代码),尤其要注意CSS不能没有。
35+
36+
### 架设 KagerouEngine 引擎
37+
KagerouEngine分为两个部分:JS Host和Worker Client。在编译后,分别位于
38+
`build/scripting/Host.js``build/scripting/Worker.js`。架设时,只需在外部引入
39+
`Host.js` 然后把 `Worker.js` 的位置,在初始化 `Host` 时传递进入即可。`scripting/` 目录的
40+
结构关系需要保护,以免Worker无法载入相应的需要的运行时库。
41+
42+
### 合体配置方法
43+
目前的合体方法是把 `CommentManager.scripting` 赋值成 Scripting Host生成的 Sandbox实例
44+
即可。未来会有专门的方法和事件供挂载。
45+
46+
## 发送弹幕(Sending Comments)
47+
发送弹幕需要后端服务器的支持,格式(传输格式)、模式(支持什么种类的弹幕)、弹幕参数(字体字号颜色等)
48+
等也根据不同的系统而需求不同。
49+
50+
在未来会有一个 Provider 类来用于规范化如何定义弹幕发送的方法,但是目前只要自己实现这些功能即可~
51+
往往是绑定一个发送按钮,根据一些GUI参数确定弹幕参数跟格式,最后用Ajax派发一个POST,在收到POST结果
52+
后如果成功则显示弹幕到现在的屏幕上,这样的流程。
53+
54+
## 实时弹幕支持(Live Comments)
55+
实时弹幕也需要后端服务器的支持,而且比发送弹幕要复杂一些。实时弹幕可以采取Polling(定时读取)或者
56+
Push Notify(监听等待)两个主动和被动模式实现。实时弹幕还有绝对实时和相对性时间轴更新两个时间模式。
57+
58+
- Polling
59+
Polling是指设计的弹幕播放器定时访问服务器,询问服务器在某个弹幕池内某段时间后新产生的弹幕,然后把它
60+
添加到播放列表或者呈现出来的一种简单的模式。优点是:仅仅基于HTTP,可以在各种服务器(VPS、云、
61+
共享主机)和语言(PHP,Python,Ruby,Nodejs)上实现。缺点是:需要反复联网,效率底下,对服务
62+
器压力大。
63+
64+
推荐用于实时性不强的系统。
65+
66+
- Push Notify
67+
Push Notify是指在客户端连接到服务器的一个端口,在有新的弹幕时,服务器主动发送弹幕信息,而客户
68+
端在收到信息后被动的呈现或者更新列表。优点:速度快,效率高,处理开销低。缺点:需要用Websockets
69+
或者Flash作为桥,要么兼容性略差一点(虽然几乎现代浏览器都支持Websockets 了),要么性能不好。
70+
71+
推荐用于非常实时的系统,如不可回看的直播间等。
72+
73+
时间轴模式也不一样
74+
75+
- 绝对实时
76+
每当收到实时弹幕就直接显示,不保存或者少量保存历史弹幕,不能自由的回看。占用内存小。
77+
78+
- 实时时间轴
79+
定期更新时间轴,把弹幕按顺序正确插入,保持弹幕时间轴新鲜度,可以自由更改播放时间。
80+

docs/data-formats/Readme.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Parsers 解析器
2+
Parsers是期间过渡的支持库,用于解析弹幕文件,产生符合格式的弹幕抽象对象传送给 CommentManager。
3+
在未来 Parsers 会被合并到 Providers(供应源)里面,而Providers则会兼顾接受弹幕并解析和发送
4+
弹幕的任务。
5+
6+
目前CCL默认的编译自带支持如下格式:
7+
- Bilibili Format
8+
- Acfun Format
9+
10+
## 兼容性 Compatibility
11+
12+
解析器是通过各种零散的网络资源和一定的反向工程完成的,我们并不能保证解析器的还原度有多高或者兼容性
13+
有多好。另外,有时弹幕文件本身会有语法错误等问题,而浏览器一向对格式要求的严谨,所以一些地方难免出
14+
现解析失败的情况。
15+
16+
使用者可以参考解析器,也欢迎提供新的改进。

docs/scripting-experimental/Runtime.md

Lines changed: 0 additions & 38 deletions
This file was deleted.

docs/scripting-experimental/TransmissionAPI.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

docs/scripting-experimental/dynamic_comment.md

Whitespace-only changes.

docs/scripting-experimental/globals.md

Lines changed: 0 additions & 64 deletions
This file was deleted.

0 commit comments

Comments
 (0)