@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
@@ -1,30 +1,51 @@
1
1
  <!--
2
2
  * 【模块 export 内容】
3
3
  * JsvPosterImage:Vue高阶组件,海报描画,可设置color space 和 texture size
4
- * props说明:
5
- * colorSpace {String} 颜色空间,默认RGBA_8888
4
+ * props说明:
5
+ * colorSpace {String} 颜色空间,默认RGBA_8888
6
+ * style {Object} 包含left/top/width/height/border-radius的style设置
6
7
  -->
7
8
 
8
- <script>
9
- export default {
10
- props: {
11
- colorSpace: {
12
- type: String,
13
- default: "RGBA_8888",
14
- },
9
+ <script setup>
10
+
11
+ import { reactive, watchEffect } from "vue";
12
+
13
+ const props = defineProps({
14
+ colorSpace: {
15
+ type: String,
16
+ default: "RGBA_8888",
15
17
  },
16
- inheritAttrs: false,
17
- };
18
+
19
+ style: Object,
20
+ });
21
+
22
+ let common_style = reactive({});
23
+ let image_style = reactive({});
24
+
25
+ watchEffect(()=>{
26
+ if (props.style) {
27
+ let {left, top, width, height, ...others} = props.style;
28
+
29
+ common_style.left = left;
30
+ common_style.top = top;
31
+
32
+ image_style.width = width;
33
+ image_style.height = height;
34
+ Object.assign(image_style, others)
35
+ }
36
+ })
37
+
18
38
  </script>
19
39
 
20
40
  <template>
21
- <div>
41
+ <div :style="common_style">
22
42
  <slot></slot>
23
43
  <img
24
44
  jsv_enable_fade="true"
25
45
  jsv_poster_on_top="true"
26
46
  jsv_img_scaledown_tex="true"
27
- :jsv_img_color_space="{ colorSpace }"
47
+ :jsv_img_color_space="colorSpace"
48
+ :style="image_style"
28
49
  v-bind="$attrs"
29
50
  />
30
51
  </div>
@@ -7,8 +7,8 @@
7
7
  * 列表的内容可以是图片,音频等任何网络资源,下载后缓存在本地,归入本地缓存管理(LRU清理策略)
8
8
  * onPreloading {Function(float percent)}: 预加载中回调,返回预加载进度
9
9
  * onPreloadDone {Function(sizeArray)}: 预加载完成回调,sizeArray(格式Object[]),每个的格式为{width, height}
10
- * onDownloadDone {Function(pathesArray)}: 预下载完成回调,pathesArray(格式为String[])为下载好回调的地址,
11
- * 其中pathesArray为存储位置的路径列表
10
+ * onDownloadDone {Function(pathesArray, extra)}: 预下载完成回调,pathesArray(格式为String[])为下载好回调的地址,
11
+ * 其中pathesArray为存储位置的路径列表, extra为额外信息(目前只有下载图片时的尺寸)
12
12
  *
13
13
  * 注意事项:
14
14
  * 指定加载时的尺寸(0为不指定),与img标签中的 jsv_img_scaledown_tex 属性一起使用
@@ -54,10 +54,11 @@ const buildPreloadInfo = (
54
54
  };
55
55
  };
56
56
 
