@shijiu/jsview-vue 0.9.246 → 0.9.254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dom/bin/package.json +11 -11
  2. package/dom/browser-root-style.css +21 -21
  3. package/loader/jsview-main.js +41 -41
  4. package/loader/jsview.config.default.js +37 -37
  5. package/loader/jsview.default.config.js +37 -37
  6. package/package.json +6 -6
  7. package/patches/node_modules/@babel/preset-env/lib/available-plugins.js +218 -218
  8. package/patches/node_modules/@vue/cli-plugin-typescript/index.js +100 -100
  9. package/patches/node_modules/@vue/cli-service/lib/commands/serve.js +395 -395
  10. package/patches/node_modules/@vue/cli-service/lib/config/app.js +272 -272
  11. package/patches/node_modules/@vue/cli-service/lib/config/assets.js +70 -70
  12. package/patches/node_modules/@vue/cli-service/lib/config/base.js +212 -212
  13. package/patches/node_modules/postcss-js/objectifier.js +90 -90
  14. package/patches/node_modules/vue-loader/dist/resolveScript.js +70 -70
  15. package/samples/AdvanceMetroWidget/App.vue +122 -122
  16. package/samples/AdvanceMetroWidget/Frame.vue +100 -100
  17. package/samples/AdvanceMetroWidget/Item.vue +57 -57
  18. package/samples/AdvanceMetroWidget/data.js +136 -136
  19. package/samples/AnimPicture/App.vue +223 -223
  20. package/samples/Basic/App.vue +128 -128
  21. package/samples/Basic/components/TitleBar.vue +28 -28
  22. package/samples/Basic/components/anim/AnimGroup.vue +67 -67
  23. package/samples/Basic/components/anim/AnimKeyframeBasic.vue +101 -101
  24. package/samples/Basic/components/anim/AnimKeyframeComposite.vue +52 -52
  25. package/samples/Basic/components/anim/AnimTransition.vue +116 -116
  26. package/samples/Basic/components/div/DivBackground.vue +14 -14
  27. package/samples/Basic/components/div/DivClip.vue +80 -80
  28. package/samples/Basic/components/div/DivCssScoped.vue +26 -26
  29. package/samples/Basic/components/div/DivCssVar.vue +49 -49
  30. package/samples/Basic/components/div/DivGroup1.vue +32 -32
  31. package/samples/Basic/components/div/DivGroup2.vue +40 -40
  32. package/samples/Basic/components/div/DivLayout.vue +11 -11
  33. package/samples/Basic/components/div/DivRadius.vue +46 -46
  34. package/samples/Basic/components/text/TextAlign.vue +47 -47
  35. package/samples/Basic/components/text/TextFontStyle.vue +57 -57
  36. package/samples/Basic/components/text/TextGroup.vue +31 -31
  37. package/samples/Basic/components/text/TextOverflow.vue +77 -77
  38. package/samples/BasicFocusControl/App.vue +124 -124
  39. package/samples/BasicFocusControl/components/BaseBlock.vue +50 -50
  40. package/samples/BasicFocusControl/components/MainArea.vue +97 -97
  41. package/samples/BasicFocusControl/components/MainAreaLeftBlock.vue +20 -20
  42. package/samples/BasicFocusControl/components/MainAreaRightBlock.vue +29 -29
  43. package/samples/BasicFocusControl/components/SideBar.vue +72 -72
  44. package/samples/BasicFocusControl/components/SideBarBlock.vue +29 -29
  45. package/samples/ClassNameDemo/App.vue +119 -119
  46. package/samples/ClassNameDemo/components/ContentItem.vue +252 -252
  47. package/samples/ClassNameDemo/components/LoadingView.vue +43 -43
  48. package/samples/ClassNameDemo/components/TitleView.vue +24 -24
  49. package/samples/ClassNameDemo/data.js +24 -24
  50. package/samples/ColorSpace/App.vue +134 -134
  51. package/samples/DemoHomepage/App.vue +31 -31
  52. package/samples/DemoHomepage/components/BodyFrame.vue +81 -81
  53. package/samples/DemoHomepage/components/Dialog.vue +93 -93
  54. package/samples/DemoHomepage/components/Item.vue +76 -76
  55. package/samples/DemoHomepage/components/TabFrame.vue +86 -86
  56. package/samples/DemoHomepage/router.js +132 -132
  57. package/samples/DemoHomepage/views/Homepage.vue +186 -186
  58. package/samples/FlipCard/App.vue +80 -80
  59. package/samples/FlipCard/FlipCard.vue +123 -123
  60. package/samples/FlipCard/data.js +12 -12
  61. package/samples/FlowMultiWidget/App.vue +90 -90
  62. package/samples/FlowMultiWidget/components/Block.vue +106 -106
  63. package/samples/FlowMultiWidget/components/FlowPage.vue +59 -59
  64. package/samples/FlowMultiWidget/components/Item.vue +102 -102
  65. package/samples/FlowMultiWidget/components/MenuItem.vue +71 -71
  66. package/samples/FlowMultiWidget/components/MyMenu.vue +89 -89
  67. package/samples/FlowMultiWidget/data.js +446 -446
  68. package/samples/HashHistory/App.vue +124 -124
  69. package/samples/HashHistory/components/HorizontalButtonList.vue +113 -113
  70. package/samples/HashHistory/components/Item.vue +73 -73
  71. package/samples/HashHistory/router.js +29 -29
  72. package/samples/HashHistory/views/BasePage.vue +18 -18
  73. package/samples/HashHistory/views/MainPage.vue +67 -67
  74. package/samples/HashHistory/views/SubPage.vue +78 -78
  75. package/samples/HashHistory/views/SubPageFirst.vue +9 -9
  76. package/samples/HashHistory/views/SubPageSecond.vue +9 -9
  77. package/samples/LongImage/App.vue +96 -96
  78. package/samples/LongImage/Button.vue +153 -153
  79. package/samples/LongImage/LongImageScroll.vue +126 -126
  80. package/samples/LongImage/Scroll.vue +15 -15
  81. package/samples/LongText/App.vue +111 -111
  82. package/samples/LongText/Button.vue +153 -153
  83. package/samples/LongText/LongTextScroll.vue +224 -224
  84. package/samples/LongText/Scroll.vue +15 -15
  85. package/samples/Preload/App.vue +145 -145
  86. package/samples/Preload/data.js +22 -22
  87. package/samples/Preload/preloadItem.vue +21 -21
  88. package/samples/QrcodeDemo/App.vue +72 -72
  89. package/samples/SimpleWidgetDemo/App.vue +203 -203
  90. package/samples/SimpleWidgetDemo/Item.vue +82 -82
  91. package/samples/SimpleWidgetDemo/components/ContentItem.vue +411 -411
  92. package/samples/SimpleWidgetDemo/components/MyTab.vue +116 -116
  93. package/samples/SimpleWidgetDemo/data.js +110 -110
  94. package/samples/SprayView/App.vue +269 -269
  95. package/samples/SpriteImage/App.vue +174 -174
  96. package/samples/SpriteImage/images/egg_break.json +116 -116
  97. package/samples/TextBox/App.vue +178 -178
  98. package/samples/TextBox/RenderCenter.vue +108 -108
  99. package/samples/TextBox/RenderLeft.vue +108 -108
  100. package/samples/TextBox/RenderOneLine.vue +119 -119
  101. package/samples/TextBox/RenderRight.vue +106 -106
  102. package/samples/TextShadowDemo/App.vue +97 -97
  103. package/samples/TextureSize/App.vue +141 -141
  104. package/samples/ThrowMoveDemo/AccelerateDemo.vue +117 -117
  105. package/samples/ThrowMoveDemo/App.vue +113 -113
  106. package/samples/ThrowMoveDemo/LRParabolicDemo.vue +115 -115
  107. package/samples/ThrowMoveDemo/TargetDemo.vue +116 -116
  108. package/samples/ThrowMoveDemo/UDParabolicDemo.vue +121 -121
  109. package/samples/TransitPage/App.vue +40 -40
  110. package/samples/VideoDemo/App.vue +137 -137
  111. package/samples/VideoDemo/components/Button.vue +68 -68
  112. package/samples/VideoDemo/components/Controllor.vue +195 -195
  113. package/samples/VideoDemo/components/VideoFrame.vue +152 -152
  114. package/scripts/common.js +115 -92
  115. package/scripts/deploy-fast-pack.js +17 -0
  116. package/scripts/deploy-fast-publish.js +44 -0
  117. package/scripts/{git-commit-empty.js → deploy-git-commit-empty.js} +21 -21
  118. package/scripts/{pre-pack.js → deploy-prepare.js} +56 -39
  119. package/scripts/{install-local-packages.js → jsview-install-local-packages.js} +73 -73
  120. package/scripts/{post-build.js → jsview-post-build.js} +127 -127
  121. package/scripts/{post-install.js → jsview-post-install.js} +78 -78
  122. package/scripts/{run-android.js → jsview-run-android.js} +64 -64
  123. package/scripts/make-js.sh +181 -181
  124. package/utils/JsViewEngineWidget/bin/index.js +1 -1
  125. package/utils/JsViewEngineWidget/bin/package.json +11 -11
  126. package/utils/JsViewVueTools/JsvHashHistory.js +111 -111
  127. package/utils/JsViewVueTools/JsvRuntimeBridge.js +417 -417
  128. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserPreload.vue +80 -80
  129. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserQrcode.vue +147 -147
  130. package/utils/JsViewVueWidget/BrowserDebugWidget/BrowserSpray.vue +54 -54
  131. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/ApicDataBase.js +28 -28
  132. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/BrowserApic.vue +123 -123
  133. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/GifData.js +83 -83
  134. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/LoopToolBase.js +25 -25
  135. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/NormalLoopTool.js +61 -61
  136. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/PartLoopTool.js +119 -119
  137. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/Viewer.js +106 -106
  138. package/utils/JsViewVueWidget/BrowserDebugWidget/JsvApic/WebpData.js +141 -141
  139. package/utils/JsViewVueWidget/BrowserDebugWidget/WidgetLoader.js +20 -20
  140. package/utils/JsViewVueWidget/JsvActorMove/ActorControlBase.js +204 -204
  141. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMove.vue +63 -63
  142. package/utils/JsViewVueWidget/JsvActorMove/JsvActorMoveControl.js +426 -426
  143. package/utils/JsViewVueWidget/JsvActorMove/index.js +12 -12
  144. package/utils/JsViewVueWidget/JsvApic/JsvApic.vue +178 -178
  145. package/utils/JsViewVueWidget/JsvApic/index.js +17 -17
  146. package/utils/JsViewVueWidget/JsvMarquee.vue +196 -196
  147. package/utils/JsViewVueWidget/JsvNinePatch.vue +76 -76
  148. package/utils/JsViewVueWidget/JsvPreload/JsvPreload.vue +350 -350
  149. package/utils/JsViewVueWidget/JsvPreload/index.js +21 -21
  150. package/utils/JsViewVueWidget/JsvQrcode/JsvQrcode.vue +140 -140
  151. package/utils/JsViewVueWidget/JsvQrcode/index.js +18 -18
  152. package/utils/JsViewVueWidget/JsvSpray/JsvSpray.vue +139 -139
  153. package/utils/JsViewVueWidget/JsvSpray/index.js +14 -14
  154. package/utils/JsViewVueWidget/JsvSpriteAnim/JsvSpriteAnim.vue +447 -447
  155. package/utils/JsViewVueWidget/JsvSpriteAnim/SpriteController.js +56 -56
  156. package/utils/JsViewVueWidget/JsvSpriteAnim/index.js +6 -6
  157. package/utils/JsViewVueWidget/JsvSwiper/Indicator.vue +34 -34
  158. package/utils/JsViewVueWidget/JsvSwiper/JsvSwiper.vue +494 -494
  159. package/utils/JsViewVueWidget/JsvSwiper/index.js +9 -9
  160. package/utils/JsViewVueWidget/JsvSwiper3D/Indicator.vue +34 -34
  161. package/utils/JsViewVueWidget/JsvSwiper3D/JsvSwiper.vue +403 -403
  162. package/utils/JsViewVueWidget/JsvSwiper3D/index.js +9 -9
  163. package/utils/JsViewVueWidget/JsvTextBox.vue +110 -110
  164. package/utils/JsViewVueWidget/JsvVideo.vue +35 -35
  165. package/vetur.config.js +5 -5
  166. package/.gitmodules +0 -6
  167. package/README.md +0 -15
  168. package/doc/IMPORT_CHANGE_LOG.txt +0 -3
  169. package/doc/about-project-postinstall.md +0 -0
  170. package/doc/git_commit.md +0 -15
  171. package/doc/test_version_up.txt +0 -1
  172. package/scripts/update-version.js +0 -32
  173. package/shijiu-jsview-vue-0.9.246.tgz +0 -0
