@shijiu/jsview-vue-samples 2.2.426-test.0 → 2.3.151-test.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 (246) hide show
  1. package/BakeViewDemo/AnimatePic.vue +1 -1
  2. package/Basic/components/text/TextDirection.vue +7 -1
  3. package/BasicFocusControl/components/BaseBlock.vue +65 -18
  4. package/BreakRender/assets/imageList.json +235 -235
  5. package/ColorSpace/App.vue +2 -2
  6. package/CoupletsTest/App.vue +1 -1
  7. package/CoupletsTest/widget/Banger/Banger.vue +3 -3
  8. package/CoupletsTest/widget/Banger/MaroonLoader.vue +5 -5
  9. package/CoupletsTest/widget/Couplets/Couplets.vue +4 -4
  10. package/CoupletsTest/widget/Fireworks/Fireworks.vue +13 -13
  11. package/CustomShader/App.vue +4 -4
  12. package/CustomShader/gaussianBlur.glsl +1 -1
  13. package/DashPath/App.vue +80 -0
  14. package/DashPath/AppForOperator.vue +33 -0
  15. package/DemoForOperator/AnimPic/AnimPic.vue +69 -0
  16. package/DemoForOperator/AnimPic/App.vue +28 -0
  17. package/DemoForOperator/Banger/App.vue +26 -0
  18. package/DemoForOperator/Banger/Banger/Banger.vue +316 -0
  19. package/DemoForOperator/Banger/Banger/Maroon.vue +123 -0
  20. package/DemoForOperator/Banger/Banger/MaroonLoader.vue +78 -0
  21. package/DemoForOperator/Banger/Banger/SpriteDeal.js +30 -0
  22. package/DemoForOperator/Blur/Blur.vue +146 -0
  23. package/DemoForOperator/Blur/BlurInOut/BlurInOut.vue +158 -0
  24. package/DemoForOperator/Blur/BlurInOut/StaticBgSlide.vue +162 -0
  25. package/DemoForOperator/Blur/BlurPopup/BlurPopup.vue +113 -0
  26. package/DemoForOperator/BookFlip/App.vue +115 -0
  27. package/DemoForOperator/BookFlip/BookFlip/FlipPage.vue +179 -0
  28. package/DemoForOperator/BookFlip/BookFlip/FlippingBook.vue +310 -0
  29. package/DemoForOperator/BookFlip/BookFlip/flip.glsl +135 -0
  30. package/DemoForOperator/BookFlip/BookPage.vue +82 -0
  31. package/DemoForOperator/Bounce/App.vue +43 -0
  32. package/DemoForOperator/Bounce/Bounce.vue +81 -0
  33. package/DemoForOperator/Bounce/FreeMoveBuilder.js +139 -0
  34. package/DemoForOperator/ChunLian/App.vue +47 -0
  35. package/DemoForOperator/ChunLian/Couplets.vue +291 -0
  36. package/DemoForOperator/ClickSpriteAnim/App.vue +130 -0
  37. package/DemoForOperator/ClickSpriteAnim/Item.vue +74 -0
  38. package/DemoForOperator/DominantColor/App.vue +187 -0
  39. package/DemoForOperator/EpisodeList/App.vue +80 -0
  40. package/DemoForOperator/EpisodeList/EpisodeList/Controller.vue +110 -0
  41. package/DemoForOperator/EpisodeList/EpisodeList/EpisodeList.vue +250 -0
  42. package/DemoForOperator/EpisodeList/GroupItem.vue +65 -0
  43. package/DemoForOperator/EpisodeList/ListItem.vue +48 -0
  44. package/DemoForOperator/Firework1/App.vue +25 -0
  45. package/DemoForOperator/Firework1/Fireworks.vue +397 -0
  46. package/DemoForOperator/Firework1/SpriteDeal.js +30 -0
  47. package/DemoForOperator/FlipPage/App.vue +75 -0
  48. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +178 -0
  49. package/DemoForOperator/FlipPage/FlipPage/flipIn.glsl +41 -0
  50. package/DemoForOperator/FlipPage/FlipPage/flipOut.glsl +41 -0
  51. package/DemoForOperator/Focus/Alpha/AlphaFocusBox.vue +95 -0
  52. package/DemoForOperator/Focus/Alpha/AlphaPage.vue +40 -0
  53. package/DemoForOperator/Focus/Alpha/Item.vue +64 -0
  54. package/DemoForOperator/Focus/App.vue +124 -0
  55. package/DemoForOperator/Focus/CommonPageSetting.js +30 -0
  56. package/DemoForOperator/Focus/Item.vue +46 -0
  57. package/DemoForOperator/Focus/Light/Item.vue +67 -0
  58. package/DemoForOperator/Focus/Light/LightFocusBox.vue +87 -0
  59. package/DemoForOperator/Focus/Light/LightPage.vue +43 -0
  60. package/DemoForOperator/Focus/Light/utils/FrameCanvasStore.ts +68 -0
  61. package/DemoForOperator/Focus/Light/utils/RotateFrame.vue +146 -0
  62. package/DemoForOperator/Focus/Light/utils/circleHaloMask.png +0 -0
  63. package/DemoForOperator/Focus/Normal/Item.vue +64 -0
  64. package/DemoForOperator/Focus/Normal/NormalFocusBox.vue +65 -0
  65. package/DemoForOperator/Focus/Normal/NormalPage.vue +41 -0
  66. package/DemoForOperator/Focus/SwipeLight/Item.vue +73 -0
  67. package/DemoForOperator/Focus/SwipeLight/SwipeLightBox.vue +62 -0
  68. package/DemoForOperator/Focus/SwipeLight/SwipeLightPage.vue +44 -0
  69. package/DemoForOperator/FrameShadow/App.vue +193 -0
  70. package/DemoForOperator/FrameShadow/FrameShadow.vue +61 -0
  71. package/DemoForOperator/FullscreenIn/App.vue +105 -0
  72. package/DemoForOperator/FullscreenIn/FullscreenPoster.vue +56 -0
  73. package/DemoForOperator/FullscreenIn/Item.vue +50 -0
  74. package/DemoForOperator/Genie/App.vue +78 -0
  75. package/DemoForOperator/Genie/geniePakcer/Genie.vue +741 -0
  76. package/DemoForOperator/Genie/geniePakcer/genieBottom.glsl +49 -0
  77. package/DemoForOperator/Genie/geniePakcer/genieLeft.glsl +50 -0
  78. package/DemoForOperator/Genie/geniePakcer/genieRight.glsl +57 -0
  79. package/DemoForOperator/Genie/geniePakcer/genieTop.glsl +50 -0
  80. package/DemoForOperator/GrayFilter/App.vue +51 -0
  81. package/DemoForOperator/GrayFilter/GrayFilter.vue +59 -0
  82. package/DemoForOperator/Jigsaw/App.vue +45 -0
  83. package/DemoForOperator/Jigsaw/JigsawFull.vue +142 -0
  84. package/DemoForOperator/Jigsaw/JigsawSingle.vue +118 -0
  85. package/DemoForOperator/LongChatBox/App.vue +36 -0
  86. package/DemoForOperator/LongChatBox/Bubble.vue +104 -0
  87. package/DemoForOperator/LongChatBox/LongChat.vue +173 -0
  88. package/DemoForOperator/LongChatBox/TextManager.ts +147 -0
  89. package/DemoForOperator/LongChatBox/VirtualList.vue +298 -0
  90. package/DemoForOperator/LongChatBox/testData.js +51 -0
  91. package/DemoForOperator/LongChatBox/utile.js +331 -0
  92. package/DemoForOperator/Particle/App.vue +69 -0
  93. package/DemoForOperator/Particle/Drop/DropParticle.vue +208 -0
  94. package/DemoForOperator/Particle/Explode/ExplodeParticle.vue +120 -0
  95. package/DemoForOperator/PosterAnim/App.vue +125 -0
  96. package/DemoForOperator/PosterAnim/Bounce/BouncePage.vue +54 -0
  97. package/DemoForOperator/PosterAnim/Bounce/Item.vue +85 -0
  98. package/DemoForOperator/PosterAnim/Breath/BreathPage.vue +47 -0
  99. package/DemoForOperator/PosterAnim/Breath/Item.vue +58 -0
  100. package/DemoForOperator/PosterAnim/CommonPageSetting.js +30 -0
  101. package/DemoForOperator/PosterAnim/Item.vue +46 -0
  102. package/DemoForOperator/PosterAnim/PosterAnim.js +79 -0
  103. package/DemoForOperator/PosterAnim/Scale/Item.vue +72 -0
  104. package/DemoForOperator/PosterAnim/Scale/ScalePage.vue +48 -0
  105. package/DemoForOperator/PosterAnim/Shake/Item.vue +85 -0
  106. package/DemoForOperator/PosterAnim/Shake/ShakePage.vue +53 -0
  107. package/DemoForOperator/PosterOverflow/App.vue +116 -0
  108. package/DemoForOperator/PosterOverflow/Item.vue +67 -0
  109. package/DemoForOperator/PosterOverflow/PosterOverflow.vue +39 -0
  110. package/DemoForOperator/Resize/App.vue +157 -0
  111. package/DemoForOperator/Resize/Resize/Item.vue +234 -0
  112. package/DemoForOperator/Resize/Resize/Resize.vue +96 -0
  113. package/DemoForOperator/Ripple/App.vue +54 -0
  114. package/DemoForOperator/Ripple/Ripple.vue +65 -0
  115. package/DemoForOperator/ScreenShootScale/App.vue +96 -0
  116. package/DemoForOperator/ScreenShootScale/Back.vue +86 -0
  117. package/DemoForOperator/ScreenShootScale/Front.vue +133 -0
  118. package/DemoForOperator/ScreenShootScale/Item.vue +62 -0
  119. package/DemoForOperator/ScreenShootScale/ScreenShootScale.vue +109 -0
  120. package/DemoForOperator/SmoothSwiper/App.vue +50 -0
  121. package/DemoForOperator/Sound/Bounce/App.vue +56 -0
  122. package/DemoForOperator/Sound/Bounce/Bounce.vue +87 -0
  123. package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +146 -0
  124. package/DemoForOperator/Sound/Bounce/bgmusic.mp3 +0 -0
  125. package/DemoForOperator/Sound/Bounce/coin.mp3 +0 -0
  126. package/DemoForOperator/Sound/FocusMove/App.vue +134 -0
  127. package/DemoForOperator/Sound/FocusMove/Item.vue +43 -0
  128. package/DemoForOperator/Sound/FocusMove/move.mp3 +0 -0
  129. package/DemoForOperator/Sound/Rain/App.vue +11 -0
  130. package/DemoForOperator/Sound/Rain/Raining/Rain.vue +69 -0
  131. package/DemoForOperator/Sound/Rain/Raining/RainScene.vue +118 -0
  132. package/DemoForOperator/Sound/Sound/Sound.vue +24 -0
  133. package/DemoForOperator/Sound/Sound/index.js +4 -0
  134. package/DemoForOperator/Sound/Sound/useSound.js +112 -0
  135. package/DemoForOperator/Sprite/App.vue +33 -0
  136. package/DemoForOperator/Sprite/Sprite.vue +147 -0
  137. package/DemoForOperator/Stretch/App.vue +103 -0
  138. package/DemoForOperator/Stretch/Stretch/Item.vue +192 -0
  139. package/DemoForOperator/Stretch/Stretch/Stretch.vue +218 -0
  140. package/DemoForOperator/Swiper/App.vue +101 -0
  141. package/DemoForOperator/Swiper/Item.vue +56 -0
  142. package/DemoForOperator/Swiper/ParallaxSlide.vue +164 -0
  143. package/DemoForOperator/TabContent/App.vue +89 -0
  144. package/DemoForOperator/TabContent/ContentPage.vue +66 -0
  145. package/DemoForOperator/TabContent/Item.vue +85 -0
  146. package/DemoForOperator/TabContent/PageItem.vue +40 -0
  147. package/DemoForOperator/TabContent/TabContent/CreepFocus.vue +160 -0
  148. package/DemoForOperator/TabContent/TabContent/Item.vue +63 -0
  149. package/DemoForOperator/TabContent/TabContent/TabContent.vue +184 -0
  150. package/DemoForOperator/TabContent/TabContent/TabItem.vue +368 -0
  151. package/DemoForOperator/TabContent/TabContent/TabWidget.vue +243 -0
  152. package/DemoForOperator/TabContent/TabContent/Util.js +3 -0
  153. package/DemoForOperator/TabContent/TabContent/ViewSwiper.vue +110 -0
  154. package/DemoForOperator/TabContent/testData.js +241 -0
  155. package/DemoForOperator/TabContentVertical/App.vue +104 -0
  156. package/DemoForOperator/TabContentVertical/ContentPage.vue +67 -0
  157. package/DemoForOperator/TabContentVertical/Item.vue +94 -0
  158. package/DemoForOperator/TabContentVertical/PageItem.vue +40 -0
  159. package/DemoForOperator/TabContentVertical/TabContent/CreepFocus.vue +160 -0
  160. package/DemoForOperator/TabContentVertical/TabContent/Item.vue +63 -0
  161. package/DemoForOperator/TabContentVertical/TabContent/TabContent.vue +184 -0
  162. package/DemoForOperator/TabContentVertical/TabContent/TabItem.vue +368 -0
  163. package/DemoForOperator/TabContentVertical/TabContent/TabWidget.vue +259 -0
  164. package/DemoForOperator/TabContentVertical/TabContent/Util.js +3 -0
  165. package/DemoForOperator/TabContentVertical/TabContent/ViewSwiper.vue +110 -0
  166. package/DemoForOperator/TabContentVertical/assets/children_science.png +0 -0
  167. package/DemoForOperator/TabContentVertical/assets/documentary.png +0 -0
  168. package/DemoForOperator/TabContentVertical/assets/free.png +0 -0
  169. package/DemoForOperator/TabContentVertical/assets/game.png +0 -0
  170. package/DemoForOperator/TabContentVertical/assets/home_selected.png +0 -0
  171. package/DemoForOperator/TabContentVertical/assets/movie_ticket.png +0 -0
  172. package/DemoForOperator/TabContentVertical/assets/my_account.png +0 -0
  173. package/DemoForOperator/TabContentVertical/assets/opera.png +0 -0
  174. package/DemoForOperator/TabContentVertical/assets/sports.png +0 -0
  175. package/DemoForOperator/TabContentVertical/assets/tv_drama.png +0 -0
  176. package/DemoForOperator/TabContentVertical/assets/variety_show.png +0 -0
  177. package/DemoForOperator/TabContentVertical/assets/vip.png +0 -0
  178. package/DemoForOperator/TabContentVertical/testData.js +76 -0
  179. package/DemoForOperator/Vortex/App.vue +78 -0
  180. package/DemoForOperator/Vortex/Vortex/Vortex.vue +180 -0
  181. package/DemoForOperator/Vortex/Vortex/vortexIn.glsl +38 -0
  182. package/DemoForOperator/Vortex/Vortex/vortexOut.glsl +38 -0
  183. package/DemoForOperator/index.js +6 -0
  184. package/DemoForOperator/routeList.js +259 -0
  185. package/DemoHomepage/App.vue +50 -30
  186. package/DemoHomepage/components/Dialog.vue +1 -0
  187. package/DemoHomepage/components/Item.vue +11 -0
  188. package/DemoHomepage/components/TabFrame.vue +7 -0
  189. package/DemoHomepage/router.js +178 -81
  190. package/DemoHomepage/views/Homepage.vue +7 -2
  191. package/DivMetroPerformance/data.js +3 -3
  192. package/DriftScopeTest/App.vue +1 -1
  193. package/FilterDemo/AnimatePic.vue +1 -1
  194. package/FilterDemo/VideoLayer.vue +2 -2
  195. package/FullScreenFlex/TestFrame2.vue +1 -1
  196. package/GiftRain/App.vue +12 -12
  197. package/GiftRain/components/SpriteTranslate.vue +68 -48
  198. package/HashHistory/App.vue +2 -2
  199. package/HashHistory/router.js +1 -1
  200. package/JsvPreDownloader/App.vue +4 -4
  201. package/MediaDemo/components/frames/AudioFrame.vue +1 -1
  202. package/MediaDemo/components/frames/VideoFrame.vue +1 -1
  203. package/MetroWidgetDemos/MassiveItems/ContentItem.vue +1 -1
  204. package/MetroWidgetDemos/MassiveItems/data.js +1 -1
  205. package/MetroWidgetDemos/PerformanceTest/data.js +3 -3
  206. package/MetroWidgetDemos/RefreshDemo/assets/imageList.json +235 -235
  207. package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.json +235 -235
  208. package/MetroWidgetDemos/TripleWidget/App.vue +7 -1
  209. package/MetroWidgetDemos/TripleWidget/Item.vue +16 -2
  210. package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +7 -1
  211. package/MetroWidgetDemos/TripleWidget/WidgetItem.vue +8 -2
  212. package/MetroWidgetDemos/focusableItemMetroWidget/WidgetItem.vue +3 -1
  213. package/MetroWidgetDemos/routeList.js +34 -17
  214. package/Poster3d/App.vue +69 -0
  215. package/Poster3d/Poster3d.vue +92 -0
  216. package/PosterPacker/App.vue +5 -5
  217. package/PosterPacker/tools/vortexPacker/Vortex.vue +1 -1
  218. package/QrcodeDemo/App.vue +1 -1
  219. package/Ripple/App.vue +1 -1
  220. package/ScaleDownNeon/App.vue +4 -4
  221. package/SceneTransition/App.vue +2 -2
  222. package/SceneTransition/maskConfig/config2.js +12 -12
  223. package/SceneTransition/maskConfig/config3.js +14 -14
  224. package/SprayView/App.vue +96 -51
  225. package/SpringFestival/App.vue +73 -0
  226. package/SpringFestival/SpringFestivalScene/ChunLian.vue +211 -0
  227. package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +139 -0
  228. package/SpringFestival/SpringFestivalScene/LanternAnim.js +60 -0
  229. package/SpringFestival/SpringFestivalScene/Rain.vue +137 -0
  230. package/SpringFestival/SpringFestivalScene/Scene.vue +218 -0
  231. package/SpringFestival/SpringFestivalScene/imageConfig.js +87 -0
  232. package/SpringFestival/SpringFestivalScene/index.js +1 -0
  233. package/Swiper/App.vue +28 -29
  234. package/Swiper/Item.vue +19 -0
  235. package/SwiperTest/App.vue +9 -9
  236. package/TestNativeSharedView/AckEventDefine.ts +82 -0
  237. package/TestNativeSharedView/App.vue +4 -6
  238. package/TestNativeSharedView/JsvDemoTester.js +131 -0
  239. package/TextureAnimation/App.vue +16 -6
  240. package/TextureAnimation/App3.vue +100 -0
  241. package/TextureAnimation/utils/FrameCanvasStore.ts +68 -0
  242. package/TextureAnimation/utils/RotateFrame.vue +146 -0
  243. package/TextureAnimation/utils/circleHaloMask.png +0 -0
  244. package/TombSweepingDayTest/Raining/RainScene.vue +4 -4
  245. package/ViewOpacity/App.vue +21 -2
  246. package/package.json +1 -1