57
- const buildDownloadInfo = (url, net_setting = null) => {
57
+ const buildDownloadInfo = (url, net_setting = null, get_image_size) => {
58
58
  return {
59
59
  url,
60
60
  netSetting: net_setting,
61
+ getImageSize: get_image_size,
61
62
  magicToken: CONST_FORMAT_TOKEN, // 用于格式校验
62
63
  };
63
64
  };
@@ -79,6 +80,7 @@ export default {
79
80
  downloadViewList: [],
80
81
  preloadStateList: [],
81
82
  downloadStateList: [],
83
+ downloadResultMap: {},
82
84
  preloadResultMap: {},
83
85
  CONST_FORMAT_TOKEN: "_JsvP_",
84
86
  preloadIsNullNum: 0, // 纪录传入的preload为null的数量,由于vue不支持在子组件修改props值,所有在删除值为null时,需要++,这样才能保证与传入数据的length相等从而触发回调
@@ -136,29 +138,6 @@ export default {
136
138
  }
137
139
  },
138
140
 
139
- // shouldComponentUpdate(nextProps, nextState) {
140
- // if (
141
- // nextProps.preloadList.length === this.preloadList.length &&
142
- // nextProps.downloadList.length === this.downloadList.length
143
- // ) {
144
- // let same = true;
145
- // for (let i = 0; i < nextProps.preloadList.length; i++) {
146
- // if (nextProps.preloadList[i].url !== this.preloadList[i].url) {
147
- // same = false;
148
- // break;
149
- // }
150
- // }
151
- // for (let i = 0; i < nextProps.downloadList.length; i++) {
152
- // if (nextProps.downloadList[i].url !== this.downloadList[i].url) {
153
- // same = false;
154
- // break;
155
- // }
156
- // }
157
- // return !same;
158
- // }
159
- // return true;
160
- // },
161
-
162
141
  _checkPreload() {
163
142
  let loadedNum = 0;
164
143
  this.preloadStateList.forEach((state) => {
@@ -248,12 +227,7 @@ export default {
248
227
  const preload_view = new Forge.PreloadView(texture_setting);
249
228
  return {
250
229
  viewId: ForgeExtension.RootActivity.ViewStore.add(
251
- new Forge.ViewInfo(preload_view, {
252
- x: 0,
253
- y: 0,
254
- width: 0,
255
- height: 0,
256
- })
230
+ new Forge.ViewInfo(preload_view)
257
231
  ),
258
232
  textureRef: texture,
259
233
  callToken: callback_token,
@@ -266,7 +240,10 @@ export default {
266
240
  if (!state) return;
267
241
  }
268
242
  if (this.$props.onDownloadDone) {
269
- this.$props.onDownloadDone(this.downloadStateList);
243
+ this.$props.onDownloadDone(
244
+ this.downloadStateList,
245
+ this.downloadResultMap
246
+ );
270
247
  }
271
248
  },
272
249
 
@@ -274,7 +251,6 @@ export default {
274
251
  if (!this.downloadList) {
275
252
  return;
276
253
  }
277
- this.downloadStateList = new Array(this.downloadList.length).fill(null);
278
254
  // 直接在map前将url为null的值清除掉
279
255
  let downloadListData = this.downloadList;
280
256
  for (let i = 0; i < downloadListData.length; i++) {
@@ -282,13 +258,14 @@ export default {
282
258
  downloadListData.splice(i, 1);
283
259
  }
284
260
  }
261
+ this.downloadStateList = new Array(downloadListData.length).fill(null);
285
262
  this.downloadViewList = downloadListData.map((item, index) => {
286
263
  if (item.magicToken !== this.CONST_FORMAT_TOKEN) {
287
264
  console.error(
288
265
  "Error:format mismatch, data should comes from function buildDownloadInfo()"
289
266
  );
290
267
  }
291
- console.log(`OnDownload get${index} url=${item.url}`)
268
+ console.log(`OnDownload get${index} url=${item.url}`);
292
269
  const base_url = item.url;
293
270
  let image_url = base_url;
294
271
  if (base_url && base_url.indexOf("http") < 0) {
@@ -297,19 +274,33 @@ export default {
297
274
  image_url = new window.JsView.Dom.UrlRef(base_url).href;
298
275
  }
299
276
  }
300
- const texture =
301
- ForgeExtension.TextureManager.GetDownloadTexture(image_url);
277
+ const texture = ForgeExtension.TextureManager.GetDownloadTexture(
278
+ image_url,
279
+ null,
280
+ item.getImageSize
281
+ );
302
282
  if (!texture) {
303
- console.error("Error: Down view build texture failed for " + image_url);
304
- // 无法创建texture的图片先认为加载完成
305
- this.downloadStateList[index] = "invalid";
306
- return;
307
- }
308
- const callback_token = texture.RegisterLoadImageCallback(null, (texture_info) => {
309
- console.log(`OnDownload done index${index}`)
310
- this.downloadStateList[index] = texture_info.extra.absolutePath;
311
- this._checkDownload();
312
- });
283
+ console.error(
284
+ "Error: Down view build texture failed for " + image_url
285
+ );
286
+ // 无法创建texture的图片先认为加载完成
287
+ this.downloadStateList[index] = "invalid";
288
+ return;
289
+ }
290
+ const callback_token = texture.RegisterLoadImageCallback(
291
+ null,
292
+ (texture_info) => {
293
+ console.log(`OnDownload done index${index}`);
294
+ this.downloadStateList[index] = texture_info.extra.absolutePath;
295
+ if (item.getImageSize && texture_info.extra.width && texture_info.extra.height) {
296
+ this.downloadResultMap[texture_info.extra.absolutePath] = {
297
+ width: texture_info.extra.width,
298
+ height: texture_info.extra.height,
299
+ };
300
+ }
301
+ this._checkDownload();
302
+ }
303
+ );
313
304
  if (texture.EnableBackgroundLoad) {
314
305
  texture.EnableBackgroundLoad(this);
315
306
  }
@@ -318,12 +309,7 @@ export default {
318
309
 
319
310
  return {
320
311
  viewId: ForgeExtension.RootActivity.ViewStore.add(
321
- new Forge.ViewInfo(preload_view, {
322
- x: 0,
323
- y: 0,
324
- width: 0,
325
- height: 0,
326
- })
312
+ new Forge.ViewInfo(preload_view)
327
313
  ),
328
314
  textureRef: texture,
329
315
  callToken: callback_token,
@@ -116,7 +116,7 @@ export default {
116
116
  if (this.jsvBaseView === null) {
117
117
  this.jsvBaseView = new Forge.LayoutView();
118
118
  this.innerViewId = ForgeExtension.RootActivity.ViewStore.add(
119
- new Forge.ViewInfo(this.jsvBaseView, { x: 0, y: 0 })
119
+ new Forge.ViewInfo(this.jsvBaseView)
120
120
  );
121
121
  }
122
122
  // 构建QRCdoe view
@@ -34,7 +34,7 @@
34
34
  <script>
35
35
  import { Forge, ForgeExtension } from "../../../dom/jsv-forge-define";
36
36
 
37
- let buildForgeView = (pointRes, sprayStyle) => {
37
+ let buildForgeView = (pointRes, sprayStyle, sizeRef) => {
38
38
  if (!pointRes) {
39
39
  return -1;
40
40
  }
@@ -88,13 +88,10 @@ let buildForgeView = (pointRes, sprayStyle) => {
88
88
  sprayStyle.deltaWidth === 0 ? 1 : 2 * sprayStyle.deltaWidth;
89
89
  const view_height =
90
90
  sprayStyle.deltaHeight === 0 ? 1 : 2 * sprayStyle.deltaHeight;
91
+ sizeRef.width = view_width;
92
+ sizeRef.height = view_height;
91
93
  return ForgeExtension.RootActivity.ViewStore.add(
92
- new Forge.ViewInfo(spray_view, {
93
- x: 0,
94
- y: 0,
95
- width: view_width,
96
- height: view_height,
97
- })
94
+ new Forge.ViewInfo(spray_view)
98
95
  );
99
96
  };
100
97
 
@@ -111,6 +108,10 @@ export default {
111
108
  },
112
109
  data() {
113
110
  return {
111
+ size: {
112
+ width: 0,
113
+ height: 0
114
+ },
114
115
  viewId: -1,
115
116
  };
116
117
  },
@@ -123,11 +124,11 @@ export default {
123
124
  },
124
125
  },
125
126
  created() {
126
- this.viewId = buildForgeView(this.pointRes, this.sprayStyle);
127
+ this.viewId = buildForgeView(this.pointRes, this.sprayStyle, this.size);
127
128
  },
128
129
  updated() {
129
130
  this.unloadView();
130
- this.viewId = buildForgeView(this.pointRes, this.sprayStyle);
131
+ this.viewId = buildForgeView(this.pointRes, this.sprayStyle, this.size);
131
132
  },
132
133
  beforeUnmount() {
133
134
  this.unloadView();
@@ -136,5 +137,7 @@ export default {
136
137
  </script>
137
138
 
138
139
  <template>
139
- <div :jsv_innerview="viewId"></div>
140
+ <div
141
+ :style="{width: size.width, height: size.height}"
142
+ :jsv_innerview="viewId"></div>
140
143
  </template>