@shijiu/jsview-vue 0.0.1-beta.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.
Files changed (252) hide show
  1. package/docs/IMPORT_CHANGE_LOG.txt +3 -0
  2. package/docs/git_commit.md +15 -0
  3. package/docs/test_version_up.txt +1 -0
  4. package/dom/bin/jsview-dom-1.0.313.tgz +0 -0
  5. package/dom/browser-root-style.css +21 -0
  6. package/dom/jsv-browser-debug-dom.js +8 -0
  7. package/dom/jsv-dom.js +6 -0
  8. package/dom/jsv-forge-define.js +6 -0
  9. package/dom/target_core_revision.js +14 -0
  10. package/load/header_script_loader.js +134 -0
  11. package/load/jsview-main.js +42 -0
  12. package/load/jsview.config.default.js +37 -0
  13. package/load/jsview.default.config.js +37 -0
  14. package/load/loader.js +172 -0
  15. package/load/loader_webkit.js +40 -0
  16. package/package.json +27 -0
  17. package/patch/node_modules/@babel/preset-env/lib/available-plugins.js +219 -0
  18. package/patch/node_modules/@vue/cli-plugin-typescript/index.js +100 -0
  19. package/patch/node_modules/@vue/cli-service/lib/commands/serve.js +395 -0
  20. package/patch/node_modules/@vue/cli-service/lib/config/app.js +272 -0
  21. package/patch/node_modules/@vue/cli-service/lib/config/assets.js +70 -0
  22. package/patch/node_modules/@vue/cli-service/lib/config/base.js +212 -0
  23. package/patch/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +2566 -0
  24. package/patch/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +274 -0
  25. package/patch/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +1596 -0
  26. package/patch/node_modules/postcss-js/objectifier.js +90 -0
  27. package/patch/node_modules/vue-loader/dist/resolveScript.js +70 -0
  28. package/patch/package-lock.json +30051 -0
  29. package/samples/AdvanceMetroWidget/App.vue +123 -0
  30. package/samples/AdvanceMetroWidget/Frame.vue +101 -0
  31. package/samples/AdvanceMetroWidget/Item.vue +58 -0
  32. package/samples/AdvanceMetroWidget/data.js +137 -0
  33. package/samples/AnimPicture/App.vue +224 -0
  34. package/samples/AnimPicture/assets/animated_webp.webp +0 -0
  35. package/samples/AnimPicture/assets/ball_3.webp +0 -0
  36. package/samples/AnimPicture/assets/girl_run.gif +0 -0
  37. package/samples/AnimPicture/assets/quan.webp +0 -0
  38. package/samples/Basic/App.vue +129 -0
  39. package/samples/Basic/assets/border.png +0 -0
  40. package/samples/Basic/assets/border2.png +0 -0
  41. package/samples/Basic/assets/icon.png +0 -0
  42. package/samples/Basic/assets/test.jpg +0 -0
  43. package/samples/Basic/components/ContentBlock.vue +36 -0
  44. package/samples/Basic/components/FontStyle.css +10 -0
  45. package/samples/Basic/components/TitleBar.vue +29 -0
  46. package/samples/Basic/components/anim/AnimGroup.vue +68 -0
  47. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +102 -0
  48. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +53 -0
  49. package/samples/Basic/components/anim/AnimTransition.vue +116 -0
  50. package/samples/Basic/components/div/DivBackground.vue +15 -0
  51. package/samples/Basic/components/div/DivClip.vue +81 -0
  52. package/samples/Basic/components/div/DivCssScoped.vue +27 -0
  53. package/samples/Basic/components/div/DivCssVar.vue +50 -0
  54. package/samples/Basic/components/div/DivGroup1.vue +33 -0
  55. package/samples/Basic/components/div/DivGroup2.vue +41 -0
  56. package/samples/Basic/components/div/DivLayout.vue +12 -0
  57. package/samples/Basic/components/div/DivRadius.vue +47 -0
  58. package/samples/Basic/components/text/TextAlign.vue +48 -0
  59. package/samples/Basic/components/text/TextFontStyle.vue +58 -0
  60. package/samples/Basic/components/text/TextGroup.vue +32 -0
  61. package/samples/Basic/components/text/TextOverflow.vue +78 -0
  62. package/samples/BasicFocusControl/App.vue +125 -0
  63. package/samples/BasicFocusControl/components/BaseBlock.vue +51 -0
  64. package/samples/BasicFocusControl/components/MainArea.vue +98 -0
  65. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +21 -0
  66. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +30 -0
  67. package/samples/BasicFocusControl/components/SideBar.vue +73 -0
  68. package/samples/BasicFocusControl/components/SideBarBlock.vue +30 -0
  69. package/samples/ClassNameDemo/App.vue +119 -0
  70. package/samples/ClassNameDemo/assets/bg.jpg +0 -0
  71. package/samples/ClassNameDemo/assets/coupon_content.png +0 -0
  72. package/samples/ClassNameDemo/assets/coupon_left.png +0 -0
  73. package/samples/ClassNameDemo/assets/coupon_mid.png +0 -0
  74. package/samples/ClassNameDemo/assets/coupon_right.png +0 -0
  75. package/samples/ClassNameDemo/assets/focus_border.png +0 -0
  76. package/samples/ClassNameDemo/assets/holder_logo.png +0 -0
  77. package/samples/ClassNameDemo/assets/jrbm.png +0 -0
  78. package/samples/ClassNameDemo/assets/line_left.png +0 -0
  79. package/samples/ClassNameDemo/assets/line_mid.png +0 -0
  80. package/samples/ClassNameDemo/assets/line_right.png +0 -0
  81. package/samples/ClassNameDemo/assets/loading.png +0 -0
  82. package/samples/ClassNameDemo/assets/logo.png +0 -0
  83. package/samples/ClassNameDemo/assets/mcjx.png +0 -0
  84. package/samples/ClassNameDemo/assets/tao.png +0 -0
  85. package/samples/ClassNameDemo/assets/tmall.png +0 -0
  86. package/samples/ClassNameDemo/components/ContentItem.vue +253 -0
  87. package/samples/ClassNameDemo/components/LoadingView.vue +43 -0
  88. package/samples/ClassNameDemo/components/TitleView.vue +24 -0
  89. package/samples/ClassNameDemo/data.js +24 -0
  90. package/samples/ColorSpace/App.vue +135 -0
  91. package/samples/ColorSpace/bmpDemo.bmp +0 -0
  92. package/samples/ColorSpace/jpegDemo.jpeg +0 -0
  93. package/samples/ColorSpace/pngDemo.png +0 -0
  94. package/samples/ColorSpace/pngNoAlphaDemo.png +0 -0
  95. package/samples/DemoHomepage/App.vue +31 -0
  96. package/samples/DemoHomepage/components/BodyFrame.vue +82 -0
  97. package/samples/DemoHomepage/components/Dialog.vue +94 -0
  98. package/samples/DemoHomepage/components/Item.vue +77 -0
  99. package/samples/DemoHomepage/components/TabFrame.vue +86 -0
  100. package/samples/DemoHomepage/router.js +132 -0
  101. package/samples/DemoHomepage/views/Homepage.vue +186 -0
  102. package/samples/FlipCard/App.vue +80 -0
  103. package/samples/FlipCard/FlipCard.vue +124 -0
  104. package/samples/FlipCard/assets/blue_egg.png +0 -0
  105. package/samples/FlipCard/assets/red_egg.png +0 -0
  106. package/samples/FlipCard/data.js +13 -0
  107. package/samples/FlowMultiWidget/App.vue +91 -0
  108. package/samples/FlowMultiWidget/assets/nine_patch_focus.png +0 -0
  109. package/samples/FlowMultiWidget/components/Block.vue +107 -0
  110. package/samples/FlowMultiWidget/components/FlowPage.vue +60 -0
  111. package/samples/FlowMultiWidget/components/Item.vue +103 -0
  112. package/samples/FlowMultiWidget/components/MenuItem.vue +72 -0
  113. package/samples/FlowMultiWidget/components/MyMenu.vue +90 -0
  114. package/samples/FlowMultiWidget/data.js +446 -0
  115. package/samples/HashHistory/App.vue +124 -0
  116. package/samples/HashHistory/components/HorizontalButtonList.vue +114 -0
  117. package/samples/HashHistory/components/Item.vue +74 -0
  118. package/samples/HashHistory/router.js +30 -0
  119. package/samples/HashHistory/views/BasePage.vue +19 -0
  120. package/samples/HashHistory/views/MainPage.vue +68 -0
  121. package/samples/HashHistory/views/SubPage.vue +79 -0
  122. package/samples/HashHistory/views/SubPageFirst.vue +10 -0
  123. package/samples/HashHistory/views/SubPageSecond.vue +10 -0
  124. package/samples/LongImage/App.vue +96 -0
  125. package/samples/LongImage/Button.vue +153 -0
  126. package/samples/LongImage/LongImageScroll.vue +127 -0
  127. package/samples/LongImage/Scroll.vue +16 -0
  128. package/samples/LongImage/assets/1280x7200.jpg +0 -0
  129. package/samples/LongText/App.vue +111 -0
  130. package/samples/LongText/Button.vue +153 -0
  131. package/samples/LongText/LongTextScroll.vue +225 -0
  132. package/samples/LongText/Scroll.vue +16 -0
  133. package/samples/Preload/App.vue +146 -0
  134. package/samples/Preload/data.js +23 -0
  135. package/samples/Preload/images/awesomeface.png +0 -0
  136. package/samples/Preload/images/cat.jpg +0 -0
  137. package/samples/Preload/images/rank.png +0 -0
  138. package/samples/Preload/images/rank_focus.png +0 -0
  139. package/samples/Preload/images/rule.png +0 -0
  140. package/samples/Preload/images/rule_focus.png +0 -0
  141. package/samples/Preload/images/start.png +0 -0
  142. package/samples/Preload/images/start_focus.png +0 -0
  143. package/samples/Preload/preloadItem.vue +22 -0
  144. package/samples/QrcodeDemo/App.vue +73 -0
  145. package/samples/SimpleWidgetDemo/App.vue +204 -0
  146. package/samples/SimpleWidgetDemo/Item.vue +83 -0
  147. package/samples/SimpleWidgetDemo/assets/bg.jpg +0 -0
  148. package/samples/SimpleWidgetDemo/assets/coupon_content.png +0 -0
  149. package/samples/SimpleWidgetDemo/assets/coupon_left.png +0 -0
  150. package/samples/SimpleWidgetDemo/assets/coupon_mid.png +0 -0
  151. package/samples/SimpleWidgetDemo/assets/coupon_right.png +0 -0
  152. package/samples/SimpleWidgetDemo/assets/focus_border.png +0 -0
  153. package/samples/SimpleWidgetDemo/assets/holder_logo.png +0 -0
  154. package/samples/SimpleWidgetDemo/assets/jrbm.png +0 -0
  155. package/samples/SimpleWidgetDemo/assets/line_left.png +0 -0
  156. package/samples/SimpleWidgetDemo/assets/line_mid.png +0 -0
  157. package/samples/SimpleWidgetDemo/assets/line_right.png +0 -0
  158. package/samples/SimpleWidgetDemo/assets/loading.png +0 -0
  159. package/samples/SimpleWidgetDemo/assets/logo.png +0 -0
  160. package/samples/SimpleWidgetDemo/assets/mcjx.png +0 -0
  161. package/samples/SimpleWidgetDemo/assets/tao.png +0 -0
  162. package/samples/SimpleWidgetDemo/assets/tmall.png +0 -0
  163. package/samples/SimpleWidgetDemo/border.png +0 -0
  164. package/samples/SimpleWidgetDemo/components/ContentItem.vue +412 -0
  165. package/samples/SimpleWidgetDemo/components/MyTab.vue +117 -0
  166. package/samples/SimpleWidgetDemo/data.js +110 -0
  167. package/samples/SprayView/App.vue +270 -0
  168. package/samples/SprayView/assets/snow.png +0 -0
  169. package/samples/SpriteImage/App.vue +174 -0
  170. package/samples/SpriteImage/images/cat_run.png +0 -0
  171. package/samples/SpriteImage/images/egg_break.json +116 -0
  172. package/samples/SpriteImage/images/egg_break.png +0 -0
  173. package/samples/SpriteImage/images/sprite.png +0 -0
  174. package/samples/TextBox/App.vue +179 -0
  175. package/samples/TextBox/RenderCenter.vue +109 -0
  176. package/samples/TextBox/RenderLeft.vue +109 -0
  177. package/samples/TextBox/RenderOneLine.vue +120 -0
  178. package/samples/TextBox/RenderRight.vue +107 -0
  179. package/samples/TextShadowDemo/App.vue +98 -0
  180. package/samples/TextureSize/App.vue +142 -0
  181. package/samples/TextureSize/bmpDemo.bmp +0 -0
  182. package/samples/TextureSize/jpegDemo.jpeg +0 -0
  183. package/samples/TextureSize/jpgDemo.jpg +0 -0
  184. package/samples/TextureSize/pngDemo.png +0 -0
  185. package/samples/TextureSize/pngNoAlphaDemo.png +0 -0
  186. package/samples/ThrowMoveDemo/AccelerateDemo.vue +118 -0
  187. package/samples/ThrowMoveDemo/App.vue +114 -0
  188. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +116 -0
  189. package/samples/ThrowMoveDemo/TargetDemo.vue +117 -0
  190. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +122 -0
  191. package/samples/TransitPage/App.vue +41 -0
  192. package/samples/VideoDemo/App.vue +137 -0
  193. package/samples/VideoDemo/components/Button.vue +69 -0
  194. package/samples/VideoDemo/components/Controllor.vue +195 -0
  195. package/samples/VideoDemo/components/VideoFrame.vue +152 -0
  196. package/scripts/git-commit-empty.js +21 -0
  197. package/scripts/install-local-packages.js +121 -0
  198. package/scripts/make-js.sh +181 -0
  199. package/scripts/post-build.js +132 -0
  200. package/scripts/post-install.js +127 -0
  201. package/scripts/pre-pack.js +2 -0
  202. package/scripts/run-android.js +64 -0
  203. package/utils/JsViewEngineWidget/bin/shijiu-jsview-vue-widget-1.0.1.tgz +0 -0
  204. package/utils/JsViewEngineWidget/index.d.ts +32 -0
  205. package/utils/JsViewEngineWidget/index.js +6 -0
  206. package/utils/JsViewVueTools/DebugContentShellJBridge.js +16 -0
  207. package/utils/JsViewVueTools/DebugTool.js +21 -0
  208. package/utils/JsViewVueTools/DefaultKeyMap.js +12 -0
  209. package/utils/JsViewVueTools/JsvDynamicCssStyle.js +73 -0
  210. package/utils/JsViewVueTools/JsvDynamicKeyFrames.js +128 -0
  211. package/utils/JsViewVueTools/JsvHashHistory.js +112 -0
  212. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -0
  213. package/utils/JsViewVueTools/JsvStyleClass.js +290 -0
  214. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -0
  215. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +148 -0
  216. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +55 -0
  217. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +29 -0
  218. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +124 -0
  219. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -0
  220. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -0
  221. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -0
  222. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -0
  223. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -0
  224. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -0
  225. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -0
  226. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetWrapper.js +11 -0
  227. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -0
  228. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +64 -0
  229. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +427 -0
  230. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -0
  231. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +179 -0
  232. package/utils/JsViewVueWidget/JsvApic/index.js +17 -0
  233. package/utils/JsViewVueWidget/JsvMarquee.vue +197 -0
  234. package/utils/JsViewVueWidget/JsvNativeSharedDiv.vue +92 -0
  235. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -0
  236. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +351 -0
  237. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -0
  238. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -0
  239. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -0
  240. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +140 -0
  241. package/utils/JsViewVueWidget/JsvSpray/index.js +15 -0
  242. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +448 -0
  243. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +57 -0
  244. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -0
  245. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +35 -0
  246. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +495 -0
  247. package/utils/JsViewVueWidget/JsvSwiper/index.js +10 -0
  248. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +35 -0
  249. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +404 -0
  250. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +10 -0
  251. package/utils/JsViewVueWidget/JsvTextBox.vue +111 -0
  252. package/utils/JsViewVueWidget/JsvVideo.vue +36 -0
