lyb-pixi-js 1.1.17 → 1.1.19
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/Components/Base/LibPixiSpine.d.ts +1 -0
- package/Components/Base/LibPixiSpine.js +1 -0
- package/Components/Custom/LibPixiScrollContainer.js +1 -1
- package/README.md +39 -2
- package/Utils/LibPixiSlideInput.d.ts +55 -0
- package/Utils/LibPixiSlideInput.js +61 -0
- package/libPixiJs.d.ts +5 -0
- package/libPixiJs.js +5 -0
- package/lyb-pixi.js +143 -141
- package/package.json +2 -1
|
@@ -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.
|
|
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
|
};
|