@@ -1,122 +1,122 @@
1
- <!--
2
- * @Author: ChenChanghua
3
- * @Date: 2021-10-20 18:27:25
4
- * @LastEditors: ChenChanghua
5
- * @LastEditTime: 2021-10-21 14:07:16
6
- * @Description: file content
7
- -->
8
- <script>
9
- import JsvActorMove, {
10
- JsvActorMoveControl,
11
- } from "jsview/utils/JsViewVueWidget/JsvActorMove";
12
- export default {
13
- components: {
14
- JsvActorMove,
15
- },
16
- props: {
17
- name: String,
18
- },
19
- data() {
20
- return {
21
- direction: 1,
22
- };
23
- },
24
- computed: {
25
- directionDetail() {
26
- return this.direction < 0 ? "上" : "下";
27
- },
28
- detail() {
29
- return this.direction < 0 ? "向上抛物" : "向下掷物并弹起";
30
- },
31
- },
32
- setup() {
33
- let throwControl = new JsvActorMoveControl(); // 抛物运动体控制器
34
- let moveControl = new JsvActorMoveControl(); // 平移运动体控制器
35
-
36
- return {
37
- throwControl,
38
- moveControl,
39
- };
40
- },
41
- methods: {
42
- onKeyDown(ev) {
43
- let preDirection = this.direction;
44
- switch (ev.keyCode) {
45
- case 13:
46
- this.direction = -this.direction;
47
- this.throwControl.throwAlongY(
48
- -400 * preDirection,
49
- 550 * preDirection,
50
- {
51
- type: "catch",
52
- position: 100 * preDirection,
53
- direction: preDirection,
54
- },
55
- (x, y) => {
56
- console.log(`Throw end with x=${x} y=${y}`);
57
- }
58
- );
59
- return true;
60
- }
61
- return false;
62
- },
63
- },
64
- };
65
- </script>
66
-
67
- <template>
68
- <jsv-focus-block
69
- ref="focusNode"
70
- :name="name"
71
- autoFocus
72
- :onAction="{
73
- onKeyDown: onKeyDown,
74
- }"
75
- >
76
- <div
77
- key="sample1"
78
- class="detail-font"
79
- :style="{ top: 150, left: 425, width: 430, height: 40 }"
80
- >
81
- {{ detail }}
82
- </div>
83
- <div
84
- key="DirectText"
85
- class="font"
86
- :style="{ top: 250, left: 425, width: 430, height: 40 }"
87
- >
88
- {{ `当前方向:${directionDetail}` }}
89
- </div>
90
- <div :style="{ top: 590, left: 625 }">
91
- <jsv-actor-move key="move" :control="moveControl">
92
- <jsv-actor-move key="throw" :control="throwControl">
93
- <div
94
- :style="{ backgroundColor: '#ffb915', width: 30, height: 30 }"
95
- ></div>
96
- </jsv-actor-move>
97
- </jsv-actor-move>
98
- </div>
99
- </jsv-focus-block>
100
- </template>
101
-
102
- <style scoped>
103
- .font {
104
- font-size: 32px;
105
- color: #73665c;
106
- line-height: 40px;
107
- overflow: hidden;
108
- white-space: nowrap;
109
- text-overflow: ellipsis;
110
- text-align: center;
111
- }
112
-
113
- .detail-font {
114
- font-size: 32px;
115
- color: #f7f7eb;
116
- line-height: 30px;
117
- overflow: hidden;
118
- white-space: nowrap;
119
- text-overflow: ellipsis;
120
- text-align: center;
121
- }
1
+ <!--
2
+ * @Author: ChenChanghua
3
+ * @Date: 2021-10-20 18:27:25
4
+ * @LastEditors: ChenChanghua
5
+ * @LastEditTime: 2021-10-21 14:07:16
6
+ * @Description: file content
7
+ -->
8
+ <script>
9
+ import JsvActorMove, {
10
+ JsvActorMoveControl,
11
+ } from "jsview/utils/JsViewVueWidget/JsvActorMove";
12
+ export default {
13
+ components: {
14
+ JsvActorMove,
15
+ },
16
+ props: {
17
+ name: String,
18
+ },
19
+ data() {
20
+ return {
21
+ direction: 1,
22
+ };
23
+ },
24
+ computed: {
25
+ directionDetail() {
26
+ return this.direction < 0 ? "上" : "下";
27
+ },
28
+ detail() {
29
+ return this.direction < 0 ? "向上抛物" : "向下掷物并弹起";
30
+ },
31
+ },
32
+ setup() {
33
+ let throwControl = new JsvActorMoveControl(); // 抛物运动体控制器
34
+ let moveControl = new JsvActorMoveControl(); // 平移运动体控制器
35
+
36
+ return {
37
+ throwControl,
38
+ moveControl,
39
+ };
40
+ },
41
+ methods: {
42
+ onKeyDown(ev) {
43
+ let preDirection = this.direction;
44
+ switch (ev.keyCode) {
45
+ case 13:
46
+ this.direction = -this.direction;
47
+ this.throwControl.throwAlongY(
48
+ -400 * preDirection,
49
+ 550 * preDirection,
50
+ {
51
+ type: "catch",
52
+ position: 100 * preDirection,
53
+ direction: preDirection,
54
+ },
55
+ (x, y) => {
56
+ console.log(`Throw end with x=${x} y=${y}`);
57
+ }
58
+ );
59
+ return true;
60
+ }
61
+ return false;
62
+ },
63
+ },
64
+ };
65
+ </script>
66
+
67
+ <template>
68
+ <jsv-focus-block
69
+ ref="focusNode"
70
+ :name="name"
71
+ autoFocus
72
+ :onAction="{
73
+ onKeyDown: onKeyDown,
74
+ }"
75
+ >
76
+ <div
77
+ key="sample1"
78
+ class="detail-font"
79
+ :style="{ top: 150, left: 425, width: 430, height: 40 }"
80
+ >
81
+ {{ detail }}
82
+ </div>
83
+ <div
84
+ key="DirectText"
85
+ class="font"
86
+ :style="{ top: 250, left: 425, width: 430, height: 40 }"
87
+ >
88
+ {{ `当前方向:${directionDetail}` }}
89
+ </div>
90
+ <div :style="{ top: 590, left: 625 }">
91
+ <jsv-actor-move key="move" :control="moveControl">
92
+ <jsv-actor-move key="throw" :control="throwControl">
93
+ <div
94
+ :style="{ backgroundColor: '#ffb915', width: 30, height: 30 }"
95
+ ></div>
96
+ </jsv-actor-move>
97
+ </jsv-actor-move>
98
+ </div>
99
+ </jsv-focus-block>
100
+ </template>
101
+
102
+ <style scoped>
103
+ .font {
104
+ font-size: 32px;
105
+ color: #73665c;
106
+ line-height: 40px;
107
+ overflow: hidden;
108
+ white-space: nowrap;
109
+ text-overflow: ellipsis;
110
+ text-align: center;
111
+ }
112
+
113
+ .detail-font {
114
+ font-size: 32px;
115
+ color: #f7f7eb;
116
+ line-height: 30px;
117
+ overflow: hidden;
118
+ white-space: nowrap;
119
+ text-overflow: ellipsis;
120
+ text-align: center;
121
+ }
122
122
  </style>
