@safe-engine/pixi 8.8.2 → 8.8.3
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/dist/app.d.ts +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +20 -1
- package/dist/dragonbones/DragonBonesComponent.d.ts +1 -1
- package/dist/dragonbones/DragonBonesComponent.d.ts.map +1 -1
- package/dist/dragonbones/DragonBonesComponent.js +1 -1
- package/dist/dragonbones/DragonBonesSystem.d.ts.map +1 -1
- package/dist/dragonbones/DragonBonesSystem.js +1 -1
- package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts +59 -0
- package/dist/dragonbones/db-pixi/PixiArmatureDisplay.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiArmatureDisplay.js +180 -0
- package/dist/dragonbones/db-pixi/PixiFactory.d.ts +87 -0
- package/dist/dragonbones/db-pixi/PixiFactory.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiFactory.js +159 -0
- package/dist/dragonbones/db-pixi/PixiSlot.d.ts +31 -0
- package/dist/dragonbones/db-pixi/PixiSlot.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiSlot.js +332 -0
- package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts +38 -0
- package/dist/dragonbones/db-pixi/PixiTextureAtlasData.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/PixiTextureAtlasData.js +85 -0
- package/dist/dragonbones/db-pixi/index.d.ts +5 -0
- package/dist/dragonbones/db-pixi/index.d.ts.map +1 -0
- package/dist/dragonbones/db-pixi/index.js +4 -0
- package/dist/dragonbones/dragonBones/animation/Animation.d.ts +241 -0
- package/dist/dragonbones/dragonBones/animation/Animation.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/Animation.js +692 -0
- package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts +323 -0
- package/dist/dragonbones/dragonBones/animation/AnimationState.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/AnimationState.js +1161 -0
- package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts +100 -0
- package/dist/dragonbones/dragonBones/animation/BaseTimelineState.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/BaseTimelineState.js +479 -0
- package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts +38 -0
- package/dist/dragonbones/dragonBones/animation/IAnimatable.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/IAnimatable.js +9 -0
- package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts +159 -0
- package/dist/dragonbones/dragonBones/animation/TimelineState.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/TimelineState.js +998 -0
- package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts +74 -0
- package/dist/dragonbones/dragonBones/animation/WorldClock.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/animation/WorldClock.js +162 -0
- package/dist/dragonbones/dragonBones/armature/Armature.d.ts +314 -0
- package/dist/dragonbones/dragonBones/armature/Armature.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Armature.js +650 -0
- package/dist/dragonbones/dragonBones/armature/Bone.d.ts +123 -0
- package/dist/dragonbones/dragonBones/armature/Bone.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Bone.js +438 -0
- package/dist/dragonbones/dragonBones/armature/Constraint.d.ts +99 -0
- package/dist/dragonbones/dragonBones/armature/Constraint.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Constraint.js +672 -0
- package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts +47 -0
- package/dist/dragonbones/dragonBones/armature/IArmatureProxy.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/IArmatureProxy.js +1 -0
- package/dist/dragonbones/dragonBones/armature/Slot.d.ts +357 -0
- package/dist/dragonbones/dragonBones/armature/Slot.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Slot.js +1009 -0
- package/dist/dragonbones/dragonBones/armature/Surface.d.ts +41 -0
- package/dist/dragonbones/dragonBones/armature/Surface.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/Surface.js +463 -0
- package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts +80 -0
- package/dist/dragonbones/dragonBones/armature/TransformObject.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/armature/TransformObject.js +77 -0
- package/dist/dragonbones/dragonBones/core/BaseObject.d.ts +53 -0
- package/dist/dragonbones/dragonBones/core/BaseObject.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/core/BaseObject.js +130 -0
- package/dist/dragonbones/dragonBones/core/DragonBones.d.ts +236 -0
- package/dist/dragonbones/dragonBones/core/DragonBones.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/core/DragonBones.js +61 -0
- package/dist/dragonbones/dragonBones/event/EventObject.d.ts +143 -0
- package/dist/dragonbones/dragonBones/event/EventObject.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/event/EventObject.js +99 -0
- package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts +48 -0
- package/dist/dragonbones/dragonBones/event/IEventDispatcher.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/event/IEventDispatcher.js +1 -0
- package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts +292 -0
- package/dist/dragonbones/dragonBones/factory/BaseFactory.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/factory/BaseFactory.js +735 -0
- package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts +17 -0
- package/dist/dragonbones/dragonBones/geom/ColorTransform.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/ColorTransform.js +33 -0
- package/dist/dragonbones/dragonBones/geom/Curve.d.ts +10 -0
- package/dist/dragonbones/dragonBones/geom/Curve.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Curve.js +26 -0
- package/dist/dragonbones/dragonBones/geom/Matrix.d.ts +105 -0
- package/dist/dragonbones/dragonBones/geom/Matrix.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Matrix.js +207 -0
- package/dist/dragonbones/dragonBones/geom/Point.d.ts +38 -0
- package/dist/dragonbones/dragonBones/geom/Point.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Point.js +31 -0
- package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts +53 -0
- package/dist/dragonbones/dragonBones/geom/Rectangle.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Rectangle.js +37 -0
- package/dist/dragonbones/dragonBones/geom/Transform.d.ts +102 -0
- package/dist/dragonbones/dragonBones/geom/Transform.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/geom/Transform.js +170 -0
- package/dist/dragonbones/dragonBones/index.d.ts +37 -0
- package/dist/dragonbones/dragonBones/index.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/index.js +36 -0
- package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts +162 -0
- package/dist/dragonbones/dragonBones/model/AnimationConfig.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/AnimationConfig.js +81 -0
- package/dist/dragonbones/dragonBones/model/AnimationData.d.ts +174 -0
- package/dist/dragonbones/dragonBones/model/AnimationData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/AnimationData.js +256 -0
- package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts +319 -0
- package/dist/dragonbones/dragonBones/model/ArmatureData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/ArmatureData.js +450 -0
- package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts +188 -0
- package/dist/dragonbones/dragonBones/model/BoundingBoxData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/BoundingBoxData.js +500 -0
- package/dist/dragonbones/dragonBones/model/CanvasData.d.ts +15 -0
- package/dist/dragonbones/dragonBones/model/CanvasData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/CanvasData.js +17 -0
- package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts +46 -0
- package/dist/dragonbones/dragonBones/model/ConstraintData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/ConstraintData.js +57 -0
- package/dist/dragonbones/dragonBones/model/DisplayData.d.ts +98 -0
- package/dist/dragonbones/dragonBones/model/DisplayData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/DisplayData.js +174 -0
- package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts +108 -0
- package/dist/dragonbones/dragonBones/model/DragonBonesData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/DragonBonesData.js +86 -0
- package/dist/dragonbones/dragonBones/model/SkinData.d.ts +40 -0
- package/dist/dragonbones/dragonBones/model/SkinData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/SkinData.js +68 -0
- package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts +73 -0
- package/dist/dragonbones/dragonBones/model/TextureAtlasData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/TextureAtlasData.js +102 -0
- package/dist/dragonbones/dragonBones/model/UserData.d.ts +73 -0
- package/dist/dragonbones/dragonBones/model/UserData.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/model/UserData.js +101 -0
- package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts +29 -0
- package/dist/dragonbones/dragonBones/parser/BinaryDataParser.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/parser/BinaryDataParser.js +356 -0
- package/dist/dragonbones/dragonBones/parser/DataParser.d.ts +153 -0
- package/dist/dragonbones/dragonBones/parser/DataParser.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/parser/DataParser.js +283 -0
- package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts +130 -0
- package/dist/dragonbones/dragonBones/parser/ObjectDataParser.d.ts.map +1 -0
- package/dist/dragonbones/dragonBones/parser/ObjectDataParser.js +2098 -0
- package/package.json +1 -2
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { BaseObject } from "../core/BaseObject";
|
|
2
|
+
import { Rectangle } from "../geom/Rectangle";
|
|
3
|
+
/**
|
|
4
|
+
* - The texture atlas data.
|
|
5
|
+
* @version DragonBones 3.0
|
|
6
|
+
* @language en_US
|
|
7
|
+
*/
|
|
8
|
+
export class TextureAtlasData extends BaseObject {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
/**
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
this.textures = {};
|
|
15
|
+
}
|
|
16
|
+
_onClear() {
|
|
17
|
+
for (let k in this.textures) {
|
|
18
|
+
this.textures[k].returnToPool();
|
|
19
|
+
delete this.textures[k];
|
|
20
|
+
}
|
|
21
|
+
this.autoSearch = false;
|
|
22
|
+
this.width = 0;
|
|
23
|
+
this.height = 0;
|
|
24
|
+
this.scale = 1.0;
|
|
25
|
+
// this.textures.clear();
|
|
26
|
+
this.name = "";
|
|
27
|
+
this.imagePath = "";
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
copyFrom(value) {
|
|
33
|
+
this.autoSearch = value.autoSearch;
|
|
34
|
+
this.scale = value.scale;
|
|
35
|
+
this.width = value.width;
|
|
36
|
+
this.height = value.height;
|
|
37
|
+
this.name = value.name;
|
|
38
|
+
this.imagePath = value.imagePath;
|
|
39
|
+
for (let k in this.textures) {
|
|
40
|
+
this.textures[k].returnToPool();
|
|
41
|
+
delete this.textures[k];
|
|
42
|
+
}
|
|
43
|
+
// this.textures.clear();
|
|
44
|
+
for (let k in value.textures) {
|
|
45
|
+
const texture = this.createTexture();
|
|
46
|
+
texture.copyFrom(value.textures[k]);
|
|
47
|
+
this.textures[k] = texture;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
addTexture(value) {
|
|
54
|
+
if (value.name in this.textures) {
|
|
55
|
+
console.warn("Same texture: " + value.name);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
value.parent = this;
|
|
59
|
+
this.textures[value.name] = value;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @private
|
|
63
|
+
*/
|
|
64
|
+
getTexture(textureName) {
|
|
65
|
+
return textureName in this.textures ? this.textures[textureName] : null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
export class TextureData extends BaseObject {
|
|
72
|
+
constructor() {
|
|
73
|
+
super(...arguments);
|
|
74
|
+
this.region = new Rectangle();
|
|
75
|
+
this.frame = null; // Initial value.
|
|
76
|
+
}
|
|
77
|
+
static createRectangle() {
|
|
78
|
+
return new Rectangle();
|
|
79
|
+
}
|
|
80
|
+
_onClear() {
|
|
81
|
+
this.rotated = false;
|
|
82
|
+
this.name = "";
|
|
83
|
+
this.region.clear();
|
|
84
|
+
this.parent = null; //
|
|
85
|
+
this.frame = null;
|
|
86
|
+
}
|
|
87
|
+
copyFrom(value) {
|
|
88
|
+
this.rotated = value.rotated;
|
|
89
|
+
this.name = value.name;
|
|
90
|
+
this.region.copyFrom(value.region);
|
|
91
|
+
this.parent = value.parent;
|
|
92
|
+
if (this.frame === null && value.frame !== null) {
|
|
93
|
+
this.frame = TextureData.createRectangle();
|
|
94
|
+
}
|
|
95
|
+
else if (this.frame !== null && value.frame === null) {
|
|
96
|
+
this.frame = null;
|
|
97
|
+
}
|
|
98
|
+
if (this.frame !== null && value.frame !== null) {
|
|
99
|
+
this.frame.copyFrom(value.frame);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BaseObject } from "../core/BaseObject";
|
|
2
|
+
import { ActionType } from "../core/DragonBones";
|
|
3
|
+
import { BoneData, SlotData } from "./ArmatureData";
|
|
4
|
+
/**
|
|
5
|
+
* - The user custom data.
|
|
6
|
+
* @version DragonBones 5.0
|
|
7
|
+
* @language en_US
|
|
8
|
+
*/
|
|
9
|
+
export declare class UserData extends BaseObject {
|
|
10
|
+
static toString(): string;
|
|
11
|
+
/**
|
|
12
|
+
* - The custom int numbers.
|
|
13
|
+
* @version DragonBones 5.0
|
|
14
|
+
* @language en_US
|
|
15
|
+
*/
|
|
16
|
+
readonly ints: Array<number>;
|
|
17
|
+
/**
|
|
18
|
+
* - The custom float numbers.
|
|
19
|
+
* @version DragonBones 5.0
|
|
20
|
+
* @language en_US
|
|
21
|
+
*/
|
|
22
|
+
readonly floats: Array<number>;
|
|
23
|
+
/**
|
|
24
|
+
* - The custom strings.
|
|
25
|
+
* @version DragonBones 5.0
|
|
26
|
+
* @language en_US
|
|
27
|
+
*/
|
|
28
|
+
readonly strings: Array<string>;
|
|
29
|
+
protected _onClear(): void;
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
addInt(value: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
addFloat(value: number): void;
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
addString(value: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* - Get the custom int number.
|
|
44
|
+
* @version DragonBones 5.0
|
|
45
|
+
* @language en_US
|
|
46
|
+
*/
|
|
47
|
+
getInt(index?: number): number;
|
|
48
|
+
/**
|
|
49
|
+
* - Get the custom float number.
|
|
50
|
+
* @version DragonBones 5.0
|
|
51
|
+
* @language en_US
|
|
52
|
+
*/
|
|
53
|
+
getFloat(index?: number): number;
|
|
54
|
+
/**
|
|
55
|
+
* - Get the custom string.
|
|
56
|
+
* @version DragonBones 5.0
|
|
57
|
+
* @language en_US
|
|
58
|
+
*/
|
|
59
|
+
getString(index?: number): string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @private
|
|
63
|
+
*/
|
|
64
|
+
export declare class ActionData extends BaseObject {
|
|
65
|
+
static toString(): string;
|
|
66
|
+
type: ActionType;
|
|
67
|
+
name: string;
|
|
68
|
+
bone: BoneData | null;
|
|
69
|
+
slot: SlotData | null;
|
|
70
|
+
data: UserData | null;
|
|
71
|
+
protected _onClear(): void;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=UserData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserData.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/model/UserData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,UAAU;WACxB,QAAQ,IAAI,MAAM;IAGhC;;;;OAIG;IACH,SAAgB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IACzC;;;;OAIG;IACH,SAAgB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAC3C;;;;OAIG;IACH,SAAgB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAE5C,SAAS,CAAC,QAAQ,IAAI,IAAI;IAK1B;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGlC;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGpC;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGrC;;;;OAIG;IACI,MAAM,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;IAGxC;;;;OAIG;IACI,QAAQ,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;IAG1C;;;;OAIG;IACI,SAAS,CAAC,KAAK,GAAE,MAAU,GAAG,MAAM;CAG5C;AACD;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;WAC1B,QAAQ,IAAI,MAAM;IAIzB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEpC,SAAS,CAAC,QAAQ,IAAI,IAAI;CAW3B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { BaseObject } from "../core/BaseObject";
|
|
2
|
+
/**
|
|
3
|
+
* - The user custom data.
|
|
4
|
+
* @version DragonBones 5.0
|
|
5
|
+
* @language en_US
|
|
6
|
+
*/
|
|
7
|
+
export class UserData extends BaseObject {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
/**
|
|
11
|
+
* - The custom int numbers.
|
|
12
|
+
* @version DragonBones 5.0
|
|
13
|
+
* @language en_US
|
|
14
|
+
*/
|
|
15
|
+
this.ints = [];
|
|
16
|
+
/**
|
|
17
|
+
* - The custom float numbers.
|
|
18
|
+
* @version DragonBones 5.0
|
|
19
|
+
* @language en_US
|
|
20
|
+
*/
|
|
21
|
+
this.floats = [];
|
|
22
|
+
/**
|
|
23
|
+
* - The custom strings.
|
|
24
|
+
* @version DragonBones 5.0
|
|
25
|
+
* @language en_US
|
|
26
|
+
*/
|
|
27
|
+
this.strings = [];
|
|
28
|
+
}
|
|
29
|
+
static toString() {
|
|
30
|
+
return "[class dragonBones.UserData]";
|
|
31
|
+
}
|
|
32
|
+
_onClear() {
|
|
33
|
+
this.ints.length = 0;
|
|
34
|
+
this.floats.length = 0;
|
|
35
|
+
this.strings.length = 0;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
addInt(value) {
|
|
41
|
+
this.ints.push(value);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
addFloat(value) {
|
|
47
|
+
this.floats.push(value);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
addString(value) {
|
|
53
|
+
this.strings.push(value);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* - Get the custom int number.
|
|
57
|
+
* @version DragonBones 5.0
|
|
58
|
+
* @language en_US
|
|
59
|
+
*/
|
|
60
|
+
getInt(index = 0) {
|
|
61
|
+
return index >= 0 && index < this.ints.length ? this.ints[index] : 0;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* - Get the custom float number.
|
|
65
|
+
* @version DragonBones 5.0
|
|
66
|
+
* @language en_US
|
|
67
|
+
*/
|
|
68
|
+
getFloat(index = 0) {
|
|
69
|
+
return index >= 0 && index < this.floats.length ? this.floats[index] : 0.0;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* - Get the custom string.
|
|
73
|
+
* @version DragonBones 5.0
|
|
74
|
+
* @language en_US
|
|
75
|
+
*/
|
|
76
|
+
getString(index = 0) {
|
|
77
|
+
return index >= 0 && index < this.strings.length ? this.strings[index] : "";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
export class ActionData extends BaseObject {
|
|
84
|
+
constructor() {
|
|
85
|
+
super(...arguments);
|
|
86
|
+
this.data = null; //
|
|
87
|
+
}
|
|
88
|
+
static toString() {
|
|
89
|
+
return "[class dragonBones.ActionData]";
|
|
90
|
+
}
|
|
91
|
+
_onClear() {
|
|
92
|
+
if (this.data !== null) {
|
|
93
|
+
this.data.returnToPool();
|
|
94
|
+
}
|
|
95
|
+
this.type = 0 /* ActionType.Play */;
|
|
96
|
+
this.name = "";
|
|
97
|
+
this.bone = null;
|
|
98
|
+
this.slot = null;
|
|
99
|
+
this.data = null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AnimationData } from "../model/AnimationData";
|
|
2
|
+
import { GeometryData } from "../model/DisplayData";
|
|
3
|
+
import { DragonBonesData } from "../model/DragonBonesData";
|
|
4
|
+
import { ObjectDataParser } from "./ObjectDataParser";
|
|
5
|
+
/**
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export declare class BinaryDataParser extends ObjectDataParser {
|
|
9
|
+
private _binaryOffset;
|
|
10
|
+
private _binary;
|
|
11
|
+
private _intArrayBuffer;
|
|
12
|
+
private _frameArrayBuffer;
|
|
13
|
+
private _timelineArrayBuffer;
|
|
14
|
+
private _inRange;
|
|
15
|
+
private _decodeUTF8;
|
|
16
|
+
private _parseBinaryTimeline;
|
|
17
|
+
protected _parseAnimation(rawData: any): AnimationData;
|
|
18
|
+
protected _parseGeometry(rawData: any, geometry: GeometryData): void;
|
|
19
|
+
protected _parseArray(rawData: any): void;
|
|
20
|
+
parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null;
|
|
21
|
+
private static _binaryDataParserInstance;
|
|
22
|
+
/**
|
|
23
|
+
* - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.
|
|
24
|
+
* @deprecated
|
|
25
|
+
* @language en_US
|
|
26
|
+
*/
|
|
27
|
+
static getInstance(): BinaryDataParser;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=BinaryDataParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinaryDataParser.d.ts","sourceRoot":"","sources":["../../../../src/dragonbones/dragonBones/parser/BinaryDataParser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAuC,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAc,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,oBAAoB,CAAc;IAE1C,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,WAAW;IA4FnB,OAAO,CAAC,oBAAoB;IAiE5B,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,GAAG,aAAa;IAiNtD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAsCpE,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IA0DlC,oBAAoB,CACzB,OAAO,EAAE,GAAG,EACZ,KAAK,GAAE,MAAU,GAChB,eAAe,GAAG,IAAI;IA8BzB,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAiC;IACzE;;;;OAIG;WACW,WAAW,IAAI,gBAAgB;CAO9C"}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import { BaseObject } from "../core/BaseObject";
|
|
2
|
+
import { AnimationData, AnimationTimelineData, TimelineData } from "../model/AnimationData";
|
|
3
|
+
import { WeightData } from "../model/DisplayData";
|
|
4
|
+
import { DataParser } from "./DataParser";
|
|
5
|
+
import { ObjectDataParser } from "./ObjectDataParser";
|
|
6
|
+
/**
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
export class BinaryDataParser extends ObjectDataParser {
|
|
10
|
+
_inRange(a, min, max) {
|
|
11
|
+
return min <= a && a <= max;
|
|
12
|
+
}
|
|
13
|
+
_decodeUTF8(data) {
|
|
14
|
+
const EOF_byte = -1;
|
|
15
|
+
const EOF_code_point = -1;
|
|
16
|
+
const FATAL_POINT = 0xfffd;
|
|
17
|
+
let pos = 0;
|
|
18
|
+
let result = "";
|
|
19
|
+
let code_point;
|
|
20
|
+
let utf8_code_point = 0;
|
|
21
|
+
let utf8_bytes_needed = 0;
|
|
22
|
+
let utf8_bytes_seen = 0;
|
|
23
|
+
let utf8_lower_boundary = 0;
|
|
24
|
+
while (data.length > pos) {
|
|
25
|
+
let _byte = data[pos++];
|
|
26
|
+
if (_byte === EOF_byte) {
|
|
27
|
+
if (utf8_bytes_needed !== 0) {
|
|
28
|
+
code_point = FATAL_POINT;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
code_point = EOF_code_point;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
if (utf8_bytes_needed === 0) {
|
|
36
|
+
if (this._inRange(_byte, 0x00, 0x7f)) {
|
|
37
|
+
code_point = _byte;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
if (this._inRange(_byte, 0xc2, 0xdf)) {
|
|
41
|
+
utf8_bytes_needed = 1;
|
|
42
|
+
utf8_lower_boundary = 0x80;
|
|
43
|
+
utf8_code_point = _byte - 0xc0;
|
|
44
|
+
}
|
|
45
|
+
else if (this._inRange(_byte, 0xe0, 0xef)) {
|
|
46
|
+
utf8_bytes_needed = 2;
|
|
47
|
+
utf8_lower_boundary = 0x800;
|
|
48
|
+
utf8_code_point = _byte - 0xe0;
|
|
49
|
+
}
|
|
50
|
+
else if (this._inRange(_byte, 0xf0, 0xf4)) {
|
|
51
|
+
utf8_bytes_needed = 3;
|
|
52
|
+
utf8_lower_boundary = 0x10000;
|
|
53
|
+
utf8_code_point = _byte - 0xf0;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
}
|
|
57
|
+
utf8_code_point = utf8_code_point * Math.pow(64, utf8_bytes_needed);
|
|
58
|
+
code_point = null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else if (!this._inRange(_byte, 0x80, 0xbf)) {
|
|
62
|
+
utf8_code_point = 0;
|
|
63
|
+
utf8_bytes_needed = 0;
|
|
64
|
+
utf8_bytes_seen = 0;
|
|
65
|
+
utf8_lower_boundary = 0;
|
|
66
|
+
pos--;
|
|
67
|
+
code_point = _byte;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
utf8_bytes_seen += 1;
|
|
71
|
+
utf8_code_point =
|
|
72
|
+
utf8_code_point +
|
|
73
|
+
(_byte - 0x80) * Math.pow(64, utf8_bytes_needed - utf8_bytes_seen);
|
|
74
|
+
if (utf8_bytes_seen !== utf8_bytes_needed) {
|
|
75
|
+
code_point = null;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
let cp = utf8_code_point;
|
|
79
|
+
let lower_boundary = utf8_lower_boundary;
|
|
80
|
+
utf8_code_point = 0;
|
|
81
|
+
utf8_bytes_needed = 0;
|
|
82
|
+
utf8_bytes_seen = 0;
|
|
83
|
+
utf8_lower_boundary = 0;
|
|
84
|
+
if (this._inRange(cp, lower_boundary, 0x10ffff) &&
|
|
85
|
+
!this._inRange(cp, 0xd800, 0xdfff)) {
|
|
86
|
+
code_point = cp;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
code_point = _byte;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//Decode string
|
|
95
|
+
if (code_point !== null && code_point !== EOF_code_point) {
|
|
96
|
+
if (code_point <= 0xffff) {
|
|
97
|
+
if (code_point > 0)
|
|
98
|
+
result += String.fromCharCode(code_point);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
code_point -= 0x10000;
|
|
102
|
+
result += String.fromCharCode(0xd800 + ((code_point >> 10) & 0x3ff));
|
|
103
|
+
result += String.fromCharCode(0xdc00 + (code_point & 0x3ff));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
_parseBinaryTimeline(type, offset, timelineData = null) {
|
|
110
|
+
const timeline = timelineData !== null
|
|
111
|
+
? timelineData
|
|
112
|
+
: BaseObject.borrowObject(TimelineData);
|
|
113
|
+
timeline.type = type;
|
|
114
|
+
timeline.offset = offset;
|
|
115
|
+
this._timeline = timeline;
|
|
116
|
+
const keyFrameCount = this._timelineArrayBuffer[timeline.offset + 2 /* BinaryOffset.TimelineKeyFrameCount */];
|
|
117
|
+
if (keyFrameCount === 1) {
|
|
118
|
+
timeline.frameIndicesOffset = -1;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
let frameIndicesOffset = 0;
|
|
122
|
+
const totalFrameCount = this._animation.frameCount + 1; // One more frame than animation.
|
|
123
|
+
const frameIndices = this._data.frameIndices;
|
|
124
|
+
frameIndicesOffset = frameIndices.length;
|
|
125
|
+
frameIndices.length += totalFrameCount;
|
|
126
|
+
timeline.frameIndicesOffset = frameIndicesOffset;
|
|
127
|
+
for (let i = 0, iK = 0, frameStart = 0, frameCount = 0; i < totalFrameCount; ++i) {
|
|
128
|
+
if (frameStart + frameCount <= i && iK < keyFrameCount) {
|
|
129
|
+
frameStart =
|
|
130
|
+
this._frameArrayBuffer[this._animation.frameOffset +
|
|
131
|
+
this._timelineArrayBuffer[timeline.offset + 5 /* BinaryOffset.TimelineFrameOffset */ + iK]];
|
|
132
|
+
if (iK === keyFrameCount - 1) {
|
|
133
|
+
frameCount = this._animation.frameCount - frameStart;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
frameCount =
|
|
137
|
+
this._frameArrayBuffer[this._animation.frameOffset +
|
|
138
|
+
this._timelineArrayBuffer[timeline.offset + 5 /* BinaryOffset.TimelineFrameOffset */ + iK + 1]] - frameStart;
|
|
139
|
+
}
|
|
140
|
+
iK++;
|
|
141
|
+
}
|
|
142
|
+
frameIndices[frameIndicesOffset + i] = iK - 1;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
this._timeline = null; //
|
|
146
|
+
return timeline;
|
|
147
|
+
}
|
|
148
|
+
_parseAnimation(rawData) {
|
|
149
|
+
const animation = BaseObject.borrowObject(AnimationData);
|
|
150
|
+
animation.blendType = DataParser._getAnimationBlendType(ObjectDataParser._getString(rawData, DataParser.BLEND_TYPE, ""));
|
|
151
|
+
animation.frameCount = ObjectDataParser._getNumber(rawData, DataParser.DURATION, 0);
|
|
152
|
+
animation.playTimes = ObjectDataParser._getNumber(rawData, DataParser.PLAY_TIMES, 1);
|
|
153
|
+
animation.duration = animation.frameCount / this._armature.frameRate; // float
|
|
154
|
+
animation.fadeInTime = ObjectDataParser._getNumber(rawData, DataParser.FADE_IN_TIME, 0.0);
|
|
155
|
+
animation.scale = ObjectDataParser._getNumber(rawData, DataParser.SCALE, 1.0);
|
|
156
|
+
animation.name = ObjectDataParser._getString(rawData, DataParser.NAME, DataParser.DEFAULT_NAME);
|
|
157
|
+
if (animation.name.length === 0) {
|
|
158
|
+
animation.name = DataParser.DEFAULT_NAME;
|
|
159
|
+
}
|
|
160
|
+
// Offsets.
|
|
161
|
+
const offsets = rawData[DataParser.OFFSET];
|
|
162
|
+
animation.frameIntOffset = offsets[0];
|
|
163
|
+
animation.frameFloatOffset = offsets[1];
|
|
164
|
+
animation.frameOffset = offsets[2];
|
|
165
|
+
this._animation = animation;
|
|
166
|
+
if (DataParser.ACTION in rawData) {
|
|
167
|
+
animation.actionTimeline = this._parseBinaryTimeline(0 /* TimelineType.Action */, rawData[DataParser.ACTION]);
|
|
168
|
+
}
|
|
169
|
+
if (DataParser.Z_ORDER in rawData) {
|
|
170
|
+
animation.zOrderTimeline = this._parseBinaryTimeline(1 /* TimelineType.ZOrder */, rawData[DataParser.Z_ORDER]);
|
|
171
|
+
}
|
|
172
|
+
if (DataParser.BONE in rawData) {
|
|
173
|
+
const rawTimeliness = rawData[DataParser.BONE];
|
|
174
|
+
for (let k in rawTimeliness) {
|
|
175
|
+
const rawTimelines = rawTimeliness[k];
|
|
176
|
+
const bone = this._armature.getBone(k);
|
|
177
|
+
if (bone === null) {
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
for (let i = 0, l = rawTimelines.length; i < l; i += 2) {
|
|
181
|
+
const timelineType = rawTimelines[i];
|
|
182
|
+
const timelineOffset = rawTimelines[i + 1];
|
|
183
|
+
const timeline = this._parseBinaryTimeline(timelineType, timelineOffset);
|
|
184
|
+
this._animation.addBoneTimeline(bone.name, timeline);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (DataParser.SLOT in rawData) {
|
|
189
|
+
const rawTimeliness = rawData[DataParser.SLOT];
|
|
190
|
+
for (let k in rawTimeliness) {
|
|
191
|
+
const rawTimelines = rawTimeliness[k];
|
|
192
|
+
const slot = this._armature.getSlot(k);
|
|
193
|
+
if (slot === null) {
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
for (let i = 0, l = rawTimelines.length; i < l; i += 2) {
|
|
197
|
+
const timelineType = rawTimelines[i];
|
|
198
|
+
const timelineOffset = rawTimelines[i + 1];
|
|
199
|
+
const timeline = this._parseBinaryTimeline(timelineType, timelineOffset);
|
|
200
|
+
this._animation.addSlotTimeline(slot.name, timeline);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (DataParser.CONSTRAINT in rawData) {
|
|
205
|
+
const rawTimeliness = rawData[DataParser.CONSTRAINT];
|
|
206
|
+
for (let k in rawTimeliness) {
|
|
207
|
+
const rawTimelines = rawTimeliness[k];
|
|
208
|
+
const constraint = this._armature.getConstraint(k);
|
|
209
|
+
if (constraint === null) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
for (let i = 0, l = rawTimelines.length; i < l; i += 2) {
|
|
213
|
+
const timelineType = rawTimelines[i];
|
|
214
|
+
const timelineOffset = rawTimelines[i + 1];
|
|
215
|
+
const timeline = this._parseBinaryTimeline(timelineType, timelineOffset);
|
|
216
|
+
this._animation.addConstraintTimeline(constraint.name, timeline);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (DataParser.TIMELINE in rawData) {
|
|
221
|
+
const rawTimelines = rawData[DataParser.TIMELINE];
|
|
222
|
+
for (const rawTimeline of rawTimelines) {
|
|
223
|
+
const timelineOffset = ObjectDataParser._getNumber(rawTimeline, DataParser.OFFSET, 0);
|
|
224
|
+
if (timelineOffset >= 0) {
|
|
225
|
+
const timelineType = ObjectDataParser._getNumber(rawTimeline, DataParser.TYPE, 0 /* TimelineType.Action */);
|
|
226
|
+
const timelineName = ObjectDataParser._getString(rawTimeline, DataParser.NAME, "");
|
|
227
|
+
let timeline = null;
|
|
228
|
+
if (timelineType === 40 /* TimelineType.AnimationProgress */ &&
|
|
229
|
+
animation.blendType !== 0 /* AnimationBlendType.None */) {
|
|
230
|
+
timeline = BaseObject.borrowObject(AnimationTimelineData);
|
|
231
|
+
const animaitonTimeline = timeline;
|
|
232
|
+
animaitonTimeline.x = ObjectDataParser._getNumber(rawTimeline, DataParser.X, 0.0);
|
|
233
|
+
animaitonTimeline.y = ObjectDataParser._getNumber(rawTimeline, DataParser.Y, 0.0);
|
|
234
|
+
}
|
|
235
|
+
timeline = this._parseBinaryTimeline(timelineType, timelineOffset, timeline);
|
|
236
|
+
switch (timelineType) {
|
|
237
|
+
case 0 /* TimelineType.Action */:
|
|
238
|
+
// TODO
|
|
239
|
+
break;
|
|
240
|
+
case 1 /* TimelineType.ZOrder */:
|
|
241
|
+
// TODO
|
|
242
|
+
break;
|
|
243
|
+
case 11 /* TimelineType.BoneTranslate */:
|
|
244
|
+
case 12 /* TimelineType.BoneRotate */:
|
|
245
|
+
case 13 /* TimelineType.BoneScale */:
|
|
246
|
+
case 50 /* TimelineType.Surface */:
|
|
247
|
+
case 60 /* TimelineType.BoneAlpha */:
|
|
248
|
+
this._animation.addBoneTimeline(timelineName, timeline);
|
|
249
|
+
break;
|
|
250
|
+
case 20 /* TimelineType.SlotDisplay */:
|
|
251
|
+
case 21 /* TimelineType.SlotColor */:
|
|
252
|
+
case 22 /* TimelineType.SlotDeform */:
|
|
253
|
+
case 23 /* TimelineType.SlotZIndex */:
|
|
254
|
+
case 24 /* TimelineType.SlotAlpha */:
|
|
255
|
+
this._animation.addSlotTimeline(timelineName, timeline);
|
|
256
|
+
break;
|
|
257
|
+
case 30 /* TimelineType.IKConstraint */:
|
|
258
|
+
this._animation.addConstraintTimeline(timelineName, timeline);
|
|
259
|
+
break;
|
|
260
|
+
case 40 /* TimelineType.AnimationProgress */:
|
|
261
|
+
case 41 /* TimelineType.AnimationWeight */:
|
|
262
|
+
case 42 /* TimelineType.AnimationParameter */:
|
|
263
|
+
this._animation.addAnimationTimeline(timelineName, timeline);
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
this._animation = null;
|
|
270
|
+
return animation;
|
|
271
|
+
}
|
|
272
|
+
_parseGeometry(rawData, geometry) {
|
|
273
|
+
geometry.offset = rawData[DataParser.OFFSET];
|
|
274
|
+
geometry.data = this._data;
|
|
275
|
+
const weightOffset = this._intArrayBuffer[geometry.offset + 3 /* BinaryOffset.GeometryWeightOffset */];
|
|
276
|
+
if (weightOffset >= 0) {
|
|
277
|
+
const weight = BaseObject.borrowObject(WeightData);
|
|
278
|
+
const vertexCount = this._intArrayBuffer[geometry.offset + 0 /* BinaryOffset.GeometryVertexCount */];
|
|
279
|
+
const boneCount = this._intArrayBuffer[weightOffset + 0 /* BinaryOffset.WeigthBoneCount */];
|
|
280
|
+
weight.offset = weightOffset;
|
|
281
|
+
for (let i = 0; i < boneCount; ++i) {
|
|
282
|
+
const boneIndex = this._intArrayBuffer[weightOffset + 2 /* BinaryOffset.WeigthBoneIndices */ + i];
|
|
283
|
+
weight.addBone(this._rawBones[boneIndex]);
|
|
284
|
+
}
|
|
285
|
+
let boneIndicesOffset = weightOffset + 2 /* BinaryOffset.WeigthBoneIndices */ + boneCount;
|
|
286
|
+
let weightCount = 0;
|
|
287
|
+
for (let i = 0, l = vertexCount; i < l; ++i) {
|
|
288
|
+
const vertexBoneCount = this._intArrayBuffer[boneIndicesOffset++];
|
|
289
|
+
weightCount += vertexBoneCount;
|
|
290
|
+
boneIndicesOffset += vertexBoneCount;
|
|
291
|
+
}
|
|
292
|
+
weight.count = weightCount;
|
|
293
|
+
geometry.weight = weight;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
_parseArray(rawData) {
|
|
297
|
+
const offsets = rawData[DataParser.OFFSET];
|
|
298
|
+
const l1 = offsets[1];
|
|
299
|
+
const l2 = offsets[3];
|
|
300
|
+
const l3 = offsets[5];
|
|
301
|
+
const l4 = offsets[7];
|
|
302
|
+
const l5 = offsets[9];
|
|
303
|
+
const l6 = offsets[11];
|
|
304
|
+
const l7 = offsets.length > 12 ? offsets[13] : 0; // Color.
|
|
305
|
+
const intArray = new Uint16Array(this._binary, this._binaryOffset + offsets[0], l1 / Uint16Array.BYTES_PER_ELEMENT);
|
|
306
|
+
const floatArray = new Float32Array(this._binary, this._binaryOffset + offsets[2], l2 / Float32Array.BYTES_PER_ELEMENT);
|
|
307
|
+
const frameIntArray = new Int16Array(this._binary, this._binaryOffset + offsets[4], l3 / Int16Array.BYTES_PER_ELEMENT);
|
|
308
|
+
const frameFloatArray = new Float32Array(this._binary, this._binaryOffset + offsets[6], l4 / Float32Array.BYTES_PER_ELEMENT);
|
|
309
|
+
const frameArray = new Int16Array(this._binary, this._binaryOffset + offsets[8], l5 / Int16Array.BYTES_PER_ELEMENT);
|
|
310
|
+
const timelineArray = new Uint16Array(this._binary, this._binaryOffset + offsets[10], l6 / Uint16Array.BYTES_PER_ELEMENT);
|
|
311
|
+
const colorArray = l7 > 0
|
|
312
|
+
? new Uint16Array(this._binary, this._binaryOffset + offsets[12], l7 / Uint16Array.BYTES_PER_ELEMENT)
|
|
313
|
+
: intArray; // Color.
|
|
314
|
+
this._data.binary = this._binary;
|
|
315
|
+
this._data.intArray = this._intArrayBuffer = intArray;
|
|
316
|
+
this._data.floatArray = floatArray;
|
|
317
|
+
this._data.frameIntArray = frameIntArray;
|
|
318
|
+
this._data.frameFloatArray = frameFloatArray;
|
|
319
|
+
this._data.frameArray = this._frameArrayBuffer = frameArray;
|
|
320
|
+
this._data.timelineArray = this._timelineArrayBuffer = timelineArray;
|
|
321
|
+
this._data.colorArray = colorArray;
|
|
322
|
+
}
|
|
323
|
+
parseDragonBonesData(rawData, scale = 1) {
|
|
324
|
+
console.assert(rawData !== null &&
|
|
325
|
+
rawData !== undefined &&
|
|
326
|
+
rawData instanceof ArrayBuffer, "Data error.");
|
|
327
|
+
const tag = new Uint8Array(rawData, 0, 8);
|
|
328
|
+
if (tag[0] !== "D".charCodeAt(0) ||
|
|
329
|
+
tag[1] !== "B".charCodeAt(0) ||
|
|
330
|
+
tag[2] !== "D".charCodeAt(0) ||
|
|
331
|
+
tag[3] !== "T".charCodeAt(0)) {
|
|
332
|
+
console.assert(false, "Nonsupport data.");
|
|
333
|
+
return null;
|
|
334
|
+
}
|
|
335
|
+
const headerLength = new Uint32Array(rawData, 8, 1)[0];
|
|
336
|
+
const headerBytes = new Uint8Array(rawData, 8 + 4, headerLength);
|
|
337
|
+
const headerString = this._decodeUTF8(headerBytes);
|
|
338
|
+
const header = JSON.parse(headerString);
|
|
339
|
+
//
|
|
340
|
+
this._binaryOffset = 8 + 4 + headerLength;
|
|
341
|
+
this._binary = rawData;
|
|
342
|
+
return super.parseDragonBonesData(header, scale);
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}.
|
|
346
|
+
* @deprecated
|
|
347
|
+
* @language en_US
|
|
348
|
+
*/
|
|
349
|
+
static getInstance() {
|
|
350
|
+
if (BinaryDataParser._binaryDataParserInstance === null) {
|
|
351
|
+
BinaryDataParser._binaryDataParserInstance = new BinaryDataParser();
|
|
352
|
+
}
|
|
353
|
+
return BinaryDataParser._binaryDataParserInstance;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
BinaryDataParser._binaryDataParserInstance = null;
|