@shijiu/jsview-vue 0.9.502 → 0.9.631

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 (240) hide show
  1. package/dom/bin/jsview-browser-debug-dom.min.js +1 -1
  2. package/dom/bin/jsview-dom.min.js +1 -1
  3. package/dom/target_core_revision.js +4 -3
  4. package/index.js +10 -0
  5. package/package.json +8 -1
  6. package/patches/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +16 -5
  7. package/samples/AnimPicture/App.vue +89 -106
  8. package/samples/Basic/App.vue +65 -68
  9. package/samples/Basic/components/ContentBlock.vue +31 -36
  10. package/samples/Basic/components/anim/AnimGroup.vue +61 -75
  11. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +54 -43
  12. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +25 -31
  13. package/samples/Basic/components/anim/AnimTransition.vue +142 -105
  14. package/samples/Basic/components/div/DivBackground.vue +38 -16
  15. package/samples/Basic/components/div/DivClip.vue +143 -78
  16. package/samples/Basic/components/div/DivCssScoped.vue +10 -10
  17. package/samples/Basic/components/div/DivCssVar.vue +40 -42
  18. package/samples/Basic/components/div/DivGroup1.vue +45 -39
  19. package/samples/Basic/components/div/DivGroup2.vue +56 -45
  20. package/samples/Basic/components/div/DivLayout.vue +63 -5
  21. package/samples/Basic/components/div/DivRadius.vue +51 -42
  22. package/samples/Basic/components/div/DivTransform.vue +21 -16
  23. package/samples/Basic/components/panel/Panel1.vue +46 -44
  24. package/samples/Basic/components/panel/Panel2.vue +22 -26
  25. package/samples/Basic/components/panel/TitleBar.vue +12 -12
  26. package/samples/Basic/components/text/TextAlign.vue +54 -44
  27. package/samples/Basic/components/text/TextEmoji.vue +16 -20
  28. package/samples/Basic/components/text/TextFontStyle.vue +77 -53
  29. package/samples/Basic/components/text/TextGroup1.vue +46 -38
  30. package/samples/Basic/components/text/TextGroup2.vue +25 -28
  31. package/samples/Basic/components/text/TextOverflow.vue +78 -59
  32. package/samples/BasicFocusControl/App.vue +22 -43
  33. package/samples/BasicFocusControl/components/BaseBlock.vue +42 -43
  34. package/samples/BasicFocusControl/components/MainArea.vue +55 -70
  35. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +11 -15
  36. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +21 -24
  37. package/samples/BasicFocusControl/components/SideBar.vue +32 -47
  38. package/samples/BasicFocusControl/components/SideBarBlock.vue +20 -23
  39. package/samples/Collision/App.vue +452 -0
  40. package/samples/ColorSpace/App.vue +15 -24
  41. package/samples/DemoHomepage/App.vue +7 -11
  42. package/samples/DemoHomepage/components/BodyFrame.vue +21 -9
  43. package/samples/DemoHomepage/components/TabFrame.vue +7 -8
  44. package/samples/DemoHomepage/router.js +52 -33
  45. package/samples/DemoHomepage/views/Homepage.vue +18 -9
  46. package/samples/FilterDemo/AnimatePic.vue +58 -0
  47. package/samples/FilterDemo/App.vue +99 -61
  48. package/samples/FilterDemo/VideoLayer.vue +62 -0
  49. package/samples/FlipCard/App.vue +32 -41
  50. package/samples/FlipCard/FlipCard.vue +48 -54
  51. package/samples/GridDemo/App.vue +109 -77
  52. package/samples/GridDemo/ButtonBlock.vue +50 -49
  53. package/samples/GridDemo/FocusItem.vue +19 -38
  54. package/samples/GridDemo/Item.vue +46 -54
  55. package/samples/HashHistory/App.vue +63 -79
  56. package/samples/HashHistory/components/HorizontalButtonList.vue +72 -95
  57. package/samples/HashHistory/components/Item.vue +42 -56
  58. package/samples/HashHistory/router.js +23 -12
  59. package/samples/HashHistory/views/MainPage.vue +35 -46
  60. package/samples/HashHistory/views/SubPage.vue +34 -47
  61. package/samples/ImpactStop/App.vue +435 -0
  62. package/samples/Input/App.vue +8 -18
  63. package/samples/Input/FullKeyboard.vue +2 -6
  64. package/samples/Input/InputPanel.vue +18 -12
  65. package/samples/Input/KeyboardItem.vue +1 -1
  66. package/samples/LongImage/App.vue +11 -27
  67. package/samples/LongImage/Button.vue +50 -145
  68. package/samples/LongImage/ButtonItem.vue +44 -0
  69. package/samples/LongImage/LongImageScroll.vue +71 -106
  70. package/samples/LongImage/Scroll.vue +7 -9
  71. package/samples/LongText/App.vue +13 -28
  72. package/samples/LongText/Button.vue +43 -145
  73. package/samples/LongText/ButtonItem.vue +44 -0
  74. package/samples/LongText/LongTextScroll.vue +68 -101
  75. package/samples/LongText/Scroll.vue +7 -9
  76. package/samples/Marquee/App.vue +34 -37
  77. package/samples/MaskClip/App.vue +17 -30
  78. package/samples/MetroWidgetDemos/Advanced/App.vue +47 -0
  79. package/samples/MetroWidgetDemos/Advanced/ButtonItem.vue +90 -0
  80. package/samples/MetroWidgetDemos/Advanced/Buttons.vue +70 -0
  81. package/samples/MetroWidgetDemos/Advanced/Mixed.vue +77 -0
  82. package/samples/MetroWidgetDemos/Advanced/Widgets.vue +71 -0
  83. package/samples/MetroWidgetDemos/Item.vue +67 -0
  84. package/samples/{SimpleWidgetDemo → MetroWidgetDemos/PerformanceTest}/App.vue +80 -104
  85. package/samples/{SimpleWidgetDemo → MetroWidgetDemos/PerformanceTest}/Item.vue +7 -0
  86. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/bg.jpg +0 -0
  87. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/coupon_content.png +0 -0
  88. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/coupon_left.png +0 -0
  89. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/coupon_mid.png +0 -0
  90. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/coupon_right.png +0 -0
  91. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/focus_border.png +0 -0
  92. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/holder_logo.png +0 -0
  93. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/jrbm.png +0 -0
  94. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/line_left.png +0 -0
  95. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/line_mid.png +0 -0
  96. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/line_right.png +0 -0
  97. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/loading.png +0 -0
  98. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/logo.png +0 -0
  99. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/mcjx.png +0 -0
  100. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/tao.png +0 -0
  101. package/samples/{ClassNameDemo → MetroWidgetDemos/PerformanceTest}/assets/tmall.png +0 -0
  102. package/samples/{SimpleWidgetDemo → MetroWidgetDemos/PerformanceTest}/border.png +0 -0
  103. package/samples/{SimpleWidgetDemo → MetroWidgetDemos/PerformanceTest}/components/ContentItem.vue +60 -86
  104. package/samples/{SimpleWidgetDemo → MetroWidgetDemos/PerformanceTest}/components/MyTab.vue +0 -0
  105. package/samples/MetroWidgetDemos/PerformanceTest/data.js +45 -0
  106. package/samples/MetroWidgetDemos/PingPong/App.vue +135 -0
  107. package/samples/MetroWidgetDemos/PingPong/AppPage.vue +73 -0
  108. package/samples/MetroWidgetDemos/PingPong/AppTab.vue +62 -0
  109. package/samples/MetroWidgetDemos/PingPong/TabItem.vue +84 -0
  110. package/samples/MetroWidgetDemos/PingPong/ViewSwiper.vue +214 -0
  111. package/samples/MetroWidgetDemos/Simple/AbsoluteTemplate.vue +75 -0
  112. package/samples/MetroWidgetDemos/Simple/App.vue +45 -0
  113. package/samples/MetroWidgetDemos/Simple/RelativeTemplate.vue +111 -0
  114. package/samples/MetroWidgetDemos/WidgetItem.vue +89 -0
  115. package/samples/MetroWidgetDemos/data.js +204 -0
  116. package/samples/NinePatchDemo/App.vue +114 -115
  117. package/samples/NinePatchDemo/Item.vue +7 -8
  118. package/samples/Preload/App.vue +67 -64
  119. package/samples/Preload/Item.vue +21 -29
  120. package/samples/QrcodeDemo/App.vue +24 -29
  121. package/samples/SoundPool/App.vue +77 -106
  122. package/samples/SprayView/App.vue +10 -8
  123. package/samples/SpriteImage/App.vue +1 -2
  124. package/samples/TextBox/App.vue +86 -101
  125. package/samples/TextBox/RenderCenter.vue +1 -1
  126. package/samples/TextBox/RenderLeft.vue +1 -1
  127. package/samples/TextBox/RenderOneLine.vue +1 -1
  128. package/samples/TextBox/RenderRight.vue +1 -1
  129. package/samples/TextShadowDemo/App.vue +1 -2
  130. package/samples/TextureAnimation/App.vue +16 -13
  131. package/samples/TextureAnimation/App2.vue +111 -0
  132. package/samples/TextureAnimation/assets/blackWhiteGrid.png +0 -0
  133. package/samples/TextureAnimation/assets/light.png +0 -0
  134. package/samples/TextureAnimation/assets/light2.png +0 -0
  135. package/samples/TextureAnimation/assets/mask.png +0 -0
  136. package/samples/TextureSize/App.vue +15 -25
  137. package/samples/ThrowMoveDemo/AccelerateDemo.vue +2 -4
  138. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +2 -3
  139. package/samples/ThrowMoveDemo/TargetDemo.vue +3 -4
  140. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +2 -3
  141. package/samples/TouchSample/App.vue +2 -3
  142. package/samples/TouchSample/Item.vue +15 -13
  143. package/samples/TouchSample/MetroWidgetHorizontal.vue +2 -2
  144. package/samples/TouchSample/MetroWidgetVertical.vue +1 -1
  145. package/samples/TouchSample/TouchContainerHorizontal.vue +4 -3
  146. package/samples/TouchSample/TouchContainerVertical.vue +3 -2
  147. package/samples/TransitPage/App.vue +20 -32
  148. package/samples/VideoDemo/App.vue +65 -81
  149. package/samples/VideoDemo/components/Button.vue +41 -52
  150. package/samples/VideoDemo/components/Controllor.vue +171 -169
  151. package/samples/VideoDemo/components/VideoFrame.vue +87 -99
  152. package/samples/VisibleSensorDemo/App.vue +234 -0
  153. package/scripts/jsview-jsmap-serve.js +42 -0
  154. package/scripts/jsview-post-install.js +1 -1
  155. package/tsconfig.json +3 -0
  156. package/utils/JsViewEngineWidget/JsvFocusBlock.vue +204 -193
  157. package/utils/JsViewEngineWidget/JsvFocusManager.js +30 -17
  158. package/utils/JsViewEngineWidget/MetroWidget/MetroWidget.vue +1561 -1656
  159. package/utils/JsViewEngineWidget/MetroWidget/PageUpdater.js +136 -0
  160. package/utils/JsViewEngineWidget/MetroWidget/ToolFunctions.js +18 -0
  161. package/utils/JsViewEngineWidget/TemplateParser.js +111 -1
  162. package/utils/JsViewEngineWidget/WidgetCommon.js +8 -2
  163. package/utils/JsViewEngineWidget/index.js +4 -4
  164. package/utils/JsViewPlugin/JsvPlayer/GetVersion.js +1 -1
  165. package/utils/JsViewPlugin/JsvPlayer/JsvMedia.js +301 -58
  166. package/utils/JsViewPlugin/JsvPlayer/JsvPlayer.vue +22 -3
  167. package/utils/JsViewPlugin/JsvPlayer/index.js +8 -1
  168. package/utils/JsViewPlugin/JsvPlayer/version.js +5 -5
  169. package/utils/JsViewVueTools/JsvImpactTracer.js +113 -0
  170. package/utils/JsViewVueTools/JsvRefTaker.js +35 -0
  171. package/utils/JsViewVueTools/index.js +20 -0
  172. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +11 -1
  173. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +8 -4
  174. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserTextureAnim.vue +203 -14
  175. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +2 -2
  176. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +2 -2
  177. package/utils/JsViewVueWidget/JsvFilterView.vue +59 -51
  178. package/utils/JsViewVueWidget/JsvGrid.vue +139 -41
  179. package/utils/JsViewVueWidget/JsvInput/Cursor.vue +4 -2
  180. package/utils/JsViewVueWidget/JsvInput/JsvInput.vue +13 -12
  181. package/utils/JsViewVueWidget/JsvMaskClipDiv.vue +3 -1
  182. package/utils/JsViewVueWidget/JsvNativeSharedDiv.vue +8 -17
  183. package/utils/JsViewVueWidget/JsvNinePatch.vue +1 -1
  184. package/utils/JsViewVueWidget/JsvPosterDiv.vue +37 -7
  185. package/utils/JsViewVueWidget/JsvPosterImage.vue +34 -13
  186. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +39 -53
  187. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +1 -1
  188. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +13 -10
  189. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +282 -285
  190. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +2 -3
  191. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +6 -1
  192. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +6 -1
  193. package/utils/JsViewVueWidget/JsvTextureAnim/JsvTextureAnim.vue +142 -61
  194. package/utils/JsViewVueWidget/JsvTextureAnim/index.js +9 -5
  195. package/utils/JsViewVueWidget/JsvTransparentDiv.vue +7 -8
  196. package/utils/JsViewVueWidget/JsvVideo.vue +9 -12
  197. package/utils/JsViewVueWidget/JsvVisibleSensor/JsvVisibleSensor.vue +141 -0
  198. package/utils/JsViewVueWidget/JsvVisibleSensor/index.js +9 -0
  199. package/utils/JsViewVueWidget/index.js +42 -0
  200. package/samples/AdvanceMetroWidget/App.vue +0 -123
  201. package/samples/AdvanceMetroWidget/Frame.vue +0 -102
  202. package/samples/AdvanceMetroWidget/Item.vue +0 -63
  203. package/samples/AdvanceMetroWidget/data.js +0 -137
  204. package/samples/ClassNameDemo/App.vue +0 -119
  205. package/samples/ClassNameDemo/components/ContentItem.vue +0 -253
  206. package/samples/ClassNameDemo/components/LoadingView.vue +0 -43
  207. package/samples/ClassNameDemo/components/TitleView.vue +0 -24
  208. package/samples/ClassNameDemo/data.js +0 -24
  209. package/samples/FlowMultiWidget/App.vue +0 -91
  210. package/samples/FlowMultiWidget/assets/nine_patch_focus.png +0 -0
  211. package/samples/FlowMultiWidget/components/Block.vue +0 -107
  212. package/samples/FlowMultiWidget/components/FlowPage.vue +0 -60
  213. package/samples/FlowMultiWidget/components/Item.vue +0 -103
  214. package/samples/FlowMultiWidget/components/MenuItem.vue +0 -72
  215. package/samples/FlowMultiWidget/components/MyMenu.vue +0 -90
  216. package/samples/FlowMultiWidget/data.js +0 -446
  217. package/samples/HashHistory/views/BasePage.vue +0 -19
  218. package/samples/HashHistory/views/SubPageFirst.vue +0 -10
  219. package/samples/HashHistory/views/SubPageSecond.vue +0 -10
  220. package/samples/SimpleWidgetDemo/assets/bg.jpg +0 -0
  221. package/samples/SimpleWidgetDemo/assets/coupon_content.png +0 -0
  222. package/samples/SimpleWidgetDemo/assets/coupon_left.png +0 -0
  223. package/samples/SimpleWidgetDemo/assets/coupon_mid.png +0 -0
  224. package/samples/SimpleWidgetDemo/assets/coupon_right.png +0 -0
  225. package/samples/SimpleWidgetDemo/assets/focus_border.png +0 -0
  226. package/samples/SimpleWidgetDemo/assets/holder_logo.png +0 -0
  227. package/samples/SimpleWidgetDemo/assets/jrbm.png +0 -0
  228. package/samples/SimpleWidgetDemo/assets/line_left.png +0 -0
  229. package/samples/SimpleWidgetDemo/assets/line_mid.png +0 -0
  230. package/samples/SimpleWidgetDemo/assets/line_right.png +0 -0
  231. package/samples/SimpleWidgetDemo/assets/loading.png +0 -0
  232. package/samples/SimpleWidgetDemo/assets/logo.png +0 -0
  233. package/samples/SimpleWidgetDemo/assets/mcjx.png +0 -0
  234. package/samples/SimpleWidgetDemo/assets/tao.png +0 -0
  235. package/samples/SimpleWidgetDemo/assets/tmall.png +0 -0
  236. package/samples/SimpleWidgetDemo/data.js +0 -124
  237. package/utils/JsViewEngineWidget/MetroWidget/ContentView.vue +0 -63
  238. package/utils/JsViewEngineWidget/MetroWidget/DivWrapper.vue +0 -51
  239. package/utils/JsViewEngineWidget/MetroWidget/ItemView.vue +0 -213
  240. package/utils/JsViewEngineWidget/MetroWidget/RootView.vue +0 -154