@@ -4,98 +4,98 @@ const ArraySet3 = [
4
4
  top: 0,
5
5
  width: 232,
6
6
  height: 287,
7
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/1.png",
7
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/1.png",
8
8
  },
9
9
  {
10
10
  left: 213,
11
11
  top: 0,
12
12
  width: 588,
13
13
  height: 315,
14
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/2.png",
14
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/2.png",
15
15
  },
16
16
  {
17
17
  left: 223,
18
18
  top: 0,
19
19
  width: 582,
20
20
  height: 316,
21
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/3.png",
21
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/3.png",
22
22
  },
23
23
  {
24
24
  left: 811,
25
25
  top: 62,
26
26
  width: 469,
27
27
  height: 257,
28
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/4.png",
28
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/4.png",
29
29
  },
30
30
  {
31
31
  left: 943,
32
32
  top: 0,
33
33
  width: 337,
34
34
  height: 162,
35
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/5.png",
35
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/5.png",
36
36
  },
37
37
  {
38
38
  left: 0,
39
39
  top: 260,
40
40
  width: 272,
41
41
  height: 460,
42
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/6.png",
42
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/6.png",
43
43
  },
44
44
  {
45
45
  left: 86,
46
46
  top: 168,
47
47
  width: 728,
48
48
  height: 350,
49
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/7.png",
49
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/7.png",
50
50
  },