@@ -1,41 +1,41 @@
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";
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();
19
- }
20
-
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
- }
29
-
30
- return showMode;
31
- }
32
- }
33
- TransitPage.Router = TransitPage.getShowMode() == 0 ? DemoApp.Router : ActivityApp.Router;
34
-
35
- export default TransitPage;
36
- </script>
37
-
38
- <template>
39
- <DemoApp v-if="showMode === 0" />
40
- <ActivityApp v-else-if="showMode === 1"/>
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";
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();
19
+ }
20
+
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
+ }
29
+
30
+ return showMode;
31
+ }
32
+ }
33
+ TransitPage.Router = TransitPage.getShowMode() == 0 ? DemoApp.Router : ActivityApp.Router;
34
+
35
+ export default TransitPage;
36
+ </script>
37
+
38
+ <template>
39
+ <DemoApp v-if="showMode === 0" />
40
+ <ActivityApp v-else-if="showMode === 1"/>
41
41
  </template>
@@ -1,137 +1,137 @@
1
- <script>
2
- import { provide, reactive, ref, watch } from 'vue'
3
- import { Options, Vue } from "vue-class-component";
4
- import Controllor from "./components/Controllor";
5
- import VideoFrame from "./components/VideoFrame";
6
-
7
- @Options({
8
- components: {
9
- Controllor,
10
- VideoFrame,
11
- },
12
- })
13
-
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;
53
- </script>
54
-
55
- <template>
56
- <div
57
- :style="{
58
- top: 0, left: 0,
59
- width: 1280, height: 720,
60
- backgroundColor: 'rgb(222,211,140)'
61
- }"
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
- >
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) }}
84
- </div>
85
- <div class="text duration">
86
- {{ '/' + Math.ceil(videoTime.duration) }}
87
- </div>
88
- </div>
89
- <Controllor class="controllor"/>
90
- </div>
91
- </template>
92
-
93
- <style scoped>
94
- .caption {
95
- text-align: left;
96
- font-size: 24px;
97
- line-height: 30px;
98
- color: #FFFFFF;
99
- left: 10;
100
- top: 10;
101
- width: 400;
102
- height: 180;
103
- background-color: rgba(27,38,151,0.8);
104
- }
105
-
106
- .text {
107
- color: #FF0000;
108
- font-size: 24px;
109
- top: 550;
110
- width: 60;
111
- height: 40;
112
- }
113
- .status {
114
- left: 50;
115
- width: 300;
116
- }
117
- .objectFit {
118
- left: 800;
119
- width: 200;
120
- text-align: center;
121
- }
122
-
123
- .current {
124
- left: 1060;
125
- text-align: right;
126
- }
127
- .duration {
128
- left: 1120;
129
- text-align: left;
130
- }
131
-
132
- .controllor {
133
- left: 40;
134
- top: 600;
135
- }
136
-
137
- </style>
1
+ <script>
2
+ import { provide, reactive, ref, watch } from 'vue'
3
+ import { Options, Vue } from "vue-class-component";
4
+ import Controllor from "./components/Controllor";
5
+ import VideoFrame from "./components/VideoFrame";
6
+
7
+ @Options({
8
+ components: {
9
+ Controllor,
10
+ VideoFrame,
11
+ },
12
+ })
13
+
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;
53
+ </script>
54
+
55
+ <template>
56
+ <div
57
+ :style="{
58
+ top: 0, left: 0,
59
+ width: 1280, height: 720,
60
+ backgroundColor: 'rgb(222,211,140)'
61
+ }"
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
+ >
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) }}
84
+ </div>
85
+ <div class="text duration">
86
+ {{ '/' + Math.ceil(videoTime.duration) }}
87
+ </div>
88
+ </div>
89
+ <Controllor class="controllor"/>
90
+ </div>
91
+ </template>
92
+
93
+ <style scoped>
94
+ .caption {
95
+ text-align: left;
96
+ font-size: 24px;
97
+ line-height: 30px;
98
+ color: #FFFFFF;
99
+ left: 10;
100
+ top: 10;
101
+ width: 400;
102
+ height: 180;
103
+ background-color: rgba(27,38,151,0.8);
104
+ }
105
+
106
+ .text {
107
+ color: #FF0000;
108
+ font-size: 24px;
109
+ top: 550;
110
+ width: 60;
111
+ height: 40;
112
+ }
113
+ .status {
114
+ left: 50;
115
+ width: 300;
116
+ }
117
+ .objectFit {
118
+ left: 800;
119
+ width: 200;
120
+ text-align: center;
121
+ }
122
+
123
+ .current {
124
+ left: 1060;
125
+ text-align: right;
126
+ }
127
+ .duration {
128
+ left: 1120;
129
+ text-align: left;
130
+ }
131
+
132
+ .controllor {
133
+ left: 40;
134
+ top: 600;
135
+ }
136
+
137
+ </style>