@@ -0,0 +1,111 @@
1
+ <script setup>
2
+ import { ref, reactive } from "vue";
3
+ import { useRouter } from "vue-router";
4
+ import {
5
+ jJsvRuntimeBridge,
6
+ getKeyFramesGroup,
7
+ JsvTextureAnim,
8
+ TexAlignAnchor,
9
+ DECORATE_NINEPATCH_ALPHA_MIX,
10
+ DECORATE_BORDER_RADIUS,
11
+ } from "jsview";
12
+ import img from "./assets/light.png";
13
+ import img2 from "./assets/light2.png";
14
+ import mask from "./assets/mask.png";
15
+
16
+ const getRandom = (start, end) => {
17
+ return Math.round(Math.random() * (end - start) + start);
18
+ };
19
+
20
+ const router = useRouter();
21
+ const width = ref(300);
22
+ const height = ref(200);
23
+ const left = ref(50);
24
+ const top = ref(80);
25
+ const rotateAnimation =
26
+ "{from {transform: rotate3d(0,0,1,0);} to {transform: rotate3d(0,0,1,360deg);}}";
27
+
28
+ const ninePatchDecorator = {
29
+ type: DECORATE_NINEPATCH_ALPHA_MIX,
30
+ url: `url(${mask})`,
31
+ imageWidth: 86,
32
+ centerWidth: 2,
33
+ borderOutset: 0,
34
+ animTime: 0.5,
35
+ };
36
+ //注意texture的尺寸需要兼顾最大的view
37
+ const texCoord = {
38
+ width: 600,
39
+ height: 600,
40
+ };
41
+ const onKeyDown = (ev) => {
42
+ // 8:Backspace, 27:Escape, 10000:盒子返回键
43
+ if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
44
+ router?.go(-1); // 有router时,是从DemoHomepage进入,回退
45
+ } else if (ev.keyCode == 13) {
46
+ left.value = getRandom(50, 400);
47
+ top.value = getRandom(80, 200);
48
+ width.value = getRandom(100, 300);
49
+ height.value = getRandom(100, 300);
50
+ }
51
+ return true;
52
+ };
53
+ </script>
54
+ <template>
55
+ <jsv-focus-block
56
+ autoFocus
57
+ :onKeyDown="onKeyDown"
58
+ :style="{
59
+ width: 1280,
60
+ height: 720,
61
+ backgroundImage:
62
+ 'https://qcast-image.oss-cn-qingdao.aliyuncs.com/JsViewVideo/ImageTestSample/BackgroundLongmao.jpg',
63
+ }"
64
+ >
65
+ <div
66
+ :style="{
67
+ textAlign: 'center',
68
+ fontSize: '30px',
69
+ lineHeight: '50px',
70
+ color: '#ffffff',
71
+ left: 140,
72
+ top: 20,
73
+ width: 1000,
74
+ height: 50,
75
+ backgroundColor: 'rgba(27,38,151,0.8)',
76
+ }"
77
+ >
78
+ .9型的旋转焦点框,OK键进行随机位置+尺寸变换
79
+ </div>
80
+ <div>
81
+ <jsv-texture-anim
82
+ :src="img"
83
+ :left="left"
84
+ :top="top"
85
+ :width="width"
86
+ :height="height"
87
+ :texCoord="texCoord"
88
+ :animation="rotateAnimation"
89
+ :duration="2000"
90
+ :repeat="-1"
91
+ :autoStart="true"
92
+ :decorate="ninePatchDecorator"
93
+ ></jsv-texture-anim>
94
+ </div>
95
+ <div>
96
+ <jsv-texture-anim
97
+ :src="img2"
98
+ :left="left + 500"
99
+ :top="top"
100
+ :width="width"
101
+ :height="height"
102
+ :texCoord="texCoord"
103
+ :animation="rotateAnimation"
104
+ :duration="2000"
105
+ :repeat="-1"
106
+ :autoStart="true"
107
+ :decorate="ninePatchDecorator"
108
+ ></jsv-texture-anim>
109
+ </div>
110
+ </jsv-focus-block>
111
+ </template>
@@ -1,36 +1,26 @@
1
- <script>
2
- import { Vue } from "vue-class-component";
1
+ <script setup>
3
2
  import jpegDemo from "./jpegDemo.jpeg";
