lyb-pixi-js 1.1.17 → 1.1.18

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.
@@ -82,7 +82,7 @@ export class LibPixiScrollContainer extends LibPixiContainer {
82
82
  /** @description 拖动 */
83
83
  _onDragMove(event) {
84
84
  if (this._isDragging) {
85
- const position = event.data.getLocalPosition(this);
85
+ const position = event.getLocalPosition(this);
86
86
  const newPosition = position.y - this._startY;
87
87
  this._content.y = newPosition;
88
88
  }
package/README.md CHANGED
@@ -140,6 +140,8 @@ app.stage.addChild(box);
140
140
 
141
141
  \- [LibPixiTickerTimeout-Ticker 定时器](#LibPixiTickerTimeout-Ticker定时器)
142
142
 
143
+ \- [LibPixiSlideInput-滑块选择值](#LibPixiSlideInput-滑块选择值)
144
+
143
145
  ## Base-基础
144
146
 
145
147
  ### LibPixiText-文本
@@ -666,7 +668,7 @@ stopOutsideClick();
666
668
  const mask = libPixiOverflowHidden(container); //为容器创建并应用矩形蒙版
667
669
  ```
668
670
 
669
- ### LibPixiPromiseTickerTimeout-TickerPromise 定时器
671
+ ### LibPixiPromiseTickerTimeout-TickerPromise定时器
670
672
 
671
673
  > 基于 Ticker 和 Promise 的定时器
672
674
 
@@ -700,7 +702,7 @@ libPixiShadow(container, {
700
702
  });
701
703
  ```
702
704
 
703
- ### LibPixiTickerTimeout-Ticker 定时器
705
+ ### LibPixiTickerTimeout-Ticker定时器
704
706
 
705
707
  > 基于 Ticker 的定时器
706
708
 
@@ -712,3 +714,38 @@ const stopTimer = libPixiTickerTimeout(() => {
712
714
  //停止定时器
713
715
  stopTimer();
714
716
  ```
717
+
718
+ ### LibPixiSlideInput-滑块选择值
719
+
720
+ > 滑动选择器核心代码
721
+
722
+ ```ts
723
+ import { Application, Container } from "pixi.js";
724
+ import { LibPixiSlideInput } from "./LibPixiSlideInput";
725
+
726
+ // 初始化 PIXI 应用和容器
727
+ const app = new Application();
728
+ const clickArea = [new Container()]; // 点击范围
729
+ const sideArea = new Container(); // 滑动区域
730
+
731
+ // 创建 LibPixiSlideInput 实例
732
+ const slideInput = new LibPixiSlideInput({
733
+ app,
734
+ clickArea,
735
+ sideArea,
736
+ maxMoveDistance: 500,
737
+ onDown: () => {
738
+ console.log("按下事件触发");
739
+ },
740
+ onUp: () => {
741
+ console.log("抬起事件触发");
742
+ },
743
+ onChange: (x, value) => {
744
+ console.log(`当前滑动位置: ${x}, 进度: ${value}`);
745
+ },
746
+ });
747
+
748
+ // 设置进度为 50%
749
+ slideInput.setValue(0.5);
750
+ ```
751
+
@@ -0,0 +1,55 @@
1
+ import type { Application, Container } from "pixi.js";
2
+ export interface LibPixiSlideInputParams {
3
+ /** App */
4
+ app: Application;
5
+ /** 有效点击范围 */
6
+ clickArea: Container[];
7
+ /** 滑动区域 */
8
+ sideArea: Container;
9
+ /** 最大移动距离 */
10
+ maxMoveDistance: number;
11
+ /** 起点坐标 */
12
+ startX?: number;
13
+ /** 按下回调 */
14
+ onDown?: () => void;
15
+ /** 抬起回调 */
16
+ onUp?: () => void;
17
+ /** 拖动回调 */
18
+ onChange: (x: number, value: number) => void;
19
+ }
20
+ /** @description 滑动选择器核心代码
21
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSlideInput-滑动选择值
22
+ */
23
+ export declare class LibPixiSlideInput {
24
+ /** App */
25
+ private _app;
26
+ /** 滑动区域 */
27
+ private _sideArea;
28
+ /** 最大移动距离 */
29
+ private _maxMoveDistance;
30
+ /** 是否处于拖动中 */
31
+ private _isDragging;
32
+ /** 当前移动的位置 */
33
+ private _moveX;
34
+ /** 上次移动的位置 */
35
+ private _lastMoveX;
36
+ /** 当前进度 */
37
+ private _progress;
38
+ /** 按下回调 */
39
+ private _onDown?;
40
+ /** 抬起回调 */
41
+ private _onUp?;
42
+ /** 拖动回调 */
43
+ private _onChange;
44
+ constructor(params: LibPixiSlideInputParams);
45
+ /** @description 设置进度
46
+ * @param value 进度值,范围 0-1
47
+ */
48
+ setValue(value: number): void;
49
+ /** @description 按下触发 */
50
+ private _onDragStart;
51
+ /** @description 移动触发 */
52
+ private _onDragMove;
53
+ /** @description 抬起触发 */
54
+ private _onDragEnd;
55
+ }
@@ -0,0 +1,61 @@
1
+ import { libPixiEvent } from "./LibPixiEvent";
2
+ /** @description 滑动选择器核心代码
3
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSlideInput-滑动选择值
4
+ */
5
+ export class LibPixiSlideInput {
6
+ constructor(params) {
7
+ /** 是否处于拖动中 */
8
+ this._isDragging = false;
9
+ /** 当前移动的位置 */
10
+ this._moveX = 0;
11
+ /** 上次移动的位置 */
12
+ this._lastMoveX = 0;
13
+ /** 当前进度 */
14
+ this._progress = 0;
15
+ const { app, clickArea, maxMoveDistance, onChange, onDown, onUp, sideArea, } = params;
16
+ this._app = app;
17
+ this._maxMoveDistance = maxMoveDistance;
18
+ this._onChange = onChange;
19
+ this._onDown = onDown;
20
+ this._onUp = onUp;
21
+ this._sideArea = sideArea;
22
+ clickArea.forEach((item) => {
23
+ libPixiEvent(item, "pointerdown", this._onDragStart.bind(this));
24
+ });
25
+ libPixiEvent(sideArea, "pointerdown", this._onDragMove.bind(this));
26
+ app.stage.on("pointermove", this._onDragMove.bind(this));
27
+ app.stage.on("pointerup", this._onDragEnd.bind(this));
28
+ }
29
+ /** @description 设置进度
30
+ * @param value 进度值,范围 0-1
31
+ */
32
+ setValue(value) {
33
+ this._progress = value;
34
+ this._lastMoveX = this._maxMoveDistance * value;
35
+ this._onChange(this._lastMoveX, value);
36
+ }
37
+ /** @description 按下触发 */
38
+ _onDragStart() {
39
+ var _a;
40
+ this._app.stage.eventMode = "static";
41
+ this._isDragging = true;
42
+ (_a = this._onDown) === null || _a === void 0 ? void 0 : _a.call(this);
43
+ }
44
+ /** @description 移动触发 */
45
+ _onDragMove(event) {
46
+ const position = event.getLocalPosition(this._sideArea);
47
+ if (this._isDragging) {
48
+ this._moveX = Math.max(0, Math.min(position.x, this._maxMoveDistance));
49
+ this._progress = Number((this._moveX / this._maxMoveDistance).toFixed(2));
50
+ this._onChange(this._moveX, this._progress);
51
+ }
52
+ }
53
+ /** @description 抬起触发 */
54
+ _onDragEnd() {
55
+ var _a;
56
+ this._app.stage.eventMode = "auto";
57
+ this._isDragging = false;
58
+ this._lastMoveX = this._moveX;
59
+ (_a = this._onUp) === null || _a === void 0 ? void 0 : _a.call(this);
60
+ }
61
+ }
package/libPixiJs.d.ts CHANGED
@@ -15,6 +15,7 @@ import { LibPixiSlider } from "./Components/Custom/LibPixiSlider";
15
15
  import { LibPixiSubAddMinMax } from "./Components/Custom/LibPixiSubAddMinMax";
16
16
  import { LibPixiTable } from "./Components/Custom/LibPixiTable";
17
17
  import { LibPixiAudio } from "./Utils/LibPixiAudio";
18
+ import { LibPixiSlideInput } from "./Utils/LibPixiSlideInput";
18
19
  /** @description 组件 */
19
20
  export declare const Components: {
20
21
  Base: {
@@ -160,4 +161,8 @@ export declare const Utils: {
160
161
  * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiTickerTimeout-Ticker定时器
161
162
  */
162
163
  libPixiTickerTimeout: (callback: () => void, delay?: number) => () => void;
164
+ /** @description 滑动选择器核心代码
165
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSlideInput-滑动选择值
166
+ */
167
+ LibPixiSlideInput: typeof LibPixiSlideInput;
163
168
  };
package/libPixiJs.js CHANGED
@@ -26,6 +26,7 @@ import { libPixiScaleContainer } from "./Utils/LibPixiScaleContainer";
26
26
  import { libPixiFilter } from "./Utils/LibPixiFilter";
27
27
  import { libPixiShadow } from "./Utils/LibPixiShadow";
28
28
  import { libPixiTickerTimeout } from "./Utils/LibPixiTickerTimeout";
29
+ import { LibPixiSlideInput } from "./Utils/LibPixiSlideInput";
29
30
  /** @description 组件 */
30
31
  export const Components = {
31
32
  Base: {
@@ -171,4 +172,8 @@ export const Utils = {
171
172
  * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiTickerTimeout-Ticker定时器
172
173
  */
173
174
  libPixiTickerTimeout,
175
+ /** @description 滑动选择器核心代码
176
+ * @link 使用方法:https://www.npmjs.com/package/lyb-pixi-js#LibPixiSlideInput-滑动选择值
177
+ */
178
+ LibPixiSlideInput,
174
179
  };