@shijiu/jsview-vue-samples 2.2.373 → 2.3.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 (181) hide show
  1. package/BakeViewDemo/AnimatePic.vue +1 -1
  2. package/Basic/components/text/TextDirection.vue +7 -2
  3. package/BasicFocusControl/components/BaseBlock.vue +65 -18
  4. package/BreakRender/assets/imageList.json +235 -235
  5. package/ColorSpace/App.vue +4 -4
  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/CssPreprocessor/Stylus/components/stylus-group1/StylusOperations.vue +0 -1
  12. package/CssPreprocessor/utils/ContentBlock.vue +3 -3
  13. package/CssPreprocessor/utils/{FontStyle.css → FontConfig.css} +3 -3
  14. package/CssPreprocessor/utils/TitleBar.vue +2 -2
  15. package/CustomShader/App.vue +6 -6
  16. package/CustomShader/gaussianBlur.glsl +1 -1
  17. package/DashPath/App.vue +79 -0
  18. package/DashPath/AppForOperator.vue +35 -0
  19. package/DashPath/DashPath.vue +118 -0
  20. package/DemoForOperator/AnimPic/AnimPic.vue +47 -0
  21. package/DemoForOperator/AnimPic/App.vue +28 -0
  22. package/DemoForOperator/Banger/App.vue +26 -0
  23. package/DemoForOperator/Banger/Banger/Banger.vue +252 -0
  24. package/DemoForOperator/Banger/Banger/Maroon.vue +123 -0
  25. package/DemoForOperator/Banger/Banger/MaroonLoader.vue +78 -0
  26. package/DemoForOperator/Banger/Banger/SpriteDeal.js +30 -0
  27. package/DemoForOperator/Bounce/App.vue +43 -0
  28. package/DemoForOperator/Bounce/Bounce.vue +49 -0
  29. package/DemoForOperator/Bounce/FreeMoveBuilder.js +139 -0
  30. package/DemoForOperator/ChunLian/App.vue +47 -0
  31. package/DemoForOperator/ChunLian/Couplets.vue +248 -0
  32. package/DemoForOperator/EpisodeList/App.vue +80 -0
  33. package/DemoForOperator/EpisodeList/EpisodeList/Controller.vue +113 -0
  34. package/DemoForOperator/EpisodeList/EpisodeList/EpisodeList.vue +176 -0
  35. package/DemoForOperator/EpisodeList/GroupItem.vue +65 -0
  36. package/DemoForOperator/EpisodeList/ListItem.vue +48 -0
  37. package/DemoForOperator/Firework1/App.vue +25 -0
  38. package/DemoForOperator/Firework1/Fireworks.vue +358 -0
  39. package/DemoForOperator/Firework1/SpriteDeal.js +30 -0
  40. package/DemoForOperator/FlipPage/App.vue +75 -0
  41. package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +150 -0
  42. package/DemoForOperator/FlipPage/FlipPage/flipIn.glsl +41 -0
  43. package/DemoForOperator/FlipPage/FlipPage/flipOut.glsl +41 -0
  44. package/DemoForOperator/Focus/Alpha/AlphaFocusBox.vue +70 -0
  45. package/DemoForOperator/Focus/Alpha/AlphaPage.vue +40 -0
  46. package/DemoForOperator/Focus/Alpha/Item.vue +64 -0
  47. package/DemoForOperator/Focus/App.vue +124 -0
  48. package/DemoForOperator/Focus/CommonPageSetting.js +30 -0
  49. package/DemoForOperator/Focus/Item.vue +46 -0
  50. package/DemoForOperator/Focus/Light/Item.vue +67 -0
  51. package/DemoForOperator/Focus/Light/LightFocusBox.vue +46 -0
  52. package/DemoForOperator/Focus/Light/LightPage.vue +43 -0
  53. package/DemoForOperator/Focus/Light/utils/FrameCanvasStore.ts +68 -0
  54. package/DemoForOperator/Focus/Light/utils/RotateFrame.vue +146 -0
  55. package/DemoForOperator/Focus/Light/utils/circleHaloMask.png +0 -0
  56. package/DemoForOperator/Focus/Normal/Item.vue +64 -0
  57. package/DemoForOperator/Focus/Normal/NormalFocusBox.vue +53 -0
  58. package/DemoForOperator/Focus/Normal/NormalPage.vue +41 -0
  59. package/DemoForOperator/Focus/SwipeLight/Item.vue +73 -0
  60. package/DemoForOperator/Focus/SwipeLight/SwipeLightBox.vue +62 -0
  61. package/DemoForOperator/Focus/SwipeLight/SwipeLightPage.vue +44 -0
  62. package/DemoForOperator/FullscreenIn/App.vue +105 -0
  63. package/DemoForOperator/FullscreenIn/FullscreenPoster.vue +41 -0
  64. package/DemoForOperator/FullscreenIn/Item.vue +50 -0
  65. package/DemoForOperator/Genie/App.vue +78 -0
  66. package/DemoForOperator/Genie/geniePakcer/Genie.vue +699 -0
  67. package/DemoForOperator/Genie/geniePakcer/genieBottom.glsl +49 -0
  68. package/DemoForOperator/Genie/geniePakcer/genieLeft.glsl +50 -0
  69. package/DemoForOperator/Genie/geniePakcer/genieRight.glsl +57 -0
  70. package/DemoForOperator/Genie/geniePakcer/genieTop.glsl +50 -0
  71. package/DemoForOperator/GrayFilter/App.vue +51 -0
  72. package/DemoForOperator/GrayFilter/GrayFilter.vue +38 -0
  73. package/DemoForOperator/Jigsaw/App.vue +45 -0
  74. package/DemoForOperator/Jigsaw/JigsawFull.vue +100 -0
  75. package/DemoForOperator/Jigsaw/JigsawSingle.vue +86 -0
  76. package/DemoForOperator/Particle/App.vue +69 -0
  77. package/DemoForOperator/Particle/Drop/DropParticle.vue +176 -0
  78. package/DemoForOperator/Particle/Explode/ExplodeParticle.vue +99 -0
  79. package/DemoForOperator/PosterAnim/App.vue +125 -0
  80. package/DemoForOperator/PosterAnim/Bounce/BouncePage.vue +54 -0
  81. package/DemoForOperator/PosterAnim/Bounce/Item.vue +85 -0
  82. package/DemoForOperator/PosterAnim/Breath/BreathPage.vue +47 -0
  83. package/DemoForOperator/PosterAnim/Breath/Item.vue +58 -0
  84. package/DemoForOperator/PosterAnim/CommonPageSetting.js +30 -0
  85. package/DemoForOperator/PosterAnim/Item.vue +46 -0
  86. package/DemoForOperator/PosterAnim/PosterAnim.js +58 -0
  87. package/DemoForOperator/PosterAnim/Scale/Item.vue +72 -0
  88. package/DemoForOperator/PosterAnim/Scale/ScalePage.vue +48 -0
  89. package/DemoForOperator/PosterAnim/Shake/Item.vue +85 -0
  90. package/DemoForOperator/PosterAnim/Shake/ShakePage.vue +53 -0
  91. package/DemoForOperator/PosterOverflow/App.vue +116 -0
  92. package/DemoForOperator/PosterOverflow/Item.vue +67 -0
  93. package/DemoForOperator/PosterOverflow/PosterOverflow.vue +23 -0
  94. package/DemoForOperator/Ripple/App.vue +54 -0
  95. package/DemoForOperator/Ripple/Ripple.vue +50 -0
  96. package/DemoForOperator/ScalePoster/App.vue +4 -0
  97. package/DemoForOperator/ScalePoster/ScalePoster.vue +0 -0
  98. package/DemoForOperator/Sprite/App.vue +33 -0
  99. package/DemoForOperator/Sprite/Sprite.vue +90 -0
  100. package/DemoForOperator/Stretch/App.vue +103 -0
  101. package/DemoForOperator/Stretch/Stretch/Item.vue +192 -0
  102. package/DemoForOperator/Stretch/Stretch/Stretch.vue +168 -0
  103. package/DemoForOperator/TabContent/App.vue +89 -0
  104. package/DemoForOperator/TabContent/ContentPage.vue +66 -0
  105. package/DemoForOperator/TabContent/Item.vue +85 -0
  106. package/DemoForOperator/TabContent/PageItem.vue +40 -0
  107. package/DemoForOperator/TabContent/TabContent/CreepFocus.vue +160 -0
  108. package/DemoForOperator/TabContent/TabContent/Item.vue +63 -0
  109. package/DemoForOperator/TabContent/TabContent/TabContent.vue +146 -0
  110. package/DemoForOperator/TabContent/TabContent/TabItem.vue +368 -0
  111. package/DemoForOperator/TabContent/TabContent/TabWidget.vue +243 -0
  112. package/DemoForOperator/TabContent/TabContent/Util.js +3 -0
  113. package/DemoForOperator/TabContent/TabContent/ViewSwiper.vue +110 -0
  114. package/DemoForOperator/TabContent/testData.js +241 -0
  115. package/DemoForOperator/Vortex/App.vue +78 -0
  116. package/DemoForOperator/Vortex/Vortex/Vortex.vue +154 -0
  117. package/DemoForOperator/Vortex/Vortex/vortexIn.glsl +38 -0
  118. package/DemoForOperator/Vortex/Vortex/vortexOut.glsl +38 -0
  119. package/DemoForOperator/index.js +6 -0
  120. package/DemoForOperator/routeList.js +142 -0
  121. package/DemoHomepage/App.vue +50 -30
  122. package/DemoHomepage/components/Dialog.vue +1 -0
  123. package/DemoHomepage/components/TabFrame.vue +7 -0
  124. package/DemoHomepage/router.js +104 -81
  125. package/DemoHomepage/views/Homepage.vue +7 -6
  126. package/DivMetroPerformance/components/ContentItem.vue +0 -1
  127. package/DivMetroPerformance/data.js +3 -3
  128. package/DriftScopeTest/App.vue +1 -1
  129. package/FilterDemo/AnimatePic.vue +1 -1
  130. package/FilterDemo/VideoLayer.vue +2 -2
  131. package/FlexCellDemo/TestFrame1.vue +0 -4
  132. package/FullScreenFlex/TestFrame2.vue +1 -1
  133. package/GiftRain/App.vue +12 -15
  134. package/HashParams/App.vue +0 -1
  135. package/JsvPreDownloader/App.vue +4 -6
  136. package/Marquee/App.vue +2 -2
  137. package/MediaDemo/components/frames/AudioFrame.vue +1 -1
  138. package/MediaDemo/components/frames/VideoFrame.vue +1 -1
  139. package/MetroWidgetDemos/MassiveItems/ContentItem.vue +1 -2
  140. package/MetroWidgetDemos/MassiveItems/data.js +1 -1
  141. package/MetroWidgetDemos/PerformanceTest/components/ContentItem.vue +0 -1
  142. package/MetroWidgetDemos/PerformanceTest/components/MyTab.vue +18 -17
  143. package/MetroWidgetDemos/PerformanceTest/data.js +3 -3
  144. package/MetroWidgetDemos/RefreshDemo/assets/imageList.json +235 -235
  145. package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.json +235 -235
  146. package/MetroWidgetDemos/focusableItemMetroWidget/WidgetItem.vue +3 -1
  147. package/MetroWidgetDemos/routeList.js +17 -17
  148. package/Poster3d/App.vue +69 -0
  149. package/Poster3d/Poster3d.vue +92 -0
  150. package/PosterPacker/App.vue +5 -5
  151. package/PosterPacker/tools/geniePakcer/Genie.vue +2 -2
  152. package/PosterPacker/tools/vortexPacker/Vortex.vue +15 -15
  153. package/QrcodeDemo/App.vue +1 -1
  154. package/Ripple/App.vue +1 -1
  155. package/ScaleDownNeon/App.vue +13 -10
  156. package/SceneTransition/App.vue +7 -6
  157. package/SceneTransition/maskConfig/config2.js +12 -12
  158. package/SceneTransition/maskConfig/config3.js +14 -14
  159. package/SprayView/App.vue +96 -51
  160. package/SpringFestival/App.vue +73 -0
  161. package/SpringFestival/SpringFestivalScene/ChunLian.vue +211 -0
  162. package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +139 -0
  163. package/SpringFestival/SpringFestivalScene/LanternAnim.js +60 -0
  164. package/SpringFestival/SpringFestivalScene/Rain.vue +137 -0
  165. package/SpringFestival/SpringFestivalScene/Scene.vue +218 -0
  166. package/SpringFestival/SpringFestivalScene/imageConfig.js +87 -0
  167. package/SpringFestival/SpringFestivalScene/index.js +1 -0
  168. package/Swiper/App.vue +28 -29
  169. package/Swiper/Item.vue +19 -0
  170. package/SwiperTest/App.vue +9 -9
  171. package/TestNativeSharedView/AckEventDefine.ts +82 -0
  172. package/TestNativeSharedView/App.vue +4 -6
  173. package/TestNativeSharedView/JsvDemoTester.js +131 -0
  174. package/TextureAnimation/App3.vue +100 -0
  175. package/TextureAnimation/utils/FrameCanvasStore.ts +68 -0
  176. package/TextureAnimation/utils/RotateFrame.vue +146 -0
  177. package/TextureAnimation/utils/circleHaloMask.png +0 -0
  178. package/TextureSize/App.vue +5 -6
  179. package/TombSweepingDayTest/Raining/RainScene.vue +4 -4
  180. package/ViewOpacity/App.vue +6 -7
  181. package/package.json +1 -1