4
3
  import pngDemo from "./pngDemo.png";
5
4
  import pngNoAlphaDemo from "./pngNoAlphaDemo.png";
6
5
  import bmpDemo from "./bmpDemo.bmp";
6
+ import { useRouter } from "vue-router";
7
7
 
8
- class App extends Vue {
9
- constructor(props) {
10
- super(props);
8
+ const router = useRouter();
11
9
 
12
- this.jpegDemo = jpegDemo;
13
- this.pngDemo = pngDemo;
14
- this.pngNoAlphaDemo = pngNoAlphaDemo;
15
- this.bmpDemo = bmpDemo;
16
- }
17
-
18
- onKeyDown(ev) {
19
- // 8:Backspace, 27:Escape, 10000:盒子返回键
20
- if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
21
- if (window.JsView) {
22
- window.JsView.setGlobalConfig({
23
- texCache: -1,
24
- });
25
- }
26
-
27
- this.$router?.go(-1); // 有router时,回退
28
- return true;
10
+ const onKeyDown = (ev) => {
11
+ // 8:Backspace, 27:Escape, 10000:盒子返回键
12
+ if (ev.keyCode == 8 || ev.keyCode == 27 || ev.keyCode == 10000) {
13
+ if (window.JsView) {
14
+ window.JsView.setGlobalConfig({
15
+ texCache: -1,
16
+ });
29
17
  }
30
- return false;
18
+
19
+ router.go(-1); // 有router时,回退
20
+ return true;
31
21
  }
32
- }
33
- export default App;
22
+ return false;
23
+ };
34
24
  </script>
35
25
  <template>
36
26
  <jsv-focus-block autoFocus :onKeyDown="onKeyDown">
@@ -2,13 +2,11 @@
2
2
  * @Author: ChenChanghua
3
3
  * @Date: 2021-10-20 18:27:25
4
4
  * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2021-10-21 14:51:53
5
+ * @LastEditTime: 2022-07-08 14:11:05
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvActorMove, {
10
- JsvActorMoveControl,
11
- } from "jsview/utils/JsViewVueWidget/JsvActorMove";
9
+ import { JsvActorMoveControl, JsvActorMove } from "jsview";
12
10
  export default {
13
11
  components: {
14
12
  JsvActorMove,
@@ -6,9 +6,8 @@
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvActorMove, {
10
- JsvActorMoveControl,
11
- } from "jsview/utils/JsViewVueWidget/JsvActorMove";
9
+ import { JsvActorMoveControl, JsvActorMove } from "jsview";
10
+
12
11
  export default {
13
12
  components: {
14
13
  JsvActorMove,
@@ -2,13 +2,12 @@
2
2
  * @Author: ChenChanghua
3
3
  * @Date: 2021-10-20 18:27:25
4
4
  * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2021-10-21 14:40:47
5
+ * @LastEditTime: 2022-07-08 14:11:39
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvActorMove, {
10
- JsvActorMoveControl,
11
- } from "jsview/utils/JsViewVueWidget/JsvActorMove";
9
+ import { JsvActorMoveControl, JsvActorMove } from "jsview";
10
+
12
11
  export default {
13
12
  components: {
14
13
  JsvActorMove,
@@ -6,9 +6,8 @@
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvActorMove, {
10
- JsvActorMoveControl,
11
- } from "jsview/utils/JsViewVueWidget/JsvActorMove";
9
+ import { JsvActorMoveControl, JsvActorMove } from "jsview";
10
+
12
11
  export default {
13
12
  components: {
14
13
  JsvActorMove,
@@ -2,16 +2,15 @@
2
2
  * @Author: ChenChanghua
3
3
  * @Date: 2022-04-10 21:20:39
4
4
  * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2022-04-11 09:51:24
5
+ * @LastEditTime: 2022-07-08 14:12:05
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvTouchContainer from "jsview/utils/JsViewVueWidget/JsvTouchContainer.vue";
10
9
  import MetroWidgetHorizontal from "./MetroWidgetHorizontal.vue";
11
10
  import MetroWidgetVertical from "./MetroWidgetVertical.vue";
12
11
  import TouchContainerHorizontal from "./TouchContainerHorizontal.vue";
13
12
  import TouchContainerVertical from "./TouchContainerVertical.vue";
14
- import { jJsvRuntimeBridge } from "jsview/utils/JsViewVueTools/JsvRuntimeBridge";
13
+ import { jJsvRuntimeBridge, JsvTouchContainer } from "jsview";
15
14
 
16
15
  export default {
17
16
  components: {
@@ -6,7 +6,7 @@
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import { getPositionRelativeToView } from "jsview/utils/JsViewEngineWidget";
9
+ import { getPositionRelativeToView } from "jsview";
10
10
  function randomColor() {
11
11
  let randomColor = Math.round(Math.random() * 2 ** 24).toString(16);
12
12
  return (
@@ -29,7 +29,7 @@ export default {
29
29
  setup() {
30
30
  return {
31
31
  randomColor,
32
- }
32
+ };
33
33
  },
34
34
  computed: {
35
35
  style() {
@@ -44,7 +44,7 @@ export default {
44
44
  methods: {
45
45
  onFocus() {
46
46
  this.focused = true;
47
- console.log("cchtest item onfocus", this.data)
47
+ console.log("cchtest item onfocus", this.data);
48
48
  },
49
49
 
50
50
  onBlur() {
@@ -53,7 +53,7 @@ export default {
53
53
 
54
54
  onClick() {
55
55
  console.log(`item ${this.query.id} clicked`);
56
- }
56
+ },
57
57
  },
58
58
  created() {
59
59
  // console.log("cchtest item created", this.data.content)
@@ -69,7 +69,7 @@ export default {
69
69
  },
70
70
  updated() {
71
71
  // console.log("cchtest item update", this.data.content)
72
- }
72
+ },
73
73
  };
74
74
  </script>
75
75
 
@@ -77,18 +77,20 @@ export default {
77
77
  <div ref="element" :class="focused ? 'focus' : 'blur'" :style="style">
78
78
  {{ data.content }}
79
79
  </div>
80
- <div :style="{
81
- left: data.width/2,
82
- top: data.height/2,
83
- width: 10,
84
- height: 10,
85
- backgroundColor: focused ? '#000000' : '#FF0000'
86
- }"/>
80
+ <div
81
+ :style="{
82
+ left: data.width / 2,
83
+ top: data.height / 2,
84
+ width: 10,
85
+ height: 10,
86
+ backgroundColor: focused ? '#000000' : '#FF0000',
87
+ }"
88
+ />
87
89
  </template>
88
90
 
89
91
  <style scoped>
90
92
  .focus {
91
- transform: scale3d(1.0, 1.0, 1);
93
+ transform: scale3d(1, 1, 1);
92
94
  transition: transform 0.25s linear;
93
95
  font-size: 30px;
94
96
  }
@@ -5,7 +5,7 @@ import {
5
5
  WholePageSlide,
6
6
  SeamlessSlide,
7
7
  FixPositionSlide,
8
- } from "jsview/utils/JsViewEngineWidget";
8
+ } from "jsview";
9
9
 
10
10
  import Item from "./Item.vue";
11
11
 
@@ -51,7 +51,7 @@ export default {
51
51
 
52
52
  <template>
53
53
  <div class="rootSize">
54
- <div :style="{ width: 1280, height: 720, left: 50, }">
54
+ <div :style="{ width: 1280, height: 720, left: 50 }">
55
55
  <div
56
56
  :style="{
57
57
  top: 0,
@@ -5,7 +5,7 @@ import {
5
5
  WholePageSlide,
6
6
  SeamlessSlide,
7
7
  FixPositionSlide,
8
- } from "jsview/utils/JsViewEngineWidget";
8
+ } from "jsview";
9
9
 
10
10
  import Item from "./Item.vue";
11
11
 
@@ -2,15 +2,16 @@
2
2
  * @Author: ChenChanghua
3
3
  * @Date: 2022-04-10 21:21:02
4
4
  * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2022-04-11 10:05:35
5
+ * @LastEditTime: 2022-07-08 14:40:19
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvTouchContainer, {
9
+ import {
10
+ JsvTouchContainer,
10
11
  DIRECTION_VERTICAL,
11
12
  DIRECTION_HORIZONTAL,
12
13
  DIRECTION_DISABLE,
13
- } from "jsview/utils/JsViewVueWidget/JsvTouchContainer.vue";
14
+ } from "jsview";
14
15
  import { touchContainerH, measures } from "./data.js";
15
16
  function randomColor() {
16
17
  let randomColor = Math.round(Math.random() * 2 ** 24).toString(16);
@@ -6,11 +6,12 @@
6
6
  * @Description: file content
7
7
  -->
8
8
  <script>
9
- import JsvTouchContainer, {
9
+ import {
10
+ JsvTouchContainer,
10
11
  DIRECTION_VERTICAL,
11
12
  DIRECTION_HORIZONTAL,
12
13
  DIRECTION_DISABLE,
13
- } from "jsview/utils/JsViewVueWidget/JsvTouchContainer.vue";
14
+ } from "jsview";
14
15
  import { touchContainerV, measures } from "./data.js";
15
16
  function randomColor() {
16
17
  let randomColor = Math.round(Math.random() * 2 ** 24).toString(16);
@@ -1,41 +1,29 @@
1
- <script>
2
- import { Options, Vue } from "vue-class-component";
3
- import DemoApp from "../DemoHomepage/App.vue"
4
- import ActivityApp from "../SimpleWidgetDemo/App.vue" // TODO
5
- import { jJsvRuntimeBridge } from "jsview/utils/JsViewVueTools/JsvRuntimeBridge";
1
+ <script setup>
2
+ import DemoApp from "../DemoHomepage/App.vue";
3
+ import ActivityApp from "../MetroWidgetDemos/PerformanceTest/App.vue"; // TODO
4
+ import { jJsvRuntimeBridge } from "jsview";
5
+ import { ref, onMounted } from "vue";
6
6
 
7
- @Options({
8
- components: {
9
- DemoApp, ActivityApp,
10
- }
11
- })
12
- class TransitPage extends Vue {
13
- constructor(props) {
14
- super(props);
15
- this.showMode = TransitPage.getShowMode()
16
- }
17
- mounted() {
18
- jJsvRuntimeBridge.notifyPageLoaded();
7
+ const getShowMode = () => {
8
+ let showMode = 0;
9
+ // showMode信息可被URL中的?后缀信息替换
10
+ if (window.location.search.indexOf("showMode=0") >= 0) {
11
+ showMode = 0;
12
+ } else if (window.location.search.indexOf("showMode=1") >= 0) {
13
+ showMode = 1;
19
14
  }
20
15
 
21
- static getShowMode() {
22
- let showMode = 0
23
- // showMode信息可被URL中的?后缀信息替换
24
- if (window.location.search.indexOf("showMode=0") >= 0) {
25
- showMode = 0;
26
- } else if (window.location.search.indexOf("showMode=1") >= 0) {
27
- showMode = 1;
28
- }
16
+ return showMode;
17
+ };
29
18
 
30
- return showMode;
31
- }
32
- }
33
- TransitPage.Router = TransitPage.getShowMode() == 0 ? DemoApp.Router : ActivityApp.Router;
19
+ const showMode = ref(getShowMode());
34
20
 
35
- export default TransitPage;
21
+ onMounted(() => {
22
+ jJsvRuntimeBridge.notifyPageLoaded();
23
+ });
36
24
  </script>
37
25
 
38
26
  <template>
39
- <DemoApp v-if="showMode === 0" />
40
- <ActivityApp v-else-if="showMode === 1"/>
27
+ <DemoApp v-if="showMode === 0" />
28
+ <ActivityApp v-else-if="showMode === 1" />
41
29
  </template>
@@ -1,93 +1,78 @@
1
- <script>
2
- import { provide, reactive, ref, watch } from 'vue'
3
- import { Options, Vue } from "vue-class-component";
1
+ <script setup>
2
+ import { provide, reactive, ref, watch } from "vue";
4
3
  import Controllor from "./components/Controllor";
5
4
  import VideoFrame from "./components/VideoFrame";
6
5
 
7
- @Options({
8
- components: {
9
- Controllor,
10
- VideoFrame,
11
- },
12
- })
6
+ const Caption = {
7
+ offscreenVideo:
8
+ "名称:OffscreenVideo(自动播放)\n" +
9
+ "功能描述:\n" +
10
+ "1.离屏视频播放、支持前进/后退控制\n" +
11
+ "2.支持圆角设置\n" +
12
+ "3.支持平移、缩放、旋转等动画\n" +
13
+ "4.支持ObjectFit调整\n",
14
+ normalVideo:
15
+ "名称:Video\n" +
16
+ "功能描述:\n" +
17
+ "1.视频播放、支持前进/后退控制\n" +
18
+ "2.支持ObjectFit调整\n",
19
+ };
13
20
 
14
- class App extends Vue {
15
- constructor(props) {
16
- super(props);
17
- this.caption = null;
18
- this.useTexture = ref(null);
19
- this.videoTime = reactive({
20
- currentTime: 0,
21
- duration: 0,
22
- })
23
- this.objectFitTitle = ref(null);
24
- this.playStatus = ref('');
25
- provide('useTexture', this.useTexture)
26
- provide('objectFit', ref(null))
27
- provide('videoRect', ref({}))
28
- provide('playVideo', ref(null))
29
- provide('seekVideo', ref(null))
30
- provide('enableAnimation', ref(null))
31
- provide('videoTime', this.videoTime)
32
- provide('objectFitTitle', this.objectFitTitle)
33
- provide('playStatus', this.playStatus)
34
- watch(this.useTexture, () => {
35
- this.caption = (this.useTexture ? App.Caption.offscreenVideo : App.Caption.normalVideo);
36
- });
37
- }
38
- }
39
- App.Caption = {
40
- offscreenVideo: "名称:OffscreenVideo(自动播放)\n"
41
- + "功能描述:\n"
42
- + "1.离屏视频播放、支持前进/后退控制\n"
43
- + "2.支持圆角设置\n"
44
- + "3.支持平移、缩放、旋转等动画\n"
45
- + "4.支持ObjectFit调整\n",
46
- normalVideo: "名称:Video\n"
47
- + "功能描述:\n"
48
- + "1.视频播放、支持前进/后退控制\n"
49
- + "2.支持ObjectFit调整\n",
50
- }
51
-
52
- export default App;
21
+ let caption = ref(null);
22
+ let useTexture = ref(null);
23
+ let videoTime = reactive({
24
+ currentTime: 0,
25
+ duration: 0,
26
+ });
27
+ let objectFitTitle = ref(null);
28
+ let playStatus = ref("");
29
+ provide("useTexture", useTexture);
30
+ provide("objectFit", ref(null));
31
+ provide("videoRect", ref({}));
32
+ provide("playVideo", ref(null));
33
+ provide("seekVideo", ref(null));
34
+ provide("enableAnimation", ref(null));
35
+ provide("videoTime", videoTime);
36
+ provide("objectFitTitle", objectFitTitle);
37
+ provide("playStatus", playStatus);
38
+ watch(useTexture, () => {
39
+ caption.value = useTexture.value ? Caption.offscreenVideo : Caption.normalVideo;
40
+ });
53
41
  </script>
54
42
 
55
43
  <template>
56
- <div
44
+ <div
57
45
  :style="{
58
- top: 0, left: 0,
59
- width: 1280, height: 720,
60
- backgroundColor: 'rgb(222,211,140)'
46
+ top: 0,
47
+ left: 0,
48
+ width: 1280,
49
+ height: 720,
50
+ backgroundColor: 'rgb(222,211,140)',
61
51
  }"
62
- >
63
- <!-- :key="useTexture" => 当useTexture属性变化时,重建VideoFrame -->
64
- <VideoFrame
65
- :key="useTexture"
66
- />
67
-
68
- <!-- :key="useTexture" => JsView bug,当useTexture属性变化时,为了保证显示在VideoFrame前面 -->
69
- <div
70
- class="caption"
71
- :key="useTexture"
72
52
  >
73
- {{ caption }}
74
- </div>
75
- <div>
76
- <div class="text status">
77
- {{ '播放状态: ' + playStatus }}
78
- </div>
79
- <div class="text objectFit">
80
- {{ objectFitTitle }}
81
- </div>
82
- <div class="text current">
83
- {{ Math.ceil(videoTime.currentTime) }}
53
+ <!-- :key="useTexture" => 当useTexture属性变化时,重建VideoFrame -->
54
+ <VideoFrame :key="useTexture" />
55
+
56
+ <!-- :key="useTexture" => JsView bug,当useTexture属性变化时,为了保证显示在VideoFrame前面 -->
57
+ <div class="caption" :key="useTexture">
58
+ {{ caption }}
84
59
  </div>
85
- <div class="text duration">
86
- {{ '/' + Math.ceil(videoTime.duration) }}
60
+ <div>
61
+ <div class="text status">
62
+ {{ "播放状态: " + playStatus }}
63
+ </div>
64
+ <div class="text objectFit">
65
+ {{ objectFitTitle }}
66
+ </div>
67
+ <div class="text current">
68
+ {{ Math.ceil(videoTime.currentTime) }}
69
+ </div>
70
+ <div class="text duration">
71
+ {{ "/" + Math.ceil(videoTime.duration) }}
72
+ </div>
87
73
  </div>
74
+ <Controllor class="controllor" />
88
75
  </div>
89
- <Controllor class="controllor"/>
90
- </div>
91
76
  </template>
92
77
 
93
78
  <style scoped>
@@ -95,16 +80,16 @@ export default App;
95
80
  text-align: left;
96
81
  font-size: 24px;
97
82
  line-height: 30px;
98
- color: #FFFFFF;
83
+ color: #ffffff;
99
84
  left: 10;
100
85
  top: 10;
101
86
  width: 400;
102
87
  height: 180;
103
- background-color: rgba(27,38,151,0.8);
88
+ background-color: rgba(27, 38, 151, 0.8);
104
89
  }
105
90
 
106
91
  .text {
107
- color: #FF0000;
92
+ color: #ff0000;
108
93
  font-size: 24px;
109
94
  top: 550;
110
95
  width: 60;
@@ -133,5 +118,4 @@ export default App;
133
118
  left: 40;
134
119
  top: 600;
135
120
  }
136
-
137
121
  </style>