@shijiu/jsview-vue 0.9.246 → 0.9.254

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.
Files changed (173) hide show
  1. package/dom/bin/package.json +11 -11
  2. package/dom/browser-root-style.css +21 -21
  3. package/loader/jsview-main.js +41 -41
  4. package/loader/jsview.config.default.js +37 -37
  5. package/loader/jsview.default.config.js +37 -37
  6. package/package.json +6 -6
  7. package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +218 -218
  8. package/patches/node_modules/@vue/cli-plugin-typescript/index.js +100 -100
  9. package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +395 -395
  10. package/patches/node_modules/@vue/cli-service/lib/config/app.js +272 -272
  11. package/patches/node_modules/@vue/cli-service/lib/config/assets.js +70 -70
  12. package/patches/node_modules/@vue/cli-service/lib/config/base.js +212 -212
  13. package/patches/node_modules/postcss-js/objectifier.js +90 -90
  14. package/patches/node_modules/vue-loader/dist/resolveScript.js +70 -70
  15. package/samples/AdvanceMetroWidget/App.vue +122 -122
  16. package/samples/AdvanceMetroWidget/Frame.vue +100 -100
  17. package/samples/AdvanceMetroWidget/Item.vue +57 -57
  18. package/samples/AdvanceMetroWidget/data.js +136 -136
  19. package/samples/AnimPicture/App.vue +223 -223
  20. package/samples/Basic/App.vue +128 -128
  21. package/samples/Basic/components/TitleBar.vue +28 -28
  22. package/samples/Basic/components/anim/AnimGroup.vue +67 -67
  23. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
  24. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
  25. package/samples/Basic/components/anim/AnimTransition.vue +116 -116
  26. package/samples/Basic/components/div/DivBackground.vue +14 -14
  27. package/samples/Basic/components/div/DivClip.vue +80 -80
  28. package/samples/Basic/components/div/DivCssScoped.vue +26 -26
  29. package/samples/Basic/components/div/DivCssVar.vue +49 -49
  30. package/samples/Basic/components/div/DivGroup1.vue +32 -32
  31. package/samples/Basic/components/div/DivGroup2.vue +40 -40
  32. package/samples/Basic/components/div/DivLayout.vue +11 -11
  33. package/samples/Basic/components/div/DivRadius.vue +46 -46
  34. package/samples/Basic/components/text/TextAlign.vue +47 -47
  35. package/samples/Basic/components/text/TextFontStyle.vue +57 -57
  36. package/samples/Basic/components/text/TextGroup.vue +31 -31
  37. package/samples/Basic/components/text/TextOverflow.vue +77 -77
  38. package/samples/BasicFocusControl/App.vue +124 -124
  39. package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
  40. package/samples/BasicFocusControl/components/MainArea.vue +97 -97
  41. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
  42. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
  43. package/samples/BasicFocusControl/components/SideBar.vue +72 -72
  44. package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
  45. package/samples/ClassNameDemo/App.vue +119 -119
  46. package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
  47. package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
  48. package/samples/ClassNameDemo/components/TitleView.vue +24 -24
  49. package/samples/ClassNameDemo/data.js +24 -24
  50. package/samples/ColorSpace/App.vue +134 -134
  51. package/samples/DemoHomepage/App.vue +31 -31
  52. package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
  53. package/samples/DemoHomepage/components/Dialog.vue +93 -93
  54. package/samples/DemoHomepage/components/Item.vue +76 -76
  55. package/samples/DemoHomepage/components/TabFrame.vue +86 -86
  56. package/samples/DemoHomepage/router.js +132 -132
  57. package/samples/DemoHomepage/views/Homepage.vue +186 -186
  58. package/samples/FlipCard/App.vue +80 -80
  59. package/samples/FlipCard/FlipCard.vue +123 -123
  60. package/samples/FlipCard/data.js +12 -12
  61. package/samples/FlowMultiWidget/App.vue +90 -90
  62. package/samples/FlowMultiWidget/components/Block.vue +106 -106
  63. package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
  64. package/samples/FlowMultiWidget/components/Item.vue +102 -102
  65. package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
  66. package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
  67. package/samples/FlowMultiWidget/data.js +446 -446
  68. package/samples/HashHistory/App.vue +124 -124
  69. package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
  70. package/samples/HashHistory/components/Item.vue +73 -73
  71. package/samples/HashHistory/router.js +29 -29
  72. package/samples/HashHistory/views/BasePage.vue +18 -18
  73. package/samples/HashHistory/views/MainPage.vue +67 -67
  74. package/samples/HashHistory/views/SubPage.vue +78 -78
  75. package/samples/HashHistory/views/SubPageFirst.vue +9 -9
  76. package/samples/HashHistory/views/SubPageSecond.vue +9 -9
  77. package/samples/LongImage/App.vue +96 -96
  78. package/samples/LongImage/Button.vue +153 -153
  79. package/samples/LongImage/LongImageScroll.vue +126 -126
  80. package/samples/LongImage/Scroll.vue +15 -15
  81. package/samples/LongText/App.vue +111 -111
  82. package/samples/LongText/Button.vue +153 -153
  83. package/samples/LongText/LongTextScroll.vue +224 -224
  84. package/samples/LongText/Scroll.vue +15 -15
  85. package/samples/Preload/App.vue +145 -145
  86. package/samples/Preload/data.js +22 -22
  87. package/samples/Preload/preloadItem.vue +21 -21
  88. package/samples/QrcodeDemo/App.vue +72 -72
  89. package/samples/SimpleWidgetDemo/App.vue +203 -203
  90. package/samples/SimpleWidgetDemo/Item.vue +82 -82
  91. package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
  92. package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
  93. package/samples/SimpleWidgetDemo/data.js +110 -110
  94. package/samples/SprayView/App.vue +269 -269
  95. package/samples/SpriteImage/App.vue +174 -174
  96. package/samples/SpriteImage/images/egg_break.json +116 -116
  97. package/samples/TextBox/App.vue +178 -178
  98. package/samples/TextBox/RenderCenter.vue +108 -108
  99. package/samples/TextBox/RenderLeft.vue +108 -108
  100. package/samples/TextBox/RenderOneLine.vue +119 -119
  101. package/samples/TextBox/RenderRight.vue +106 -106
  102. package/samples/TextShadowDemo/App.vue +97 -97
  103. package/samples/TextureSize/App.vue +141 -141
  104. package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
  105. package/samples/ThrowMoveDemo/App.vue +113 -113
  106. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
  107. package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
  108. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
  109. package/samples/TransitPage/App.vue +40 -40
  110. package/samples/VideoDemo/App.vue +137 -137
  111. package/samples/VideoDemo/components/Button.vue +68 -68
  112. package/samples/VideoDemo/components/Controllor.vue +195 -195
  113. package/samples/VideoDemo/components/VideoFrame.vue +152 -152
  114. package/scripts/common.js +115 -92
  115. package/scripts/deploy-fast-pack.js +17 -0
  116. package/scripts/deploy-fast-publish.js +44 -0
  117. package/scripts/{git-commit-empty.js → deploy-git-commit-empty.js} +21 -21
  118. package/scripts/{pre-pack.js → deploy-prepare.js} +56 -39
  119. package/scripts/{install-local-packages.js → jsview-install-local-packages.js} +73 -73
  120. package/scripts/{post-build.js → jsview-post-build.js} +127 -127
  121. package/scripts/{post-install.js → jsview-post-install.js} +78 -78
  122. package/scripts/{run-android.js → jsview-run-android.js} +64 -64
  123. package/scripts/make-js.sh +181 -181
  124. package/utils/JsViewEngineWidget/bin/index.js +1 -1
  125. package/utils/JsViewEngineWidget/bin/package.json +11 -11
  126. package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
  127. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
  128. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
  129. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
  130. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
  131. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
  132. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
  133. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
  134. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
  135. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
  136. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
  137. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
  138. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
  139. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
  140. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
  141. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
  142. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
  143. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
  144. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
  145. package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
  146. package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
  147. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
  148. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
  149. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
  150. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
  151. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
  152. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
  153. package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
  154. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
  155. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
  156. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
  157. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
  158. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
  159. package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
  160. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
  161. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
  162. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
  163. package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
  164. package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
  165. package/vetur.config.js +5 -5
  166. package/.gitmodules +0 -6
  167. package/README.md +0 -15
  168. package/doc/IMPORT_CHANGE_LOG.txt +0 -3
  169. package/doc/about-project-postinstall.md +0 -0
  170. package/doc/git_commit.md +0 -15
  171. package/doc/test_version_up.txt +0 -1
  172. package/scripts/update-version.js +0 -32
  173. package/shijiu-jsview-vue-0.9.246.tgz +0 -0