51
51
  {
52
52
  left: 806,
53
53
  top: 223,
54
54
  width: 474,
55
55
  height: 133,
56
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/8.png",
56
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/8.png",
57
57
  },
58
58
  {
59
59
  left: 706,
60
60
  top: 0,
61
61
  width: 295,
62
62
  height: 319,
63
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/9.png",
63
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/9.png",
64
64
  },
65
65
  {
66
66
  left: 51,
67
67
  top: 319,
68
68
  width: 765,
69
69
  height: 401,
70
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/10.png",
70
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/10.png",
71
71
  },
72
72
  {
73
73
  left: 688,
74
74
  top: 321,
75
75
  width: 304,
76
76
  height: 399,
77
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/11.png",
77
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/11.png",
78
78
  },
79
79
  {
80
80
  left: 814,
81
81
  top: 320,
82
82
  width: 345,
83
83
  height: 400,
84
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/12.png",
84
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/12.png",
85
85
  },
86
86
  {
87
87
  left: 816,
88
88
  top: 315,
89
89
  width: 464,
90
90
  height: 211,
91
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/13.png",
91
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/13.png",
92
92
  },
93
93
  {
94
94
  left: 979,
95
95
  top: 413,
96
96
  width: 301,
97
97
  height: 307,
98
- url: "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SceneTransition/mask2/14.png",
98
+ url: "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/SceneTransition/maskConfig/config3/14.png",
99
99
  },