@@ -10,7 +10,7 @@ const router = useRouter();
10
10
  const onKeyDown = (ev) => {
11
11
  // 8:Backspace, 27:Escape, 10000:盒子返回键
12
12
  if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
13
- window.JsView?.setGlobalConfig({
13
+ window.JsvCoreApi?.setRenderGlobalConfig({
14
14
  texCache: -1,
15
15
  });
16
16
 
@@ -67,7 +67,7 @@ const onKeyDown = (ev) => {
67
67
  :src="pngDemo"
68
68
  />
69
69
  <div class="underFont">
70
- {{ `png有透明图片\nRGB_565下透明部分为黑色` }}
70
+ {{ `png有透明图片\nandroid透明部分为黑色\nwebassembly全为黑色 ` }}
71
71
  </div>
72
72
  </div>
73
73
 
@@ -79,7 +79,7 @@ const onKeyDown = (ev) => {
79
79
  :src="pngNoAlphaDemo"
80
80
  />
81
81
  <div class="underFont">
82
- {{ `png无透明图片` }}
82
+ {{ `png无透明图片\nwebassembly为黑色` }}
83
83
  </div>
84
84
  </div>
85
85
  </div>
@@ -123,4 +123,4 @@ const onKeyDown = (ev) => {
123
123
  color: #ffffff;
124
124
  font-size: 20;
125
125
  }
126
- </style>
126
+ </style>
@@ -317,7 +317,7 @@ import leadWire from "./widget/images/leadWire.png";
317
317
  import sparkPng from "./widget/Sprite/spark.png";
318
318
 
319
319
  const ammo =
320
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/star2.png";
320
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/App/star2.png";
321
321
  //页码
322
322
  let myIndex = shallowRef(1);
323
323
 
@@ -109,11 +109,11 @@ import {
109
109
  import { _formatInfo } from "../Common/SpriteDeal";
110
110
 
111
111
  const leadWire =
112
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/leadWire.png";
112
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/Banger/leadWire.png";
113
113
  const sparkPng =
114
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/spark.png";
114
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/Banger/spark.png";
115
115
  const sparkJson =
116
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/spark.json";
116
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/Banger/spark.json";
117
117
 
118
118
  //预加载
119
119
  const preload_info = [buildPreloadInfo(leadWire), buildPreloadInfo(sparkPng)];
@@ -27,15 +27,15 @@ const props = defineProps({
27
27
 
28
28
  const maroonResource = {
29
29
  star1:
30
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/redStar.png",
30
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/MaroonLoader/redStar.png",
31
31
  star2:
32
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/yellowStar.png",
32
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/MaroonLoader/yellowStar.png",
33
33
  star3:
34
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/purpleStar.png",
34
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/MaroonLoader/purpleStar.png",
35
35
  firecrackerPng:
36
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/firecracker.png",
36
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/MaroonLoader/firecracker.png",
37
37
  firecrackerJson:
38
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/firecracker.json",
38
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Banger/MaroonLoader/firecracker.json",
39
39
  firecrackerSet: {
40
40
  info: shallowRef(null),
41
41
  viewSize: shallowRef(null),
@@ -109,13 +109,13 @@ const props = defineProps({
109
109
  });
110
110
  let myShow = shallowRef(false);
111
111
  const Couplets =
112
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/Couplets.png";
112
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Couplets/Couplets/Couplets.png";
113
113
  const scrollPng =
114
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/scroll.png";
114
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Couplets/Couplets/scroll.png";
115
115
  const scrollJson =
116
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/scroll.json";
116
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Couplets/Couplets/scroll.json";
117
117
  const scroll =
118
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/scroll1.png";
118
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Couplets/Couplets/scroll1.png";
119
119
 
120
120
  //预加载
121
121
  const preload_info = [
@@ -161,33 +161,33 @@ const props = defineProps({
161
161
 
162
162
  //火花图片素材
163
163
  const group1_1 =
164
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/1/group1_1.png";
164
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group1_1.png";
165
165
  const group1_2 =
166
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/1/group1_2.png";
166
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group1_2.png";
167
167
  const group2_1 =
168
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/2/group2_1.png";
168
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group2_1.png";
169
169
  const group2_2 =
170
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/2/group2_2.png";
170
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group2_2.png";
171
171
  const group3_1 =
172
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/3/group3_1.png";
172
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group3_1.png";
173
173
  const group3_2 =
174
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/3/group3_2.png";
174
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group3_2.png";
175
175
  const group4_1 =
176
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/4/group4_1.png";
176
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group4_1.png";
177
177
  const group4_2 =
178
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/4/group4_2.png";
178
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group4_2.png";
179
179
  const group5_1 =
180
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/5/group5_1.png";
180
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group5_1.png";
181
181
  const group5_2 =
182
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Fireworks/images/5/group5_2.png";
182
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/group5_2.png";
183
183
  //弹药图片素材(请按需修改)
184
184
  const ammo =
185
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/images/star2.png";
185
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/star2.png";
186
186
  //精灵图素材
187
187
  const fireworksPng =
188
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/fireworks.png";
188
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/fireworks.png";
189
189
  const fireworksJson =
190
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/SpringFestivalTest_2024/Sprite/fireworks.json";
190
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CoupletsTest/widget/Fireworks/Fireworks/fireworks.json";
191
191
 
192
192
  //运动距离
193
193
  let moveDistance = 260;
@@ -19,7 +19,6 @@ export default {
19
19
 
20
20
  <style scoped lang="stylus">
21
21
  .stylus-op {
22
- color: #001100 * 16;
23
22
  font-size: 20 - 6;
24
23
 
25
24
  left: 10;
@@ -44,10 +44,10 @@ const titleStyle = {
44
44
 
45
45
  <template>
46
46
  <div :style=props.style>
47
- <div class="container-font" :style=titleStyle>
47
+ <div class="container-config" :style=titleStyle>
48
48
  {{ title }}
49
49
  </div>
50
- <div class="content-font" :style="{
50
+ <div class="content-config" :style="{
51
51
  top: titleStyle.lineHeight,
52
52
  width: props.style.width, height: props.style.height - 18,
53
53
  backgroundColor: 'rgba(0,0,0,' + blockOpacity + ')'
@@ -59,5 +59,5 @@ const titleStyle = {
59
59
 
60
60
  <style>
61
61
  /* css文件要单独放到没有scoped设置的style标签中,规避css属性redefine的warning */
62
- @import "./FontStyle.css";
62
+ @import "./FontConfig.css";
63
63
  </style>
@@ -1,18 +1,18 @@
1
1
 
2
- .title-font {
2
+ .title-config {
3
3
  color:#877c4a;
4
4
  font-family: 黑体;
5
5
  font-size: 16;
6
6
  text-align: center;
7
7
  }
8
8
 
9
- .container-font {
9
+ .container-config {
10
10
  color: #FFFFFF;
11
11
  font-family: 黑体;
12
12
  font-size: 16;
13
13
  }
14
14
 
15
- .content-font {
15
+ .content-config {
16
16
  color: #000000;
17
17
  font-family: 黑体;
18
18
  font-size: 10;
@@ -8,7 +8,7 @@ const props = defineProps({
8
8
  <template>
9
9
  <div>
10
10
  <template v-for="(title, index) in props.titleData" :key="index">
11
- <div class='title-font title-range' :style="{ left: props.style.width * index }">
11
+ <div class='title-config title-range' :style="{ left: props.style.width * index }">
12
12
  {{ title }}
13
13
  </div>
14
14
  </template>
@@ -25,5 +25,5 @@ const props = defineProps({
25
25
  </style>
26
26
  <style>
27
27
  /* css文件要单独放到没有scoped设置的style标签中,规避css属性redefine的warning */
28
- @import "./FontStyle.css";
28
+ @import "./FontConfig.css";
29
29
  </style>
@@ -8,10 +8,10 @@ import gaussianBlurShader from "./gaussianBlur.glsl?raw";
8
8
  // import testShader from "./test.glsl?raw";
9
9
 
10
10
  const ImageChinChilla =
11
- "https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/BackgroundLongmao.jpg";
12
- const ImageLandscape = "https://oss.image.qcast.cn/ai-draw/landscape.jpeg";
13
- const ImagePanda = "https://oss.image.qcast.cn/ai-draw/panda.jpeg";
14
- const ImageOwl = "https://oss.image.qcast.cn/ai-draw/owl.jpeg";
11
+ "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CustomShader/App/BackgroundLongmao.jpg";
12
+ const ImageLandscape = "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CustomShader/App/landscape.jpeg";
13
+ const ImagePanda = "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CustomShader/App/panda.jpeg";
14
+ const ImageOwl = "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/CustomShader/App/owl.jpeg";
15
15
 
16
16
  const cShaderSettings = [
17
17
  {
@@ -112,11 +112,11 @@ const onKeyDown = (ev) => {
112
112
  };
113
113
 
114
114
  onMounted(() => {
115
- window.JsView?.enableFpsDisplay(true);
115
+ window.JsvCoreApi.enableFpsDisplay(true);
116
116
  });
117
117
 
118
118
  onUnmounted(() => {
119
- window.JsView?.enableFpsDisplay(false);
119
+ window.JsvCoreApi.enableFpsDisplay(false);
120
120
  });
121
121
  </script>
122
122
 
@@ -12,7 +12,7 @@ int myMod(int a, int b) {
12
12
 
13
13
  vec4 blur(sampler2D sp, vec2 U, vec2 scale) {
14
14
  vec4 O = vec4(0);
15
- int s = samples / sLOD;
15
+ const int s = samples / sLOD;
16
16
 
17
17
  for(int i = 0; i < s * s; i++) {
18
18
  vec2 d = vec2(myMod(i, s), i / s) * float(sLOD) - float(samples) / 2.;
@@ -0,0 +1,79 @@
1
+ <template>
2
+ <div
3
+ :style="{
4
+ width: 1280,
5
+ height: 720,
6
+ backgroundColor: '#007788',
7
+ }"
8
+ >
9
+ <!-- 带缺口的矩形 -->
10
+ <DashPath
11
+ :points="[
12
+ { x: 200, y: 0 }, // 右上角
13
+ { x: 200, y: 100 }, // 右边中点(缺口处)
14
+ { x: 150, y: 100 }, // 缺口上边
15
+ { x: 150, y: 150 }, // 缺口左边
16
+ { x: 0, y: 150 }, // 左下角
17
+ { x: 0, y: 0 }, // 左上角
18
+ ]"
19
+ :dash="[5, 5]"
20
+ :phase="0"
21
+ color="#FF0000"
22
+ :lineWidth="2"
23
+ :layout="{
24
+ left: 50,
25
+ top: 50,
26
+ width: 250,
27
+ height: 200,
28
+ }"
29
+ />
30
+
31
+ <!-- 三角形 -->
32
+ <DashPath
33
+ :points="[
34
+ { x: 100, y: 0 }, // 顶点
35
+ { x: 200, y: 150 }, // 右下角
36
+ { x: 0, y: 150 }, // 左下角
37
+ ]"
38
+ :dash="[15, 8]"
39
+ :phase="2"
40
+ color="#00FF00"
41
+ :lineWidth="4"
42
+ :layout="{
43
+ left: 350,
44
+ top: 50,
45
+ width: 250,
46
+ height: 200,
47
+ }"
48
+ />
49
+
50
+ <!-- 凸字形 -->
51
+ <DashPath
52
+ :points="[
53
+ { x: 0, y: 0 }, // 左上角
54
+ { x: 200, y: 0 }, // 右上角
55
+ { x: 200, y: 150 }, // 右下角
56
+ { x: 150, y: 150 }, // 右凹进点
57
+ { x: 150, y: 50 }, // 凹进上点
58
+ { x: 50, y: 50 }, // 凹进左上点
59
+ { x: 50, y: 150 }, // 凹进左下点
60
+ { x: 0, y: 150 }, // 左下角
61
+ ]"
62
+ :dash="[20, 10]"
63
+ :phase="5"
64
+ color="#0088FF"
65
+ :lineWidth="3"
66
+ :layout="{
67
+ left: 650,
68
+ top: 50,
69
+ width: 250,
70
+ height: 200,
71
+ }"
72
+ />
73
+ </div>
74
+ </template>
75
+
76
+ <script setup>
77
+ import DashPath from "./DashPath.vue";
78
+ </script>
79
+
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <div
3
+ :style="{
4
+ width: 1280,
5
+ height: 720,
6
+ backgroundColor: '#007788',
7
+ }"
8
+ >
9
+ <!-- 带缺口的矩形 -->
10
+ <DashPath
11
+ :points="[
12
+ { x: 200, y: 0 }, // 右上角
13
+ { x: 200, y: 100 }, // 右边中点(缺口处)
14
+ { x: 150, y: 100 }, // 缺口上边
15
+ { x: 150, y: 150 }, // 缺口左边
16
+ { x: 0, y: 150 }, // 左下角
17
+ { x: 0, y: 0 }, // 左上角
18
+ ]"
19
+ :dash="[5, 5]"
20
+ color="#FF0000"
21
+ :lineWidth="2"
22
+ :layout="{
23
+ left: 150,
24
+ top: 150,
25
+ width: 250,
26
+ height: 200,
27
+ }"
28
+ />
29
+ </div>
30
+ </template>
31
+
32
+ <script setup>
33
+ import DashPath from "./DashPath.vue";
34
+ </script>
35
+
@@ -0,0 +1,118 @@
1
+ <template>
2
+ <div :style="{ ...layout, backgroundImage: `url(jsvtexturestore://${sourceId})` }" />
3
+ </template>
4
+
5
+ <script setup>
6
+ import { JsvTextureStoreApi } from "jsview";
7
+ import { onBeforeUnmount, computed } from "vue";
8
+
9
+ const props = defineProps({
10
+ // 点数组,每个点包含 x 和 y 坐标
11
+ points: {
12
+ type: Array,
13
+ required: true,
14
+ validator: (value) => {
15
+ return value.every(point => 'x' in point && 'y' in point);
16
+ }
17
+ },
18
+ // 虚线配置,例如 [10, 5] 表示10px实线,5px空白
19
+ dash: {
20
+ type: Array,
21
+ default: () => [10, 10]
22
+ },
23
+ // 虚线起始位置偏移
24
+ phase: {
25
+ type: Number,
26
+ default: 0
27
+ },
28
+ // 线条颜色
29
+ color: {
30
+ type: String,
31
+ default: "#FFFFFF"
32
+ },
33
+ // 线条宽度
34
+ lineWidth: {
35
+ type: Number,
36
+ default: 2
37
+ },
38
+ // 布局样式
39
+ layout: {
40
+ type: Object,
41
+ required: true
42
+ }
43
+ });
44
+
45
+ // 计算坐标系调整值和画布尺寸
46
+ const canvasInfo = computed(() => {
47
+ const xValues = props.points.map(p => p.x);
48
+ const yValues = props.points.map(p => p.y);
49
+
50
+ // 找出最小坐标值
51
+ const minX = Math.min(...xValues);
52
+ const minY = Math.min(...yValues);
53
+
54
+ // 计算偏移量(考虑线宽)
55
+ const offsetX = minX < 0 ? Math.abs(minX) : 0;
56
+ const offsetY = minY < 0 ? Math.abs(minY) : 0;
57
+ const lineOffset = Math.ceil(props.lineWidth / 2);
58
+
59
+ // 计算画布尺寸(考虑线宽)
60
+ const width = Math.max(...xValues) - minX + props.lineWidth * 2;
61
+ const height = Math.max(...yValues) - minY + props.lineWidth * 2;
62
+
63
+ return {
64
+ offsetX: offsetX + lineOffset,
65
+ offsetY: offsetY + lineOffset,
66
+ width,
67
+ height
68
+ };
69
+ });
70
+
71
+ // 创建画布纹理
72
+ let sourceId = '';
73
+ const canvasRef = JsvTextureStoreApi.canvasTexture(
74
+ canvasInfo.value.width,
75
+ canvasInfo.value.height
76
+ );
77
+
78
+ // 绘制透明背景
79
+ canvasRef.drawColor("rgba(0,0,0,0)");
80
+
81
+ // 创建自定义路径
82
+ const path = canvasRef.customPath();
83
+
84
+ // 移动到第一个调整后的点
85
+ if (props.points.length > 0) {
86
+ const firstPoint = props.points[0];
87
+ path.moveTo(
88
+ firstPoint.x + canvasInfo.value.offsetX,
89
+ firstPoint.y + canvasInfo.value.offsetY
90
+ );
91
+
92
+ // 连接后续的调整后的点
93
+ for (let i = 1; i < props.points.length; i++) {
94
+ const point = props.points[i];
95
+ path.lineTo(
96
+ point.x + canvasInfo.value.offsetX,
97
+ point.y + canvasInfo.value.offsetY
98
+ );
99
+ }
100
+ path.close();
101
+ }
102
+
103
+ // 使用虚线样式绘制路径
104
+ path.strokeWithSetting({
105
+ lineWidth: props.lineWidth,
106
+ color: props.color,
107
+ dash: props.dash,
108
+ phase: props.phase
109
+ });
110
+
111
+ // 提交纹理并获取sourceId
112
+ sourceId = canvasRef.commit();
113
+
114
+ // 组件卸载时清理纹理
115
+ onBeforeUnmount(() => {
116
+ JsvTextureStoreApi.deleteTexture(sourceId);
117
+ });
118
+ </script>
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <JsvApic2 ref="apicRef" :src="`url(${src})`" :style="layout" />
3
+ </template>
4
+
5
+ <script setup>
6
+ import { JsvApic2, LoopType, ApicEndState } from "jsview";
7
+ import { shallowRef, onMounted } from "vue";
8
+ const props = defineProps({
9
+ src: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ repeat: {
14
+ type: [String, Number],
15
+ default: 0,
16
+ },
17
+ layout: {
18
+ type: Object,
19
+ },
20
+ });
21
+
22
+ const apicRef = shallowRef();
23
+ onMounted(() => {
24
+ let loopType = LoopType.LOOP_DEFAULT;
25
+ let loopInfo = undefined;
26
+ if (typeof props.repeat == "number") {
27
+ if (props.repeat >= 0) {
28
+ loopType = LoopType.LOOP_FINITE;
29
+ loopInfo = props.repeat;
30
+ } else {
31
+ loopType = LoopType.LOOP_INFINITE;
32
+ }
33
+ } else if (typeof props.repeat == "string") {
34
+ switch (props.repeat) {
35
+ case "default":
36
+ loopType = LoopType.LOOP_DEFAULT;
37
+ break;
38
+ case "infinite":
39
+ loopType = LoopType.LOOP_INFINITE;
40
+ break;
41
+ }
42
+ } else {
43
+ throw new Error("AnimPic props.repeat must be number or string.");
44
+ }
45
+ apicRef.value.play(loopType, loopInfo, ApicEndState.LAST_FRAME);
46
+ });
47
+ </script>
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <anim-pic
3
+ :src="webpImage"
4
+ :repeat="3"
5
+ :layout="{
6
+ left: 50,
7
+ top: 50,
8
+ width: 300,
9
+ height: 300,
10
+ }"
11
+ ></anim-pic>
12
+ <anim-pic
13
+ :src="gifImage"
14
+ :repeat="'infinite'"
15
+ :layout="{
16
+ left: 350,
17
+ top: 50,
18
+ width: 300,
19
+ height: 300,
20
+ }"
21
+ ></anim-pic>
22
+ </template>
23
+ <script setup>
24
+ import AnimPic from "./AnimPic.vue";
25
+
26
+ const webpImage = "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/DemoForOperator/AnimPic/App/animated_webp.webp";
27
+ const gifImage = "https://cdn.release.qcast.cn/JsViewFrameworkTester/JsViewVueSampleResources/DemoForOperator/AnimPic/App/girl_run.gif";
28
+ </script>
@@ -0,0 +1,26 @@
1
+ <template>
2
+ <Banger
3
+ :top="50"
4
+ :left="500"
5
+ :num="16"
6
+ :leadWireTime="4"
7
+ :width="100"
8
+ :starSrcs="starSrcs"
9
+ :bangerSpriteSrc="bangerSpriteSrc"
10
+ :leadWireSrc="leadWireSrc"
11
+ :sparkSpriteSrc="sparkSpriteSrc"
12
+ ></Banger>
13
+ </template>
14
+ <script setup>
15
+ import Banger from "./Banger/Banger.vue";
16
+
17
+ const star1 = "https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsViewFrameworkDemo/banger/redStar.png";
18
+ const star2 = "https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsViewFrameworkDemo/banger/yellowStar.png";
19
+ const star3 = "https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsViewFrameworkDemo/banger/purpleStar.png";
20
+ const bangerSpriteSrc = "https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsViewFrameworkDemo/banger/firecracker.png";
21
+
22
+ const leadWireSrc = "https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsViewFrameworkDemo/banger/leadWire.png";
23
+ const sparkSpriteSrc = "https://oss.image.qcast.cn/JsViewVideo/ImageTestSample/JsViewFrameworkDemo/banger/spark.png";
24
+
25
+ const starSrcs = [star1, star2, star3];
26
+ </script>