@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 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(): Promise<void>;
482
+ frozen(): void;
483
+ private _doRelease;
482
484
  /**
483
485
  * 从冻结状态恢复
484
486
  */
485
- release(): Promise<void>;
487
+ release(): void;
486
488
  private _doDestroy;
487
489
  private waitLoadEnd;
488
490
  /**