@netless/slide 0.4.5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/lib/FrozenTaskManager.d.ts +14 -0
- package/lib/FrozenTaskManager.js +48 -0
- package/lib/Slide.d.ts +6 -4
- package/lib/Slide.js +24 -24
- package/package.json +9 -5
package/README.md
CHANGED
|
@@ -577,3 +577,13 @@ const slide = new Slide({
|
|
|
577
577
|
|
|
578
578
|
#### 0.4.5
|
|
579
579
|
* 新增 getSizeAsync api
|
|
580
|
+
|
|
581
|
+
#### 0.4.6
|
|
582
|
+
* 预加载过程不会触发 renderError 事件
|
|
583
|
+
* 修复路径动画重置位置错误的问题
|
|
584
|
+
|
|
585
|
+
#### 0.4.7
|
|
586
|
+
* syncReceive 引起的切页不发 syncDispatch 事件
|
|
587
|
+
|
|
588
|
+
#### 0.5.0
|
|
589
|
+
* 修改 Slide.frozen 和 Slide.release 为同步方法
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface FrozenTask {
|
|
2
|
+
type: "frozen" | "release";
|
|
3
|
+
status: "running" | "wait";
|
|
4
|
+
fn: () => Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export declare class FrozenTaskManager {
|
|
7
|
+
private tasks;
|
|
8
|
+
private isDestroy;
|
|
9
|
+
constructor();
|
|
10
|
+
private schedule;
|
|
11
|
+
private getRunningTask;
|
|
12
|
+
addTask(type: "frozen" | "release", fn: () => Promise<void>): void;
|
|
13
|
+
destroy(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var FrozenTaskManager = /** @class */ (function () {
|
|
2
|
+
function FrozenTaskManager() {
|
|
3
|
+
var _this = this;
|
|
4
|
+
this.tasks = [];
|
|
5
|
+
this.isDestroy = false;
|
|
6
|
+
this.schedule = function () {
|
|
7
|
+
var task = _this.tasks.shift();
|
|
8
|
+
if (task && !_this.isDestroy) {
|
|
9
|
+
task.status = "running";
|
|
10
|
+
task.fn.apply(null).then(function () {
|
|
11
|
+
window.requestAnimationFrame(_this.schedule);
|
|
12
|
+
}).catch(function () {
|
|
13
|
+
window.requestAnimationFrame(_this.schedule);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
window.requestAnimationFrame(_this.schedule);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
this.schedule();
|
|
21
|
+
}
|
|
22
|
+
FrozenTaskManager.prototype.getRunningTask = function () {
|
|
23
|
+
if (this.tasks[0] && this.tasks[0].status === "running") {
|
|
24
|
+
return this.tasks[0];
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
};
|
|
28
|
+
FrozenTaskManager.prototype.addTask = function (type, fn) {
|
|
29
|
+
var task = {
|
|
30
|
+
type: type,
|
|
31
|
+
status: "wait",
|
|
32
|
+
fn: fn,
|
|
33
|
+
};
|
|
34
|
+
var runningTask = this.getRunningTask();
|
|
35
|
+
if (runningTask && type === runningTask.type) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.tasks = this.tasks.filter(function (v) { return v.type !== type; });
|
|
40
|
+
this.tasks.push(task);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
FrozenTaskManager.prototype.destroy = function () {
|
|
44
|
+
this.isDestroy = true;
|
|
45
|
+
};
|
|
46
|
+
return FrozenTaskManager;
|
|
47
|
+
}());
|
|
48
|
+
export { FrozenTaskManager };
|
package/lib/Slide.d.ts
CHANGED
|
@@ -285,6 +285,7 @@ export declare class Slide extends Slide_base {
|
|
|
285
285
|
private __slideState;
|
|
286
286
|
private userInputTime;
|
|
287
287
|
private isSyncingSlideState;
|
|
288
|
+
private frozenTaskManager;
|
|
288
289
|
private randomId;
|
|
289
290
|
private resize;
|
|
290
291
|
private isAnimating;
|
|
@@ -293,6 +294,7 @@ export declare class Slide extends Slide_base {
|
|
|
293
294
|
private interactive;
|
|
294
295
|
private anchor;
|
|
295
296
|
private player?;
|
|
297
|
+
private renderingIndex;
|
|
296
298
|
private frameWidth;
|
|
297
299
|
private frameHeight;
|
|
298
300
|
private frame;
|
|
@@ -308,8 +310,6 @@ export declare class Slide extends Slide_base {
|
|
|
308
310
|
private isInitResized;
|
|
309
311
|
private cacheImage;
|
|
310
312
|
private config;
|
|
311
|
-
private isFrowning;
|
|
312
|
-
private isReleasing;
|
|
313
313
|
private isTouchStart;
|
|
314
314
|
private touchStartId;
|
|
315
315
|
private taskId;
|
|
@@ -475,14 +475,16 @@ export declare class Slide extends Slide_base {
|
|
|
475
475
|
* 恢复播放状态
|
|
476
476
|
*/
|
|
477
477
|
resume(): void;
|
|
478
|
+
private _doFrozen;
|
|
478
479
|
/**
|
|
479
480
|
* 进入冻结状态, 将 ppt 画面缓存为一张图片, 并释放 webgl 上下文
|
|
480
481
|
*/
|
|
481
|
-
frozen():
|
|
482
|
+
frozen(): void;
|
|
483
|
+
private _doRelease;
|
|
482
484
|
/**
|
|
483
485
|
* 从冻结状态恢复
|
|
484
486
|
*/
|
|
485
|
-
release():
|
|
487
|
+
release(): void;
|
|
486
488
|
private _doDestroy;
|
|
487
489
|
private waitLoadEnd;
|
|
488
490
|
/**
|