100
100
  ];
101
101
 
package/SprayView/App.vue CHANGED
@@ -18,7 +18,17 @@ import Star2 from "./assets/star2.png";
18
18
  import Star3 from "./assets/star3.png";
19
19
  import Star4 from "./assets/star4.png";
20
20
  //定义图片url列表
21
- const ImgData = [snow, GoldenCoin1, GoldenCoin2, RedPacket1, RedPacket2, Star1, Star2, Star3, Star4]
21
+ const ImgData = [
22
+ snow,
23
+ GoldenCoin1,
24
+ GoldenCoin2,
25
+ RedPacket1,
26
+ RedPacket2,
27
+ Star1,
28
+ Star2,
29
+ Star3,
30
+ Star4,
31
+ ];
22
32
  const sprayOk = {
23
33
  type: 0,
24
34
  particleNum: 50,
@@ -39,7 +49,7 @@ const sprayOk = {
39
49
 
40
50
  const sprayRotate = {
41
51
  type: 1,
42
- particleNum: 50,
52
+ particleNum: 100,
43
53
  deltaAngle: 0,
44
54
  deltaWidth: 0,
45
55
  deltaHeight: 50,
@@ -48,7 +58,7 @@ const sprayRotate = {
48
58
  speedMin: 5,
49
59
  speedMax: 10,
50
60
  lifeMin: 1000,
51
- lifeMax: 3000,
61
+ lifeMax: 1500,
52
62
  accelerateX: 0,
53
63
  accelerateY: -100,
54
64
  particleAddSpeed: 0.1,
@@ -89,7 +99,7 @@ const sprayCycle = {
89
99
  lifeMax: 3000,
90
100
  accelerateX: 0,
91
101
  accelerateY: 0,
92
- particleAddSpeed: 0.01,
102
+ particleAddSpeed: 0.1,
93
103
  enableFade: true,
94
104
  enableShrink: false,
95
105
  angularVelocityMin: 360,
@@ -122,11 +132,21 @@ const sprayFall = {
122
132
  };
123
133
 
124
134
  const okCount = ref(0);
135
+
136
+ let stopped = false;
125
137
  const onKeyDown = (ev) => {
126
138
  switch (ev.keyCode) {
127
139
  case 13:
128
140
  okCount.value++;
129
141
  return true;
142
+ case 38:
143
+ if (window.JsView) {
144
+ // 目前先只有native支持
145
+ // TODO: wasm版本上线后放开此限制
146
+ stopped ? testRef.value.start() : testRef.value.stop();
147
+ stopped = !stopped;
148
+ }
149
+ return true;
130
150
  }
131
151
  return false;
132
152
  };
@@ -139,30 +159,39 @@ const s = {
139
159
  color: "#ffffff",
140
160
  fontSize: 20,
141
161
  };
162
+
163
+ const testRef = ref();
142
164
  </script>
143
165
 
144
166
  <template>
145
167
  <div class="root">
146
- <jsv-focus-block autoFocus :onAction="{
147
- onKeyDown: onKeyDown,
148
- }">
168
+ <jsv-focus-block
169
+ autoFocus
170
+ :onAction="{
171
+ onKeyDown: onKeyDown,
172
+ }"
173
+ >
149
174
  <div :style="{ top: 20, left: 400 }">
150
- <div :style="{
151
- width: 40,
152
- height: 40,
153
- animation: 'cycle 3s linear infinite',
154
- }">
175
+ <div
176
+ :style="{
177
+ width: 40,
178
+ height: 40,
179
+ animation: 'cycle 3s linear infinite',
180
+ }"
181
+ >
155
182
  <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayCycle" />
156
183
  </div>
157
- <div :style="{
158
- top: 20,
159
- width: 400,
160
- height: 100,
161
- lineHeight: 100,
162
- textAlign: 'center',
163
- fontSize: 50,
164
- color: '#FFFFFF',
165
- }">
184
+ <div
185
+ :style="{
186
+ top: 20,
187
+ width: 400,
188
+ height: 100,
189
+ lineHeight: 100,
190
+ textAlign: 'center',
191
+ fontSize: 50,
192
+ color: '#FFFFFF',
193
+ }"
194
+ >
166
195
  粒子效果