@@ -1,204 +1,204 @@
1
- /*
2
- * @Author: ChenChanghua
3
- * @Date: 2021-10-20 17:01:37
4
- * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2021-10-21 13:17:11
6
- * @Description: file content
7
- */
8
- import { Forge } from "../../../dom/jsv-forge-define";
9
-
10
- // JsvSpriteBase comes from JsView React Project
11
-
12
- class ActorControlBase {
13
- constructor(params_count) {
14
- this._Current = new Array(params_count).fill(0);
15
- this._Target = new Array(params_count).fill(0);
16
- this._ParameterCount = params_count;
17
- this._StateIndex = 0; // 0: idle, 1:running
18
- this._StateLocked = false;
19
- this._StartSwitcher = false;
20
- this._StartingParams = null; // 临时存储启动时的参数,启动真正开始后,此缓存就作废
21
- this._PausedCallback = null;
22
- this._EndCallback = null;
23
- this._NextEndCallback = null;
24
- this._Token = 0;
25
- this._SpriteView = null;
26
- }
27
-
28
- start(start_params, end_callback) {
29
- // 取消旧的Callback
30
- this._NextEndCallback = end_callback;
31
- this._EndCallback = null;
32
-
33
- this._StartingParams = start_params;
34
- this._StartSwitcher = true;
35
- this._StateMachineNext();
36
- }
37
-
38
- pause(paused_callback) {
39
- // 执行pause动作时,相当于取消start()动作,所以EndCallback同时也应该被取消
40
- if (this._EndCallback !== null || this._NextEndCallback !== null) {
41
- this._EndCallback = null;
42
- this._NextEndCallback = null;
43
- }
44
-
45
- // 根据当前状态,已经处于Pause则直接回调,否则发送pause指令
46
- if (this._StateIndex === 0) {
47
- if (paused_callback) {
48
- this._CallbackWithCatch(
49
- this._Current,
50
- paused_callback,
51
- this._StartingParams /* 使用最后一次启动参数作为回调 */
52
- );
53
- }
54
- } else {
55
- if (paused_callback) {
56
- this._PausedCallback = paused_callback;
57
- }
58
- this._StateMachineNext();
59
- }
60
- }
61
-
62
- startFpsTesting() {
63
- Forge.sRenderBridge.SetStepFpsSwitch(true);
64
- }
65
-
66
- stopFpsTesting() {
67
- Forge.sRenderBridge.SetStepFpsSwitch(false);
68
- }
69
-
70
- _WrapBuildAnimation(
71
- repeat_start_array,
72
- current_array,
73
- tos_array,
74
- start_params
75
- ) {
76
- console.warn("Should Override", repeat_start_array, current_array, tos_array, start_params);
77
- }
78
-
79
- _WrapAddExtraListener(listener, start_params) {
80
- console.warn("Should Override", listener, start_params);
81
- }
82
-
83
- _WrapCallback(currents, callback, start_params) {
84
- console.warn("Should Override", currents, callback, start_params);
85
- }
86
-
87
- _WrapReCalculateCurrent(froms, tos, progress, start_params) {
88
- console.warn("Should Override", froms, tos, progress, start_params);
89
- }
90
-
91
- _CallbackWithCatch(currents, callback, start_params) {
92
- try {
93
- this._WrapCallback(currents, callback, start_params);
94
- } catch (e) {
95
- console.error("Error:in callback:", e);
96
- }
97
- }
98
-
99
- _StateMachineNext() {
100
- if (this._StateLocked) {
101
- // 内部处理进行中,暂停状态切换
102
- return;
103
- }
104
-
105
- if (this._StateIndex === 0) {
106
- // Idle -> play, need switcher
107
- if (this._StartSwitcher) {
108
- this._StartSwitcher = false;
109
- if (this._StartAnimation()) {
110
- this._StateIndex = 1;
111
- }
112
- }
113
- } else if (this._StateIndex === 1) {
114
- // Play -> idle, no need switcher
115
- this._StopAnimation();
116
- }
117
- }
118
-
119
- _StartAnimation() {
120
- // 当动画开始后才进行回调设置,防止Pause过程中直接调用了新设置进的回调
121
- this._EndCallback = this._NextEndCallback;
122
- this._NextEndCallback = null;
123
-
124
- const start_params = this._StartingParams;
125
- this._StartingParams = null;
126
-
127
- const froms = [...this._Current];
128
- const tos = this._Target;
129
- const repeat_starts = this._Repeat ? [...this._RepeatStart] : null;
130
-
131
- // const token = this._Token++;
132
-
133
- const anim = this._WrapBuildAnimation(froms, tos, start_params);
134
-
135
- if (anim === null) {
136
- return;
137
- }
138
-
139
- // 生成OnFinalProgress处理监听,memo在 _WrapBuildAnimation()处理后生成,因为build处理中可能改变tos
140
- const memo_tos = [...tos];
141
- const that = this;
142
- const listener = new Forge.AnimationListener().OnFinalProgress(
143
- (progress) => {
144
- that._OnPaused(
145
- repeat_starts !== null ? repeat_starts : froms,
146
- memo_tos,
147
- progress,
148
- start_params
149
- );
150
- }
151
- );
152
-
153
- this._WrapAddExtraListener(listener, start_params);
154
-
155
- anim.AddAnimationListener(listener);
156
- anim.Enable(Forge.AnimationEnable.KeepTransform);
157
- if (this._Repeat) {
158
- anim.EnableInfinite();
159
- }
160
- this._SpriteView.StartAnimation(anim);
161
-
162
- return true; // success
163
- }
164
-
165
- _StopAnimation() {
166
- this._SpriteView.StopAnimation();
167
- }
168
-
169
- _OnPaused(froms, tos, progress, start_params) {
170
- // 根据froms, tos, progress信息更新this._Current
171
- this._WrapReCalculateCurrent(froms, tos, progress, start_params);
172
-
173
- this._StateLocked = true; // 阻止在callback中触发的状态变化
174
-
175
- // 标识状态为暂停,使回调中执行pause处理时能立刻得到pauseCallback
176
- this._StateIndex = 0;
177
-
178
- // 换出callbacks,回调时可能加入新的callbacks
179
- const paused_callback = this._PausedCallback;
180
- const ended_callback = this._EndCallback;
181
- this._PausedCallback = null;
182
- this._EndCallback = null;
183
-
184
- // 回调所有callback
185
- if (paused_callback) {
186
- // Paused callback
187
- this._CallbackWithCatch(this._Current, paused_callback, start_params);
188
- }
189
- if (ended_callback && progress === 1) {
190
- // Ended callback
191
- this._CallbackWithCatch(this._Current, ended_callback, start_params);
192
- }
193
-
194
- this._StateLocked = false;
195
-
196
- this._StateMachineNext(); // Trigger next start
197
- }
198
-
199
- _SetView(jsv_view) {
200
- this._SpriteView = jsv_view;
201
- }
202
- }
203
-
204
- export default ActorControlBase;
1
+ /*
2
+ * @Author: ChenChanghua
3
+ * @Date: 2021-10-20 17:01:37
4
+ * @LastEditors: ChenChanghua
5
+ * @LastEditTime: 2021-10-21 13:17:11
6
+ * @Description: file content
7
+ */
8
+ import { Forge } from "../../../dom/jsv-forge-define";
9
+
10
+ // JsvSpriteBase comes from JsView React Project
11
+
12
+ class ActorControlBase {
13
+ constructor(params_count) {
14
+ this._Current = new Array(params_count).fill(0);
15
+ this._Target = new Array(params_count).fill(0);
16
+ this._ParameterCount = params_count;
17
+ this._StateIndex = 0; // 0: idle, 1:running
18
+ this._StateLocked = false;
19
+ this._StartSwitcher = false;
20
+ this._StartingParams = null; // 临时存储启动时的参数,启动真正开始后,此缓存就作废
21
+ this._PausedCallback = null;
22
+ this._EndCallback = null;
23
+ this._NextEndCallback = null;
24
+ this._Token = 0;
25
+ this._SpriteView = null;
26
+ }
27
+
28
+ start(start_params, end_callback) {
29
+ // 取消旧的Callback
30
+ this._NextEndCallback = end_callback;
31
+ this._EndCallback = null;
32
+
33
+ this._StartingParams = start_params;
34
+ this._StartSwitcher = true;
35
+ this._StateMachineNext();
36
+ }
37
+
38
+ pause(paused_callback) {
39
+ // 执行pause动作时,相当于取消start()动作,所以EndCallback同时也应该被取消
40
+ if (this._EndCallback !== null || this._NextEndCallback !== null) {
41
+ this._EndCallback = null;
42
+ this._NextEndCallback = null;
43
+ }
44
+
45
+ // 根据当前状态,已经处于Pause则直接回调,否则发送pause指令
46
+ if (this._StateIndex === 0) {
47
+ if (paused_callback) {
48
+ this._CallbackWithCatch(
49
+ this._Current,
50
+ paused_callback,
51
+ this._StartingParams /* 使用最后一次启动参数作为回调 */
52
+ );
53
+ }
54
+ } else {
55
+ if (paused_callback) {
56
+ this._PausedCallback = paused_callback;
57
+ }
58
+ this._StateMachineNext();
59
+ }
60
+ }
61
+
62
+ startFpsTesting() {
63
+ Forge.sRenderBridge.SetStepFpsSwitch(true);
64
+ }
65
+
66
+ stopFpsTesting() {
67
+ Forge.sRenderBridge.SetStepFpsSwitch(false);
68
+ }
69
+
70
+ _WrapBuildAnimation(
71
+ repeat_start_array,
72
+ current_array,
73
+ tos_array,
74
+ start_params
75
+ ) {
76
+ console.warn("Should Override", repeat_start_array, current_array, tos_array, start_params);
77
+ }
78
+
79
+ _WrapAddExtraListener(listener, start_params) {
80
+ console.warn("Should Override", listener, start_params);
81
+ }
82
+
83
+ _WrapCallback(currents, callback, start_params) {
84
+ console.warn("Should Override", currents, callback, start_params);
85
+ }
86
+
87
+ _WrapReCalculateCurrent(froms, tos, progress, start_params) {
88
+ console.warn("Should Override", froms, tos, progress, start_params);
89
+ }
90
+
91
+ _CallbackWithCatch(currents, callback, start_params) {
92
+ try {
93
+ this._WrapCallback(currents, callback, start_params);
94
+ } catch (e) {
95
+ console.error("Error:in callback:", e);
96
+ }
97
+ }
98
+
99
+ _StateMachineNext() {
100
+ if (this._StateLocked) {
101
+ // 内部处理进行中,暂停状态切换
102
+ return;
103
+ }
104
+
105
+ if (this._StateIndex === 0) {
106
+ // Idle -> play, need switcher
107
+ if (this._StartSwitcher) {
108
+ this._StartSwitcher = false;
109
+ if (this._StartAnimation()) {
110
+ this._StateIndex = 1;
111
+ }
112
+ }
113
+ } else if (this._StateIndex === 1) {
114
+ // Play -> idle, no need switcher
115
+ this._StopAnimation();
116
+ }
117
+ }
118
+
119
+ _StartAnimation() {
120
+ // 当动画开始后才进行回调设置,防止Pause过程中直接调用了新设置进的回调
121
+ this._EndCallback = this._NextEndCallback;
122
+ this._NextEndCallback = null;
123
+
124
+ const start_params = this._StartingParams;
125
+ this._StartingParams = null;
126
+
127
+ const froms = [...this._Current];
128
+ const tos = this._Target;
129
+ const repeat_starts = this._Repeat ? [...this._RepeatStart] : null;
130
+
131
+ // const token = this._Token++;
132
+
133
+ const anim = this._WrapBuildAnimation(froms, tos, start_params);
134
+
135
+ if (anim === null) {
136
+ return;
137
+ }
138
+
139
+ // 生成OnFinalProgress处理监听,memo在 _WrapBuildAnimation()处理后生成,因为build处理中可能改变tos
140
+ const memo_tos = [...tos];
141
+ const that = this;
142
+ const listener = new Forge.AnimationListener().OnFinalProgress(
143
+ (progress) => {
144
+ that._OnPaused(
145
+ repeat_starts !== null ? repeat_starts : froms,
146
+ memo_tos,
147
+ progress,
148
+ start_params
149
+ );
150
+ }
151
+ );
152
+
153
+ this._WrapAddExtraListener(listener, start_params);
154
+
155
+ anim.AddAnimationListener(listener);
156
+ anim.Enable(Forge.AnimationEnable.KeepTransform);
157
+ if (this._Repeat) {
158
+ anim.EnableInfinite();
159
+ }
160
+ this._SpriteView.StartAnimation(anim);
161
+
162
+ return true; // success
163
+ }
164
+
165
+ _StopAnimation() {
166
+ this._SpriteView.StopAnimation();
167
+ }
168
+
169
+ _OnPaused(froms, tos, progress, start_params) {
170
+ // 根据froms, tos, progress信息更新this._Current
171
+ this._WrapReCalculateCurrent(froms, tos, progress, start_params);
172
+
173
+ this._StateLocked = true; // 阻止在callback中触发的状态变化
174
+
175
+ // 标识状态为暂停,使回调中执行pause处理时能立刻得到pauseCallback
176
+ this._StateIndex = 0;
177
+
178
+ // 换出callbacks,回调时可能加入新的callbacks
179
+ const paused_callback = this._PausedCallback;
180
+ const ended_callback = this._EndCallback;
181
+ this._PausedCallback = null;
182
+ this._EndCallback = null;
183
+
184
+ // 回调所有callback
185
+ if (paused_callback) {
186
+ // Paused callback
187
+ this._CallbackWithCatch(this._Current, paused_callback, start_params);
188
+ }
189
+ if (ended_callback && progress === 1) {
190
+ // Ended callback
191
+ this._CallbackWithCatch(this._Current, ended_callback, start_params);
192
+ }
193
+
194
+ this._StateLocked = false;
195
+
196
+ this._StateMachineNext(); // Trigger next start
197
+ }
198
+
199
+ _SetView(jsv_view) {
200
+ this._SpriteView = jsv_view;
201
+ }
202
+ }
203
+
204
+ export default ActorControlBase;
@@ -1,64 +1,64 @@
1
- <!--
2
- * @Author: ChenChanghua
3
- * @Date: 2021-10-20 17:21:21
4
- * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2021-11-18 16:45:05
6
- * @Description: file content
7
- -->
8
-
9
- <!--
10
- * 【模块 export 内容】
11
- * JsvActorMove:React高阶组件,单轴(X 或 Y)运动控制控件,可控制完成单方向的匀速运动和变速运动(抛物运动),
12
- * 若想进行X和Y轴同时的运动,可以通过运动分解后的两个JsvActorMove进行组合来实现
13
- * props说明:
14
- * control {JsvActorMoveControl} JsvActorMove控制器实体,通过new JsvActorMoveControl()生成,说明见下文
15
- *
16
- * JsvActorMoveControl: 面向对象的类,JsvActorMove控制器
17
- * 功能函数:(参数说明见函数本体)
18
- * moveToX(target_x, speed, end_callback)
19
- * 功能:延X轴进行匀速运动
20
- * moveToY(target_y, speed, end_callback)
21
- * 功能:延Y轴进行匀速运动
22
- * repeatMoveAlongX(target_x, speed, repeat_start, repeat_callback)
23
- * 功能:延X轴进行重复匀速运动
24
- * repeatMoveAlongY(target_y, speed, repeat_start, repeat_callback)
25
- * 功能:延Y轴进行重复匀速运动
26
- * throwAlongX(init_v, acc, end_condition, end_callback, pole_callback)
27
- * 功能:延X轴进行回旋运动
28
- * throwAlongY(init_v, acc, end_condition, end_callback, pole_callback)
29
- * 功能:延Y轴进行回旋运动(例如Y轴抛物运动)
30
- * jumpTo(new_x, new_y)
31
- * 功能:直接将JsvActorMove移动到目标位置,无中间运动动画
32
- * pause(pause_callback)
33
- * 功能:暂停动画,并将JsvActorMove保持在暂停的位置上
34
-
35
- -->
36
- <script>
37
- import JsvActorMoveControl from "./JsvActorMoveControl";
38
- export default {
39
- props: {
40
- control: {
41
- type: JsvActorMoveControl,
42
- required: true,
43
- },
44
- refDefine: Object,
45
- },
46
- mounted() {
47
- this.control._SetView(this.$refs.element.jsvMainView);
48
- if (this.refDefine) {
49
- const type = typeof this.refDefine;
50
- if (type === "object") {
51
- type.current = this.$refs.element;
52
- } else if (type === "function") {
53
- this.refDefine(this.$refs.element);
54
- }
55
- }
56
- },
57
- };
58
- </script>
59
-
60
- <template>
61
- <div ref="element">
62
- <slot></slot>
63
- </div>
1
+ <!--
2
+ * @Author: ChenChanghua
3
+ * @Date: 2021-10-20 17:21:21
4
+ * @LastEditors: ChenChanghua
5
+ * @LastEditTime: 2021-11-18 16:45:05
6
+ * @Description: file content
7
+ -->
8
+
9
+ <!--
10
+ * 【模块 export 内容】
11
+ * JsvActorMove:React高阶组件,单轴(X 或 Y)运动控制控件,可控制完成单方向的匀速运动和变速运动(抛物运动),
12
+ * 若想进行X和Y轴同时的运动,可以通过运动分解后的两个JsvActorMove进行组合来实现
13
+ * props说明:
14
+ * control {JsvActorMoveControl} JsvActorMove控制器实体,通过new JsvActorMoveControl()生成,说明见下文
15
+ *
16
+ * JsvActorMoveControl: 面向对象的类,JsvActorMove控制器
17
+ * 功能函数:(参数说明见函数本体)
18
+ * moveToX(target_x, speed, end_callback)
19
+ * 功能:延X轴进行匀速运动
20
+ * moveToY(target_y, speed, end_callback)
21
+ * 功能:延Y轴进行匀速运动
22
+ * repeatMoveAlongX(target_x, speed, repeat_start, repeat_callback)
23
+ * 功能:延X轴进行重复匀速运动
24
+ * repeatMoveAlongY(target_y, speed, repeat_start, repeat_callback)
25
+ * 功能:延Y轴进行重复匀速运动
26
+ * throwAlongX(init_v, acc, end_condition, end_callback, pole_callback)
27
+ * 功能:延X轴进行回旋运动
28
+ * throwAlongY(init_v, acc, end_condition, end_callback, pole_callback)
29
+ * 功能:延Y轴进行回旋运动(例如Y轴抛物运动)
30
+ * jumpTo(new_x, new_y)
31
+ * 功能:直接将JsvActorMove移动到目标位置,无中间运动动画
32
+ * pause(pause_callback)
33
+ * 功能:暂停动画,并将JsvActorMove保持在暂停的位置上
34
+
35
+ -->
36
+ <script>
37
+ import JsvActorMoveControl from "./JsvActorMoveControl";
38
+ export default {
39
+ props: {
40
+ control: {
41
+ type: JsvActorMoveControl,
42
+ required: true,
43
+ },
44
+ refDefine: Object,
45
+ },
46
+ mounted() {
47
+ this.control._SetView(this.$refs.element.jsvMainView);
48
+ if (this.refDefine) {
49
+ const type = typeof this.refDefine;
50
+ if (type === "object") {
51
+ type.current = this.$refs.element;
52
+ } else if (type === "function") {
53
+ this.refDefine(this.$refs.element);
54
+ }
55
+ }
56
+ },
57
+ };
58
+ </script>
59
+
60
+ <template>
61
+ <div ref="element">
62
+ <slot></slot>
63
+ </div>
64
64
  </template>