@@ -0,0 +1,270 @@
1
+ <!--
2
+ * @Author: ChenChanghua
3
+ * @Date: 2021-10-13 11:19:26
4
+ * @LastEditors: ChenChanghua
5
+ * @LastEditTime: 2021-10-18 14:21:18
6
+ * @Description: file content
7
+ -->
8
+ <script>
9
+ import JsvSpray from "jsview/utils/JsViewVueWidget/JsvSpray";
10
+ import snow from "./assets/snow.png";
11
+ const sprayOk = {
12
+ type: 0,
13
+ particleNum: 100,
14
+ deltaAngle: 180,
15
+ deltaWidth: 50,
16
+ deltaHeight: 50,
17
+ pointSizeMin: 20,
18
+ pointSizeMax: 30,
19
+ speedMin: 1,
20
+ speedMax: 7,
21
+ lifeMin: 1000,
22
+ lifeMax: 2000,
23
+ accelerateX: 0,
24
+ accelerateY: 0,
25
+ addNumSpeed: 0.001,
26
+ enableFade: true,
27
+ enableShrink: true,
28
+ };
29
+
30
+ const sprayRotate = {
31
+ type: 1,
32
+ particleNum: 100,
33
+ deltaAngle: 0,
34
+ deltaWidth: 0,
35
+ deltaHeight: 50,
36
+ pointSizeMin: 10,
37
+ pointSizeMax: 20,
38
+ speedMin: 5,
39
+ speedMax: 10,
40
+ lifeMin: 1000,
41
+ lifeMax: 3000,
42
+ accelerateX: 0,
43
+ accelerateY: -100,
44
+ addNumSpeed: 0.001,
45
+ enableFade: true,
46
+ enableShrink: false,
47
+ };
48
+
49
+ const sprayMove = {
50
+ type: 1,
51
+ particleNum: 100,
52
+ deltaAngle: 20,
53
+ deltaWidth: 50,
54
+ deltaHeight: 50,
55
+ pointSizeMin: 10,
56
+ pointSizeMax: 20,
57
+ speedMin: 5,
58
+ speedMax: 10,
59
+ lifeMin: 1000,
60
+ lifeMax: 3000,
61
+ accelerateX: -50,
62
+ accelerateY: -120,
63
+ addNumSpeed: 0.001,
64
+ enableFade: true,
65
+ enableShrink: true,
66
+ };
67
+
68
+ const sprayCycle = {
69
+ type: 1,
70
+ particleNum: 200,
71
+ deltaAngle: 20,
72
+ deltaWidth: 20,
73
+ deltaHeight: 20,
74
+ pointSizeMin: 10,
75
+ pointSizeMax: 20,
76
+ speedMin: 0,
77
+ speedMax: 0,
78
+ lifeMin: 1000,
79
+ lifeMax: 3000,
80
+ accelerateX: 0,
81
+ accelerateY: 0,
82
+ addNumSpeed: 0.001,
83
+ enableFade: true,
84
+ enableShrink: false,
85
+ };
86
+ export default {
87
+ components: {
88
+ JsvSpray,
89
+ },
90
+ data() {
91
+ return {
92
+ okCount: 0,
93
+ };
94
+ },
95
+ setup() {
96
+ return {
97
+ sprayOk,
98
+ sprayRotate,
99
+ sprayMove,
100
+ sprayCycle,
101
+ snow,
102
+ };
103
+ },
104
+ methods: {
105
+ onKeyDown(ev) {
106
+ if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
107
+ this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
108
+ return true;
109
+ }
110
+ switch (ev.keyCode) {
111
+ case 13:
112
+ this.okCount++;
113
+ break;
114
+ }
115
+ return true;
116
+ },
117
+ }
118
+ };
119
+ </script>
120
+
121
+ <template>
122
+ <div class="root">
123
+ <jsv-focus-block
124
+ autoFocus
125
+ :onAction="{
126
+ onKeyDown: onKeyDown,
127
+ }"
128
+ >
129
+ <div :style="{ top: 400, left: 200 }">
130
+ <div class="spray-ok">
131
+ <jsv-spray
132
+ v-if="okCount > 0"
133
+ :key="okCount"
134
+ :pointRes="`url(${snow})`"
135
+ :sprayStyle="sprayOk"
136
+ />
137
+ </div>
138
+ <div class="describe">
139
+ {{ `#摁OK键\n#粒子在方形内生成\n#初速度方向360度随机\n#无外力作用` }}
140
+ </div>
141
+ </div>
142
+ <div :style="{ top: 400, left: 600 }">
143
+ <div class="spray-rotate">
144
+ <jsv-spray pointRes="rgba(0, 255, 0, 1)" :sprayStyle="sprayRotate" />
145
+ </div>
146
+ <div class="describe">
147
+ {{ `#粒子沿长边随机生成\n#初速度沿长边方向\n#受竖直方向的力作用` }}
148
+ </div>
149
+ </div>
150
+ <div :style="{ top: 400, left: 1000 }">
151
+ <div class="spray-move">
152
+ <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayMove" />
153
+ </div>
154
+ <div class="describe">
155
+ {{
156
+ `#粒子在方形随机生成\n#初速度方向为竖直向上方向正负20度内随机\n#受水平方向和竖直方向的力作用`
157
+ }}
158
+ </div>
159
+ </div>
160
+ <div :style="{ top: 20, left: 400 }">
161
+ <div :style="{
162
+ width: 40,
163
+ height: 40,
164
+ animation: 'cycle 3s linear infinite',
165
+ }">
166
+ <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayCycle" />
167
+ </div>
168
+ <div
169
+ :style="{
170
+ top: 20,
171
+ width: 500,
172
+ height: 100,
173
+ lineHeight: '100px',
174
+ textAlign: 'center',
175
+ fontSize: '50px',
176
+ color: '#FFFFFF',
177
+ }"
178
+ >
179
+ 粒子效果
180
+ </div>
181
+ <div class="describe">
182
+ {{ `#粒子在方形随机生成\n#初速度为0\n#不受外力` }}
183
+ </div>
184
+ </div>
185
+ </jsv-focus-block>
186
+ </div>
187
+ </template>
188
+
189
+ <style scoped>
190
+ @keyframes move-back-force {
191
+ 0% {
192
+ transform: translate3d(0, 0, 0);
193
+ }
194
+ 25% {
195
+ transform: translate3d(100px, 0, 0);
196
+ }
197
+ 50% {
198
+ transform: translate3d(0, 0, 0);
199
+ }
200
+ 75% {
201
+ transform: translate3d(100px, 0, 0);
202
+ }
203
+ 100% {
204
+ transform: translate3d(0, 0, 0);
205
+ }
206
+ }
207
+
208
+ @keyframes rotate {
209
+ from {
210
+ transform: rotate3d(0, 0, 1, 0);
211
+ }
212
+ to {
213
+ transform: rotate3d(0, 0, 1, 360deg);
214
+ }
215
+ }
216
+
217
+ @keyframes cycle {
218
+ 0% {
219
+ transform: translate3d(0, 0, 0);
220
+ }
221
+ 25% {
222
+ transform: translate3d(500px, 0, 0);
223
+ }
224
+ 50% {
225
+ transform: translate3d(500px, 100px, 0);
226
+ }
227
+ 75% {
228
+ transform: translate3d(0, 100px, 0);
229
+ }
230
+ 100% {
231
+ transform: translate3d(0, 0, 0);
232
+ }
233
+ }
234
+ .root {
235
+ width: 1920px;
236
+ height: 1080px;
237
+ background-color: #334c4c;
238
+ }
239
+
240
+ .spray-ok {
241
+ width: 100px;
242
+ height: 100px;
243
+ background-color: #00ff00;
244
+ }
245
+ .spray-rotate {
246
+ width: 10px;
247
+ height: 100px;
248
+ background-color: #00ff00;
249
+ animation: rotate 3s linear infinite;
250
+ }
251
+ .spray-move {
252
+ width: 100px;
253
+ height: 100px;
254
+ background-color: #00ff00;
255
+ animation: move-back-force 10s linear infinite;
256
+ }
257
+ .spray-cycle {
258
+ width: 40px;
259
+ height: 40px;
260
+ animation: cycle 3s linear infinite;
261
+ }
262
+ .describe {
263
+ left: 0px;
264
+ top: 140px;
265
+ width: 250px;
266
+ height: 200px;
267
+ color: #ffffff;
268
+ font-size: 20px;
269
+ }
270
+ </style>
@@ -0,0 +1,174 @@
1
+ <!--
2
+ * 【界面概述】
3
+ * 展示精灵图的用法,包含动图和切图
4
+ *
5
+ * 【控件介绍】
6
+ * JsvSpriteImg:精灵图控件
7
+ * spriteInfo {object} (必需)精灵图配置信息{frames:[], meta:{}}
8
+ * viewSize {object} (必需){w:0, h:0}
9
+ * imageUrl {string} (必需)图片地址
10
+ * duration {float} (动图必需)动图的时间
11
+ * onAnimEnd {fucntion} 动图结束回调
12
+ * loop {string} 动图的循环次数 infinite/数字,默认为infinite
13
+ * spriteName {string} 动图的名称,默认为null
14
+ * autostart{boolean} 是否自动播放动图
15
+ * controller {SpriteController} 控制动图的对象
16
+ * stop(end_frame) 停止动画 end_frame: "start", "end"
17
+ * start() 开始动画
18
+ *
19
+ *
20
+ * 【技巧说明】
21
+ * Q: 动图和切图如何实现?
22
+ * A: spriteInfo中的frame有多个时为动图,只有一个时为切图
23
+ *
24
+ * Q: spriteInfo中属性的含义?
25
+ * A: meta.size为整张切图的大小;frames中为每一帧的位置和大小信息,目前仅支持统一大小的帧
26
+ -->
27
+
28
+ <script>
29
+ import JsvSpriteAnim from "../../utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue";
30
+ import { SpriteController } from "../../utils/JsViewVueWidget/JsvSpriteAnim/SpriteController";
31
+ import spriteImage from "./images/egg_break.png";
32
+ import config_json from "./images/egg_break.json";
33
+ export default {
34
+ components: {
35
+ JsvSpriteAnim,
36
+ },
37
+ setup() {
38
+ return {
39
+ spriteImage: spriteImage,
40
+ config_json: config_json,
41
+ };
42
+ },
43
+ data() {
44
+ console.log(
45
+ "test spriteImage =",
46
+ spriteImage,
47
+ "/n config_json=",
48
+ config_json
49
+ );
50
+ const sprite_info = this._formatInfo();
51
+ console.log("test sprite_into =", sprite_info);
52
+ const view_size = {
53
+ w: sprite_info.maxW,
54
+ h: sprite_info.maxH,
55
+ };
56
+ console.log("test view_size =", view_size);
57
+ return {
58
+ sprite_info,
59
+ view_size,
60
+ spriteController: new SpriteController(),
61
+ show: true,
62
+ };
63
+ },
64
+ methods: {
65
+ spriteAnimEnd() {
66
+ this.show = false;
67
+ },
68
+ onKeyDown(ev) {
69
+ if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
70
+ this.$router?.go(-1); // 有router时,是从DemoHomepage进入,回退
71
+ return true;
72
+ }
73
+ return true;
74
+ },
75
+ _formatInfo() {
76
+ const info = {
77
+ frames: [],
78
+ meta: {
79
+ size: this.config_json.meta.size,
80
+ },
81
+ };
82
+
83
+ let frames_ref = info.frames;
84
+ let max_width = 0;
85
+ let max_height = 0;
86
+
87
+ for (let i = 0; i < this.config_json.frames.length; i++) {
88
+ const target = this.config_json.frames[i].spriteSourceSize;
89
+ frames_ref.push({
90
+ target,
91
+ source: this.config_json.frames[i].frame,
92
+ });
93
+ const sprite_with = target.x + target.w;
94
+ const sprite_height = target.y + target.h;
95
+ if (sprite_with > max_width) {
96
+ max_width = sprite_with;
97
+ }
98
+ if (sprite_height > max_height) {
99
+ max_height = sprite_height;
100
+ }
101
+ }
102
+ return { info, maxW: max_width, maxH: max_height };
103
+ },
104
+ },
105
+ };
106
+ </script>
107
+
108
+ <template>
109
+ <jsv-focus-block
110
+ autoFocus
111
+ :onAction="{
112
+ onKeyDown: onKeyDown,
113
+ }"
114
+ >
115
+ <div
116
+ :style="{
117
+ textAlign: 'center',
118
+ fontSize: '30px',
119
+ lineHeight: '50px',
120
+ color: '#ffffff',
121
+ left: 200,
122
+ top: 100,
123
+ width: 434,
124
+ height: 50,
125
+ backgroundColor: 'rgba(27,38,151,0.8)',
126
+ }"
127
+ >
128
+ 精灵图效果
129
+ </div>
130
+ <!--
131
+ 通过show进行 清理精灵图,用于验证精灵图清理后,StyleSheet中cssRules的keyFrame清理工作能正常完成
132
+ -->
133
+ <div
134
+ v-if="this.show"
135
+ :style="{ left: 200, top: 150, transform: 'scale3d(2.5, 2.5, 1)' }"
136
+ >
137
+ <JsvSpriteAnim
138
+ :spriteInfo="sprite_info.info"
139
+ :loop="10"
140
+ :viewSize="view_size"
141
+ :duration="0.8"
142
+ :controller="this.spriteController"
143
+ :autostart="true"
144
+ :onAnimEnd="spriteAnimEnd"
145
+ :imageUrl="spriteImage"
146
+ />
147
+ </div>
148
+
149
+ <div
150
+ :style="{
151
+ textAlign: 'center',
152
+ fontSize: '30px',
153
+ lineHeight: '50px',
154
+ color: '#ffffff',
155
+ left: 700,
156
+ top: 100,
157
+ width: 434,
158
+ height: 50,
159
+ backgroundColor: 'rgba(27,38,151,0.8)',
160
+ }"
161
+ >
162
+ 原始图片
163
+ </div>
164
+ <div
165
+ :style="{
166
+ left: 700,
167
+ top: 150,
168
+ width: 434,
169
+ height: 372,
170
+ backgroundImage: `url(${spriteImage})`,
171
+ }"
172
+ />
173
+ </jsv-focus-block>
174
+ </template>
@@ -0,0 +1,116 @@
1
+ {"frames": [
2
+
3
+ {
4
+ "filename": "image_00.png",
5
+ "frame": {"x":104,"y":2,"w":50,"h":64},
6
+ "rotated": false,
7
+ "trimmed": false,
8
+ "spriteSourceSize": {"x":53,"y":43,"w":50,"h":64},
9
+ "sourceSize": {"w":50,"h":64}
10
+ },
11
+ {
12
+ "filename": "image_01.png",
13
+ "frame": {"x":2,"y":2,"w":48,"h":64},
14
+ "rotated": false,
15
+ "trimmed": false,
16
+ "spriteSourceSize": {"x":55,"y":43,"w":48,"h":64},
17
+ "sourceSize": {"w":48,"h":64}
18
+ },
19
+ {
20
+ "filename": "image_02.png",
21
+ "frame": {"x":52,"y":2,"w":50,"h":64},
22
+ "rotated": false,
23
+ "trimmed": false,
24
+ "spriteSourceSize": {"x":55,"y":43,"w":50,"h":64},
25
+ "sourceSize": {"w":50,"h":64}
26
+ },
27
+ {
28
+ "filename": "image_03.png",
29
+ "frame": {"x":274,"y":2,"w":64,"h":74},
30
+ "rotated": false,
31
+ "trimmed": false,
32
+ "spriteSourceSize": {"x":54,"y":33,"w":64,"h":74},
33
+ "sourceSize": {"w":64,"h":74}
34
+ },
35
+ {
36
+ "filename": "image_04.png",
37
+ "frame": {"x":156,"y":2,"w":56,"h":72},
38
+ "rotated": false,
39
+ "trimmed": false,
40
+ "spriteSourceSize": {"x":47,"y":44,"w":56,"h":72},
41
+ "sourceSize": {"w":56,"h":72}
42
+ },
43
+ {
44
+ "filename": "image_05.png",
45
+ "frame": {"x":214,"y":2,"w":58,"h":84},
46
+ "rotated": false,
47
+ "trimmed": false,
48
+ "spriteSourceSize": {"x":46,"y":44,"w":58,"h":84},
49
+ "sourceSize": {"w":58,"h":84}
50
+ },
51
+ {
52
+ "filename": "image_06.png",
53
+ "frame": {"x":2,"y":88,"w":92,"h":106},
54
+ "rotated": false,
55
+ "trimmed": false,
56
+ "spriteSourceSize": {"x":32,"y":32,"w":92,"h":106},
57
+ "sourceSize": {"w":92,"h":106}
58
+ },
59
+ {
60
+ "filename": "image_07.png",
61
+ "frame": {"x":2,"y":228,"w":142,"h":140},
62
+ "rotated": false,
63
+ "trimmed": false,
64
+ "spriteSourceSize": {"x":8,"y":20,"w":142,"h":140},
65
+ "sourceSize": {"w":142,"h":140}
66
+ },
67
+ {
68
+ "filename": "image_08.png",
69
+ "frame": {"x":146,"y":228,"w":142,"h":140},
70
+ "rotated": false,
71
+ "trimmed": false,
72
+ "spriteSourceSize": {"x":8,"y":20,"w":142,"h":140},
73
+ "sourceSize": {"w":142,"h":140}
74
+ },
75
+ {
76
+ "filename": "image_09.png",
77
+ "frame": {"x":290,"y":228,"w":142,"h":140},
78
+ "rotated": false,
79
+ "trimmed": false,
80
+ "spriteSourceSize": {"x":8,"y":20,"w":142,"h":140},
81
+ "sourceSize": {"w":142,"h":140}
82
+ },
83
+ {
84
+ "filename": "image_10.png",
85
+ "frame": {"x":190,"y":88,"w":136,"h":138},
86
+ "rotated": false,
87
+ "trimmed": false,
88
+ "spriteSourceSize": {"x":11,"y":21,"w":136,"h":138},
89
+ "sourceSize": {"w":136,"h":138}
90
+ },
91
+ {
92
+ "filename": "image_11.png",
93
+ "frame": {"x":96,"y":88,"w":92,"h":88},
94
+ "rotated": false,
95
+ "trimmed": false,
96
+ "spriteSourceSize": {"x":33,"y":26,"w":92,"h":88},
97
+ "sourceSize": {"w":92,"h":88}
98
+ },
99
+ {
100
+ "filename": "image_12.png",
101
+ "frame": {"x":340,"y":2,"w":88,"h":84},
102
+ "rotated": false,
103
+ "trimmed": false,
104
+ "spriteSourceSize": {"x":35,"y":26,"w":88,"h":84},
105
+ "sourceSize": {"w":88,"h":84}
106
+ }],
107
+ "meta": {
108
+ "app": "http://www.texturepacker.com",
109
+ "version": "1.0",
110
+ "image": "egg_1.png",
111
+ "format": "RGBA8888",
112
+ "size": {"w":434,"h":372},
113
+ "scale": "1",
114
+ "smartupdate": "$TexturePacker:SmartUpdate:3ca02d63806cac6ee77822c5f378c4f3$"
115
+ }
116
+ }