167
196
  </div>
168
197
  <div class="describe">
@@ -170,21 +199,25 @@ const s = {
170
199
  </div>
171
200
  </div>
172
201
 
173
- <div :style="{
174
- left: 0,
175
- top: 200,
176
- width: 400,
177
- height: 600,
178
- overflow: 'hidden',
179
- }">
202
+ <div
203
+ :style="{
204
+ left: 0,
205
+ top: 200,
206
+ width: 400,
207
+ height: 600,
208
+ overflow: 'hidden',
209
+ }"
210
+ >
180
211
  <div :style="{ top: 150, left: 150 }">
181
212
  <div class="spray-ok">
182
213
  <div v-if="okCount > 0">
183
- <jsv-spray v-for="item in ImgData"
184
- :key="okCount"
185
- :pointRes="`url(${item})`"
186
- :sprayStyle="sprayOk"
187
- :ignoreClip="true" />
214
+ <jsv-spray
215
+ v-for="item in ImgData"
216
+ :key="okCount"
217
+ :pointRes="`url(${item})`"
218
+ :sprayStyle="sprayOk"
219
+ :ignoreClip="true"
220
+ />
188
221
  </div>
189
222
  </div>
190
223
  <div class="describe">
@@ -194,36 +227,48 @@ const s = {
194
227
  </div>
195
228
  </div>
196
229
  </div>
197
- <div :style="{
198
- left: 400,
199
- top: 200,
200
- width: 400,
201
- height: 600,
202
- overflow: 'hidden',
203
- }">
230
+ <div
231
+ :style="{
232
+ left: 400,
233
+ top: 200,
234
+ width: 400,
235
+ height: 600,
236
+ overflow: 'hidden',
237
+ }"
238
+ >
204
239
  <div :style="{ top: 150, left: 195 }">
205
240
  <div class="spray-rotate">
206
- <jsv-spray v-for="item in ImgData" :pointRes="`url(${item})`" :sprayStyle="sprayRotate" />
241
+ <jsv-spray
242
+ v-for="item in ImgData"
243
+ :pointRes="`url(${item})`"
244
+ :sprayStyle="sprayRotate"
245
+ />
207
246
  </div>
208
247
  <div class="describe">
209
248
  {{ `#粒子沿长边随机生成\n#初速度沿长边方向\n#受竖直方向的力作用` }}
210
249
  </div>
211
250
  </div>
212
251
  </div>
213
- <div :style="{
214
- left: 800,
215
- top: 200,
216
- width: 400,
217
- height: 600,
218
- overflow: 'hidden',
219
- }">
252
+ <div
253
+ :style="{
254
+ left: 800,
255
+ top: 200,
256
+ width: 400,
257
+ height: 600,
258
+ overflow: 'hidden',
259
+ }"
260
+ >
220
261
  <div :style="{ top: 150, left: 150 }">
221
262
  <div class="spray-move">
222
- <jsv-spray :pointRes="`url(${snow})`" :sprayStyle="sprayMove" />
263
+ <jsv-spray
264
+ ref="testRef"
265
+ :pointRes="`url(${snow})`"
266
+ :sprayStyle="sprayMove"
267
+ />
223
268
  </div>
224
269
  <div class="describe">
225
270
  {{
226
- `#粒子在方形随机生成\n#初速度方向为竖直向上方向正负20度内随机\n#受水平方向和竖直方向的力作用`
271
+ `#粒子在方形随机生成\n#按上键停止/开始喷射\n#初速度方向为竖直向上方向正负20度内随机\n#受水平方向和竖直方向的力作用`
227
272
  }}
228
273
  </div>
229
274
  </div>
@@ -327,4 +372,4 @@ const s = {
327
372
  color: #ffffff;
328
373
  font-size: 20;
329
374
  }
330
- </style>
375
+ </style>
@@ -0,0 +1,73 @@
1
+ <!--
2
+ * @Author: ChenChanghua
3
+ * @Date: 2022-01-25 09:56:46
4
+ * @LastEditors: Please set LastEditors
5
+ -->
6
+ <script setup>
7
+ import { DefaultKeyCodeMap, jJsvRuntimeBridge } from "jsview";
8
+ import { useRouter } from "vue-router";
9
+ import { SprFestivalScene } from "./SpringFestivalScene";
10
+ import { onMounted } from "vue";
11
+
12
+ const router = useRouter();
13
+
14
+ const fncOnKeyDown = (ev) => {
15
+ if (
16
+ ev.keyCode == 8 ||
17
+ ev.keyCode == 27 ||
18
+ ev.keyCode == DefaultKeyCodeMap.Back
19
+ ) {
20
+ router.go(-1); // 有router时,是从DemoHomepage进入,回退
21
+ return true;
22
+ }
23
+ switch (ev.keyCode) {
24
+ case DefaultKeyCodeMap.Up:
25
+ case DefaultKeyCodeMap.Down:
26
+ case DefaultKeyCodeMap.left:
27
+ case DefaultKeyCodeMap.Right:
28
+ case DefaultKeyCodeMap.Ok:
29
+ return true;
30
+ }
31
+ };
32
+
33
+ let cRunningInBox = typeof window.JsView != "undefined";
34
+
35
+ onMounted(() => {
36
+ jJsvRuntimeBridge.notifyPageLoaded();
37
+ });
38
+ </script>
39
+
40
+ <template>
41
+ <jsv-focus-block
42
+ autoFocus
43
+ :onAction="{
44
+ onKeyDown: fncOnKeyDown,
45
+ }"
46
+ >
47
+ <div
48
+ v-if="cRunningInBox"
49
+ :style="{
50
+ width: 1920,
51
+ height: 1080,
52
+ transform: 'scale3d(0.67,0.67,1)',
53
+ transformOrigin: 'left top',
54
+ }"
55
+ >
56
+ <SprFestivalScene />
57
+ </div>
58
+ <div
59
+ v-else
60
+ id="LudlScale"
61
+ :style="{
62
+ top: 210,
63
+ left: 490,
64
+ width: 300,
65
+ height: 300,
66
+ fontSize: 25,
67
+ lineHeight: 300,
68
+ }"
69
+ >
70
+ {{ "PC不支持此组件显示" }}
71
+ </div>
72
+ </jsv-focus-block>
73
+ </template>
@@ -0,0 +1,211 @@
1
+ <script>
2
+ import { getKeyFramesGroup } from "jsview";
3
+
4
+ const animNamePrefix = "__2025__chunjie__";
5
+ const moveDownAnimName = animNamePrefix + "move_down";
6
+ const clipResizeAnimName = animNamePrefix + "clip_resize";
7
+
8
+ const styleShell = getKeyFramesGroup();
9
+
10
+ const scrollTopOffset = 51;
11
+ function buildMove(totalTime, frameList) {
12
+ let moveFrameDefines = [];
13
+ let heightFrameDefines = [];
14
+ for (let i = 0; i < frameList.length; i++) {
15
+ let frameItem = frameList[i];
16
+ let percent = Math.floor((frameItem.timeStamp / totalTime) * 10000) / 100;
17
+ moveFrameDefines.push(
18
+ `${percent}%{top:${frameItem.height + scrollTopOffset}}`
19
+ );
20
+ heightFrameDefines.push(`${percent}%{height:${frameItem.height}}`);
21
+ }
22
+ let moveAnimStr = `@keyframes ${moveDownAnimName} {`;
23
+ for (let i = 0; i < moveFrameDefines.length; i++) {
24
+ moveAnimStr += moveFrameDefines[i];
25
+ }
26
+ moveAnimStr += `}`;
27
+ console.log("move anim: " + moveAnimStr);
28
+
29
+ let resizeAnimStr = `@keyframes ${clipResizeAnimName} {`;
30
+ for (let i = 0; i < heightFrameDefines.length; i++) {
31
+ resizeAnimStr += heightFrameDefines[i];
32
+ }
33
+ resizeAnimStr += `}`;
34
+ console.log("resize anim: " + resizeAnimStr);
35
+
36
+ return [moveAnimStr, resizeAnimStr];
37
+ }
38
+ const totalHeight = 874;
39
+ const keyframeList = [
40
+ { height: 0, timeStamp: 0 },
41
+ { height: totalHeight, timeStamp: 1300 },
42
+ { height: Math.round(totalHeight * 0.95), timeStamp: 1450 },
43
+ { height: totalHeight, timeStamp: 1600 },
44
+ { height: Math.round(totalHeight * 0.98), timeStamp: 1800 },
45
+ { height: totalHeight, timeStamp: 2000 },
46
+ ];
47
+
48
+ let inited = false;
49
+ function initChunLianAnim() {
50
+ if (!inited) {
51
+ const [moveAnimStr, resizeAnimStr] = buildMove(2000, keyframeList);
52
+ styleShell.insertRule(moveAnimStr);
53
+ styleShell.insertRule(resizeAnimStr);
54
+ inited = true;
55
+ }
56
+ }
57
+
58
+ function releaseChunLianAnim() {
59
+ styleShell.removeRule(moveDownAnimName);
60
+ styleShell.removeRule(clipResizeAnimName);
61
+ inited = false;
62
+ }
63
+ export { initChunLianAnim, releaseChunLianAnim };
64
+ </script>
65
+
66
+ <script setup>
67
+ import { ref, onMounted, onBeforeUnmount } from "vue";
68
+
69
+ const props = defineProps({
70
+ isLeft: {
71
+ type: Boolean,
72
+ default: false,
73
+ },
74
+ left: {
75
+ type: Number,
76
+ default: 0,
77
+ },
78
+ top: {
79
+ type: Number,
80
+ default: 0,
81
+ },
82
+ contentImage: {
83
+ type: String,
84
+ required: true,
85
+ },
86
+ scrollImage: {
87
+ type: Array,
88
+ required: true,
89
+ },
90
+ duration: {
91
+ type: Number,
92
+ default: 2000,
93
+ },
94
+ autoStart: {
95
+ type: Boolean,
96
+ default: true,
97
+ },
98
+ onAnimEnd: {
99
+ type: Function,
100
+ },
101
+ });
102
+
103
+ const flipScrollTransform = props.isLeft ? "scale3d(-1,1,1)" : null;
104
+ const moveDownAnim = ref(null);
105
+ const clipResizeAnim = ref(null);
106
+ const clipHeight = ref(0);
107
+ const scrollTop = ref(53);
108
+ function onMoveDownAnimDone() {
109
+ scrollTop.value = 52 + 873;
110
+ }
111
+
112
+ function onClipResizeAnimDone() {
113
+ clipHeight.value = 874;
114
+ props.onAnimEnd?.();
115
+ }
116
+
117
+ const start = () => {
118
+ moveDownAnim.value = `${moveDownAnimName} ${props.duration / 1000}s`;
119
+ clipResizeAnim.value = `${clipResizeAnimName} ${props.duration / 1000}s`;
120
+ };
121
+
122
+ onMounted(() => {
123
+ if (props.autoStart) {
124
+ start();
125
+ }
126
+ });
127
+
128
+ defineExpose({
129
+ start,
130
+ });
131
+ </script>
132
+
133
+ <template>
134
+ <div
135
+ :style="{
136
+ left: props.left,
137
+ top: props.top,
138
+ }"
139
+ >
140
+ <div
141
+ id="clipview"
142
+ :style="{
143
+ width: 209,
144
+ height: clipHeight,
145
+ top: 53,
146
+ left: (265 - 209) / 2,
147
+ overflow: 'hidden',
148
+ animation: clipResizeAnim,
149
+ }"
150
+ @animationend="onClipResizeAnimDone"
151
+ >
152
+ <div
153
+ class="chun_lian_size"
154
+ :style="{
155
+ backgroundImage: props.contentImage,
156
+ }"
157
+ ></div>
158
+ </div>
159
+
160
+ <div
161
+ class="juan_zhou_size"
162
+ :style="{
163
+ transform: flipScrollTransform,
164
+ transformOrigin: 'center top',
165
+ }"
166
+ >
167
+ <div
168
+ class="juan_zhou_size"
169
+ :style="{
170
+ backgroundImage: `url(${props.scrollImage[0]})`,
171
+ }"
172
+ ></div>
173
+ <div
174
+ class="juan_zhou_size"
175
+ :style="{
176
+ top: scrollTop,
177
+ backgroundImage: `url(${props.scrollImage[1]})`,
178
+ animation: moveDownAnim,
179
+ }"
180
+ @animationend="onMoveDownAnimDone"
181
+ ></div>
182
+ </div>
183
+ </div>
184
+ </template>
185
+ <style>
186
+ .chun_lian_size {
187
+ width: 209;
188
+ height: 874;
189
+ }
190
+ .juan_zhou_size {
191
+ width: 265;
192
+ height: 55;
193
+ }
194
+ @keyframes chun_lian_anim {
195
+ from {
196
+ height: 0;
197
+ }
198
+ to {
199
+ height: 874;
200
+ }
201
+ }
202
+
203
+ @keyframes juan_zhou_anim {
204
+ from {
205
+ top: 51;
206
+ }
207
+ to {
208
+ top: 925;
209
+ }
210
+ }
211
+ </style>