@shijiu/jsview-vue-samples 2.3.151-test.0 → 3.0.0-test.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ABImageAlt/App.vue +114 -0
- package/ABImageAlt/Item.vue +133 -0
- package/{MetroWidgetDemos/SkeletonDiagram/assets/imageList.json → ABImageAlt/assets/imageList.js} +9 -1
- package/ABImageAlt/data.js +17 -0
- package/AI_Check_Rules.txt +5 -0
- package/AnimPicture/App.vue +20 -10
- package/ApicSwitch/App.vue +90 -0
- package/ApicSwitch/TabItem.vue +65 -0
- package/ApicSwitch/WebpShow.vue +24 -0
- package/ApicSwitch/data.js +50 -0
- package/Basic/AI_skills_update.md +1 -0
- package/Basic/components/div/ColorFormatTest.vue +93 -0
- package/Basic/components/div/DivRadius.vue +97 -15
- package/Basic/components/div/DivTag3Group.vue +30 -0
- package/Basic/components/img/ImageType.vue +65 -0
- package/Basic/components/panel/Panel2.vue +13 -1
- package/Basic/components/text/TextAlign.vue +7 -1
- package/BlobLoadTest/App.vue +201 -0
- package/BreakLinesApi/App.vue +82 -0
- package/CanvasDrawChart/App.vue +11 -0
- package/CanvasDrawChart/Graph1.vue +104 -0
- package/CanvasDrawChart/Graph2.vue +115 -0
- package/CssPreprocessor/Scss/PanelData.js +1 -1
- package/CssPreprocessor/Scss/components/scss-group4/ScssMaps.vue +4 -3
- package/CssPreprocessor/Scss/components/scss-group5/ScssImporting.vue +2 -2
- package/DemoForOperator/Bounce/FreeMoveBuilder.js +1 -1
- package/DemoForOperator/Firework1/App.vue +12 -1
- package/DemoForOperator/Firework1/Fireworks.vue +18 -0
- package/DemoForOperator/FlipPage/FlipPage/FlipPage.vue +1 -0
- package/DemoForOperator/Focus/Alpha/Item.vue +1 -0
- package/DemoForOperator/Focus/Light/Item.vue +1 -0
- package/DemoForOperator/Focus/Normal/Item.vue +1 -0
- package/DemoForOperator/FrameShadow/FrameShadow.vue +1 -1
- package/DemoForOperator/Genie/App.vue +20 -6
- package/DemoForOperator/Genie/App2.vue +61 -0
- package/DemoForOperator/Genie/geniePakcer/GenieImage.vue +298 -0
- package/DemoForOperator/Genie/geniePakcer/GenieSlot.vue +292 -0
- package/DemoForOperator/Genie/geniePakcer/GenieTools.ts +463 -0
- package/DemoForOperator/Jigsaw/JigsawFull.vue +12 -7
- package/DemoForOperator/Jigsaw/JigsawSingle.vue +13 -7
- package/DemoForOperator/LongChatBox/App.vue +13 -13
- package/DemoForOperator/LongChatBox/Bubble.vue +78 -66
- package/DemoForOperator/LongChatBox/LongChat.vue +68 -36
- package/DemoForOperator/LongChatBox/testData.js +7 -44
- package/DemoForOperator/Sound/Bounce/FreeMoveBuilder.js +1 -1
- package/DemoForOperator/routeList.js +8 -2
- package/DemoHomepage/App.vue +74 -1
- package/DemoHomepage/components/BodyFrame.vue +1 -0
- package/DemoHomepage/components/TabFrame.vue +1 -1
- package/DemoHomepage/router.js +723 -160
- package/DemoHomepage/views/Homepage.vue +60 -2
- package/DemoHomepage/watchTest.vue +50 -0
- package/FilterDemo/AnimatePic.vue +63 -17
- package/FilterDemo/App.vue +3 -3
- package/FlexCellDemo/AI_skills_update.md +4 -0
- package/FlexCellDemo/TestFrame1.vue +12 -2
- package/FlexCellDemo/TestFrame2.vue +10 -1
- package/FlexCellDemo/TestFrame3.vue +114 -59
- package/FpsLimit/App.vue +102 -0
- package/FreeMoveChildAttract/App.vue +18 -8
- package/FreeMoveLink/App.vue +49 -20
- package/Hover/App.vue +144 -0
- package/HttpRequestSSE/SSEReader.js +200 -0
- package/ImpactStop/App.vue +2 -2
- package/Input/FullKeyboard.vue +3 -3
- package/Input/InputPanel.vue +63 -3
- package/JsvLine/App.vue +53 -38
- package/LatexDemo/App.vue +3 -1
- package/LatexFormula/App.vue +196 -0
- package/LongImage/App.vue +1 -1
- package/LongImage/LongImageScroll.vue +100 -47
- package/LongImage/Scroll.vue +28 -9
- package/LongText/LongTextScroll.vue +1 -0
- package/Markdown/App.vue +36 -0
- package/Markdown/Bubble.vue +109 -0
- package/Markdown/LongChat.vue +206 -0
- package/Markdown/Markdown/Markdown.vue +156 -0
- package/Markdown/Markdown/index.ts +1 -0
- package/Markdown/Markdown/marked/LICENSE.md +45 -0
- package/Markdown/Markdown/marked/index.ts +2 -0
- package/Markdown/Markdown/marked/marked.d.ts +756 -0
- package/Markdown/Markdown/marked/marked.js +71 -0
- package/Markdown/Markdown/parser.ts +1365 -0
- package/Markdown/data.js +581 -0
- package/MetroWidgetDemos/AI_skills_update.md +2 -0
- package/MetroWidgetDemos/ListExpand/ChildItem.vue +130 -0
- package/MetroWidgetDemos/ListExpand/ExpandItem.vue +375 -0
- package/MetroWidgetDemos/ListExpand/ExpandItem1.vue +403 -0
- package/MetroWidgetDemos/ListExpand/assets/arrow-down.png +0 -0
- package/MetroWidgetDemos/ListExpand/assets/up-arrow.png +0 -0
- package/MetroWidgetDemos/ListExpand/components/WidgetListHandler.vue +150 -0
- package/MetroWidgetDemos/ListExpand/index.vue +88 -0
- package/MetroWidgetDemos/ListExpand/list.js +2421 -0
- package/MetroWidgetDemos/RefreshDemo/App.vue +14 -1
- package/MetroWidgetDemos/RenderAccelerate/App.vue +142 -0
- package/MetroWidgetDemos/RenderAccelerate/AppPage.vue +78 -0
- package/MetroWidgetDemos/RenderAccelerate/AppTab.vue +62 -0
- package/MetroWidgetDemos/RenderAccelerate/ContentItem.vue +409 -0
- package/MetroWidgetDemos/RenderAccelerate/Item.vue +67 -0
- package/MetroWidgetDemos/RenderAccelerate/TabItem.vue +100 -0
- package/MetroWidgetDemos/RenderAccelerate/ViewSwiper.vue +215 -0
- package/MetroWidgetDemos/RenderAccelerate/WidgetItem.vue +107 -0
- package/MetroWidgetDemos/SkeletonDiagram/App.vue +35 -8
- package/MetroWidgetDemos/SkeletonDiagram/Item.vue +11 -2
- package/MetroWidgetDemos/SkeletonDiagram/assets/imageList.js +245 -0
- package/MetroWidgetDemos/SkeletonDiagram/data.js +3 -3
- package/MetroWidgetDemos/SpatialNav/App.vue +177 -0
- package/MetroWidgetDemos/SpatialNav/Buttons.vue +83 -0
- package/MetroWidgetDemos/SpatialNav/CustomFocus.vue +57 -0
- package/MetroWidgetDemos/{TripleWidget → SpatialNav}/Item.vue +1 -8
- package/MetroWidgetDemos/{TripleWidget/WidgetItem.vue → SpatialNav/SimpleFloor.vue} +14 -45
- package/MetroWidgetDemos/SpatialNav/StepMw.vue +113 -0
- package/MetroWidgetDemos/SpatialNav/TabContent/TabContent.vue +185 -0
- package/MetroWidgetDemos/SpatialNav/TripleSection/TripleSection.vue +69 -0
- package/MetroWidgetDemos/SpatialNav/TripleSection/WidgetItem.vue +100 -0
- package/MetroWidgetDemos/SpatialNav/TvSection/List.vue +75 -0
- package/MetroWidgetDemos/SpatialNav/TvSection/TvSection.vue +91 -0
- package/MetroWidgetDemos/basic2/App.vue +407 -0
- package/MetroWidgetDemos/basic2/Item.vue +68 -0
- package/MetroWidgetDemos/direction/App.vue +22 -0
- package/MetroWidgetDemos/gazeFocusDiff/App.vue +126 -0
- package/MetroWidgetDemos/gazeFocusDiff/Item.vue +87 -0
- package/MetroWidgetDemos/minimalUsage/App.vue +66 -0
- package/MetroWidgetDemos/minimalUsage/Item.vue +54 -0
- package/MetroWidgetDemos/ninePatchFocusPage/App.vue +22 -7
- package/MetroWidgetDemos/ninePatchFocusPage/Item.vue +7 -5
- package/MetroWidgetDemos/ninePatchFocusPage/focusConstants.js +2 -0
- package/MetroWidgetDemos/routeList.js +203 -12
- package/MetroWidgetDemos/slideSetting/App.vue +288 -99
- package/MetroWidgetDemos/zIndex/App.vue +117 -0
- package/MetroWidgetDemos/zIndex/Item.vue +61 -0
- package/NinePatchTester/App.vue +24 -31
- package/PreDecode/App.vue +140 -0
- package/ReactiveTest/App.vue +115 -0
- package/ReactiveTest/Item.vue +92 -0
- package/ReactiveTest/assets/imageList.js +245 -0
- package/ReactiveTest/component/TestSmartDiv.vue +50 -0
- package/ReactiveTest/component/TestSmartDivSrcList.vue +74 -0
- package/ReactiveTest/component/TestSmartImage.vue +46 -0
- package/ReactiveTest/component/TestSmartImageSrcList.vue +90 -0
- package/ReactiveTest/component/TestSmartImageStyle.vue +41 -0
- package/ReactiveTest/data.js +49 -0
- package/ScreenToBlob/App.vue +250 -0
- package/SecTorTest/App.vue +9 -3
- package/SpringFestival/SpringFestivalScene/FreeMoveBuilder.js +3 -3
- package/SyncDecode/App.vue +137 -0
- package/TextSizeLimit/App.vue +211 -0
- package/TransitPage/App.vue +2 -0
- package/assets/logo.png +0 -0
- package/package.json +5 -5
- package/DemoForOperator/Genie/geniePakcer/Genie.vue +0 -741
- package/DemoForOperator/LongChatBox/TextManager.ts +0 -147
- package/DemoForOperator/LongChatBox/VirtualList.vue +0 -298
- package/DemoForOperator/LongChatBox/utile.js +0 -331
- package/DivMetroPerformance/App.vue +0 -157
- package/DivMetroPerformance/Item.vue +0 -58
- package/DivMetroPerformance/assets/bg.jpg +0 -0
- package/DivMetroPerformance/assets/coupon_content.png +0 -0
- package/DivMetroPerformance/assets/coupon_left.png +0 -0
- package/DivMetroPerformance/assets/coupon_mid.png +0 -0
- package/DivMetroPerformance/assets/coupon_right.png +0 -0
- package/DivMetroPerformance/assets/focus_border.png +0 -0
- package/DivMetroPerformance/assets/holder_logo.png +0 -0
- package/DivMetroPerformance/assets/jrbm.png +0 -0
- package/DivMetroPerformance/assets/line_left.png +0 -0
- package/DivMetroPerformance/assets/line_mid.png +0 -0
- package/DivMetroPerformance/assets/line_right.png +0 -0
- package/DivMetroPerformance/assets/loading.png +0 -0
- package/DivMetroPerformance/assets/logo.png +0 -0
- package/DivMetroPerformance/assets/mcjx.png +0 -0
- package/DivMetroPerformance/assets/tao.png +0 -0
- package/DivMetroPerformance/assets/tmall.png +0 -0
- package/DivMetroPerformance/border.png +0 -0
- package/DivMetroPerformance/components/ContentItem.vue +0 -384
- package/DivMetroPerformance/components/MyTab.vue +0 -129
- package/DivMetroPerformance/data.js +0 -124
- package/DivMetroPerformance/utils/GridItem.vue +0 -28
- package/DivMetroPerformance/utils/GridPlate.vue +0 -85
- package/MediaDemo/App.vue +0 -127
- package/MediaDemo/assets/audio-poster.png +0 -0
- package/MediaDemo/components/Button.vue +0 -69
- package/MediaDemo/components/Controllor.vue +0 -286
- package/MediaDemo/components/StatusBar.vue +0 -100
- package/MediaDemo/components/frames/AudioFrame.vue +0 -39
- package/MediaDemo/components/frames/AudioPoster.vue +0 -48
- package/MediaDemo/components/frames/MediaFrame.vue +0 -153
- package/MediaDemo/components/frames/VideoFrame.vue +0 -39
- package/MetroWidgetDemos/TripleWidget/App.vue +0 -87
- package/MetroWidgetDemos/TripleWidget/SWidgetItem.vue +0 -99
- package/Parkour/App.vue +0 -13
- package/Parkour/Common/Context.js +0 -21
- package/Parkour/Common/MatchmanInfo.js +0 -62
- package/Parkour/Common/Random.js +0 -61
- package/Parkour/Common/Sound.js +0 -50
- package/Parkour/appConfig/HOW_TO_CONFIG.md +0 -20
- package/Parkour/appConfig/app.config.mjs +0 -5
- package/Parkour/appConfig/app_sign_private_key_sample.crt +0 -28
- package/Parkour/appConfig/app_sign_public_key_sample.pem +0 -9
- package/Parkour/appConfig/jsview.config.mjs +0 -39
- package/Parkour/assets/Bgimages/bg1.png +0 -0
- package/Parkour/assets/Bgimages/bg2.png +0 -0
- package/Parkour/assets/Bgimages/bg3.png +0 -0
- package/Parkour/assets/Bgimages/bg4.png +0 -0
- package/Parkour/assets/Bgimages/bg5.png +0 -0
- package/Parkour/assets/audio/jump.mp3 +0 -0
- package/Parkour/assets/audio/lose.mp3 +0 -0
- package/Parkour/assets/role_skin1/fail.json +0 -44
- package/Parkour/assets/role_skin1/fail.png +0 -0
- package/Parkour/assets/role_skin1/jump_down.json +0 -20
- package/Parkour/assets/role_skin1/jump_down.png +0 -0
- package/Parkour/assets/role_skin1/jump_up.json +0 -44
- package/Parkour/assets/role_skin1/jump_up.png +0 -0
- package/Parkour/assets/role_skin1/roll.json +0 -44
- package/Parkour/assets/role_skin1/roll.png +0 -0
- package/Parkour/assets/role_skin1/run.json +0 -52
- package/Parkour/assets/role_skin1/run.png +0 -0
- package/Parkour/components/Backdrop.vue +0 -61
- package/Parkour/components/GameSence.vue +0 -602
- package/Parkour/components/Matchman.vue +0 -85
- package/ThrowMoveDemo/AccelerateDemo.vue +0 -85
- package/ThrowMoveDemo/App.vue +0 -104
- package/ThrowMoveDemo/LRParabolicDemo.vue +0 -101
- package/ThrowMoveDemo/TargetDemo.vue +0 -87
- package/ThrowMoveDemo/UDParabolicDemo.vue +0 -92
- /package/{AnimPicture/assets → assets}/animated_webp.webp +0 -0
- /package/{AnimPicture/assets → assets}/ball_3.webp +0 -0
- /package/{AnimPicture/assets → assets}/girl_run.gif +0 -0
- /package/{AnimPicture/assets → assets}/quan.webp +0 -0
package/DemoHomepage/router.js
CHANGED
|
@@ -15,119 +15,253 @@ let routeList = [
|
|
|
15
15
|
keepAlive: true // 需要被缓存(测试Router keep alive机制)
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
+
|
|
19
|
+
// ========== feature ==========
|
|
20
|
+
/*
|
|
21
|
+
* 基础示例合集
|
|
22
|
+
*
|
|
23
|
+
* 对应的应用场景:
|
|
24
|
+
* div, img标签, jsview所兼容的css设置样例
|
|
25
|
+
* (包含通过transition和transform属性来简单实现动画的场景)
|
|
26
|
+
*/
|
|
18
27
|
{
|
|
19
28
|
meta: { nameText: '基础示例合集', },
|
|
20
29
|
name: "feature-基础示例合集",
|
|
21
30
|
path: '/feature/Basic',
|
|
22
31
|
component: () => import('@shijiu/jsview-vue-samples/Basic/App.vue'),
|
|
23
32
|
},
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* 截图Blob
|
|
36
|
+
*
|
|
37
|
+
* 对应的应用场景:
|
|
38
|
+
* 1. 对div截图后, 生成blob, 然后用div或者img标签展示此blob的图像的场景
|
|
39
|
+
* 2. 使用图片url来生成blob, 然后用div或者img标签展示此blob的图像的场景
|
|
40
|
+
*/
|
|
41
|
+
{
|
|
42
|
+
meta: { nameText: '截图Blob', },
|
|
43
|
+
name: 'feature-截图Blob',
|
|
44
|
+
path: '/feature/ScreenToBlob',
|
|
45
|
+
component: () => import('@shijiu/jsview-vue-samples/ScreenToBlob/App.vue'),
|
|
46
|
+
},
|
|
47
|
+
|
|
24
48
|
// {
|
|
25
49
|
// meta: { nameText: 'FreeMoveResize', },
|
|
26
50
|
// path: '/feature/FreeMoveResize',
|
|
27
51
|
// component: () => import('@shijiu/jsview-vue-samples/FreeMoveResize/App.vue'),
|
|
28
52
|
// },
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
meta: { nameText: '海报图收放组件', },
|
|
43
|
-
name: "Operations-海报图收放组件",
|
|
44
|
-
path: '/Operations/PosterPacker',
|
|
45
|
-
component: () => import('jsview-vue-samples/PosterPacker/App.vue'),
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* Blob加载测试
|
|
56
|
+
*
|
|
57
|
+
* 对应的应用场景:
|
|
58
|
+
* 使用XMLHttpRequest请求blob,然后使用BlobApi.createObjectURL来创建blob的URL,
|
|
59
|
+
* 并通过img标签展示blob的图像的场景
|
|
60
|
+
*/
|
|
61
|
+
{
|
|
62
|
+
meta: { nameText: 'Blob加载测试', },
|
|
63
|
+
name: "feature-Blob加载测试",
|
|
64
|
+
path: '/feature/BlobLoadTest',
|
|
65
|
+
component: () => import('@shijiu/jsview-vue-samples/BlobLoadTest/App.vue'),
|
|
46
66
|
},
|
|
67
|
+
|
|
68
|
+
/*
|
|
69
|
+
* div快照功能
|
|
70
|
+
*
|
|
71
|
+
* 对应的应用场景:
|
|
72
|
+
* 对div截图后, 用另一个div或者img标签展示截图的图像的场景
|
|
73
|
+
*/
|
|
47
74
|
{
|
|
48
75
|
meta: { nameText: 'div快照功能', },
|
|
49
76
|
name: "feature-div快照功能",
|
|
50
77
|
path: '/feature/BakeViewDemo',
|
|
51
78
|
component: () => import('@shijiu/jsview-vue-samples/BakeViewDemo/App.vue'),
|
|
52
79
|
},
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* FlexDemo
|
|
83
|
+
*
|
|
84
|
+
* 对应的应用场景:
|
|
85
|
+
* 使用Flex布局的场景, 注意JsvFlexDiv组件只支持一层子的flex, 多层场景要使用JsvFlexCell嵌套
|
|
86
|
+
*/
|
|
53
87
|
{
|
|
54
88
|
meta: { nameText: 'FlexDemo', },
|
|
55
89
|
name: "feature-FlexDemo",
|
|
56
90
|
path: '/feature/FlexDemo',
|
|
57
91
|
component: () => import('@shijiu/jsview-vue-samples/FlexCellDemo/App.vue')
|
|
58
92
|
},
|
|
93
|
+
|
|
94
|
+
/*
|
|
95
|
+
* ScreenFlex
|
|
96
|
+
*
|
|
97
|
+
* 对应的应用场景:
|
|
98
|
+
* 展示用 JsvScreenFlex 组件实现全屏范围的居中对齐, 右上角和左下角对齐的场景
|
|
99
|
+
* 主要解决在非16:9比例的屏幕上, 制作自适应铺满全屏的UI时如何进行对齐的场景
|
|
100
|
+
* PS: 普通的16:9应用上非16:9屏幕时, 建议采用背景图铺满, 内容通过JsvScreenFlex居中显示的布局
|
|
101
|
+
*/
|
|
59
102
|
{
|
|
60
103
|
meta: { nameText: 'ScreenFlex', },
|
|
61
104
|
name: "feature-ScreenFlex",
|
|
62
105
|
path: '/feature/ScreenFlex',
|
|
63
106
|
component: () => import('@shijiu/jsview-vue-samples/FullScreenFlex/App.vue')
|
|
64
107
|
},
|
|
108
|
+
|
|
109
|
+
/*
|
|
110
|
+
* 连接线Demo
|
|
111
|
+
*
|
|
112
|
+
* 对应的应用场景:
|
|
113
|
+
* 1. 绘制树状关系图, 脑图等图表场景中绘制连线用
|
|
114
|
+
* 2. 解决常规div来绘制连线时无法做到的问题,具体如下:
|
|
115
|
+
* Z字形连线中其中一个弯折是圆弧或者两个弯折是圆弧的场景需求
|
|
116
|
+
*/
|
|
65
117
|
{
|
|
66
118
|
meta: { nameText: '连接线Demo', },
|
|
67
119
|
name: "feature-连接线Demo",
|
|
68
120
|
path: '/feature/ConnectLine',
|
|
69
121
|
component: () => import('@shijiu/jsview-vue-samples/ConnectLine/App.vue')
|
|
70
122
|
},
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* 离散焦点自动处理
|
|
126
|
+
* 源码是一个测试样例, AI编程时不需要参考, 原理就是界面上有位置任意的
|
|
127
|
+
* 有style.width和style.height尺寸的JsvFocusBlock组件,
|
|
128
|
+
* 当上下左右键在这个FocusBlock的onKeyXXX或者onDispatchXXXX处理中都return了false时(表示都不拦截和处理这些导航键)
|
|
129
|
+
* 框架会按照这些JsvFocusBlock的布局, 自动在这些jsvFocusBlock之间进行焦点切换
|
|
130
|
+
*
|
|
131
|
+
* 对应的应用场景:
|
|
132
|
+
* 元素简单,且位置不重叠的游戏或运营类场景,EPG等复杂场景不适合
|
|
133
|
+
*/
|
|
71
134
|
{
|
|
72
135
|
meta: { nameText: '离散焦点自动处理', },
|
|
73
136
|
name: "feature-离散焦点自动处理",
|
|
74
137
|
path: '/feature/DispersedFocusControl',
|
|
75
138
|
component: () => import('@shijiu/jsview-vue-samples/DispersedFocusControl/App.vue'),
|
|
76
139
|
},
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
140
|
+
|
|
141
|
+
// 一个简单的空间寻焦算法的样例, 已被自动寻焦样例 DispersedFocusControl 替代
|
|
142
|
+
// {
|
|
143
|
+
// meta: { nameText: '离散焦点分布', },
|
|
144
|
+
// name: "feature-离散焦点分布",
|
|
145
|
+
// path: '/feature/DispersedItemSample',
|
|
146
|
+
// component: () => import('@shijiu/jsview-vue-samples/DispersedItemSample/DispersedItemSample.vue')
|
|
147
|
+
// },
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* 饼图测试
|
|
151
|
+
*
|
|
152
|
+
* 对应的应用场景:
|
|
153
|
+
* 需要绘制图表的场景中, 需要绘制饼图的场景, 样例中还提供了调整饼图的分配比例而产生动画的效果。
|
|
154
|
+
* 除了支持屏图(几个扇形构成)外,还支持环形图(扇形只留扇顶弧形构成一个圆环)
|
|
155
|
+
* 使用时一定要注意, 传入的所有内容的合不能大于100%, 可以略小于100%, 不足100%的部分会自动补到最后一项中
|
|
156
|
+
*/
|
|
83
157
|
{
|
|
84
158
|
meta: { nameText: '饼图测试', },
|
|
85
159
|
name: "feature-饼图测试",
|
|
86
160
|
path: '/feature/SecTorTest',
|
|
87
161
|
component: () => import('@shijiu/jsview-vue-samples/SecTorTest/App.vue'),
|
|
88
162
|
},
|
|
163
|
+
|
|
164
|
+
/*
|
|
165
|
+
* TextureStore测试
|
|
166
|
+
*
|
|
167
|
+
* 对应的应用场景:
|
|
168
|
+
* 手搓出可用于<div>标签的style.backgroundImage或者<img>标签的src的图片资源临时url
|
|
169
|
+
* 但此用例只展示 JsvTextureStoreApi 的 canvasTexture 接口的用法,
|
|
170
|
+
* 此样例包含子场景:
|
|
171
|
+
* 和JsvNinePatch配合的的直角框和圆角框
|
|
172
|
+
* 半圆
|
|
173
|
+
* 纯色圆角方块
|
|
174
|
+
* 渐变圆角方块
|
|
175
|
+
*/
|
|
89
176
|
{
|
|
90
177
|
meta: { nameText: 'TextureStore测试', },
|
|
91
178
|
name: "feature-TextureStore测试",
|
|
92
179
|
path: '/feature/TextureStoreTest',
|
|
93
180
|
component: () => import('@shijiu/jsview-vue-samples/TextureStoreTest/App.vue'),
|
|
94
181
|
},
|
|
182
|
+
|
|
183
|
+
/*
|
|
184
|
+
* NinePatch对齐测试
|
|
185
|
+
*
|
|
186
|
+
* 对应的应用场景:
|
|
187
|
+
* 圆角矩形要套一个外边缘框的场景, 且框为纯色的最简解决方法。
|
|
188
|
+
* 使用JsvNinePatch组件, 且图片资源由代码生成(JsvTextureBuilder.buildCircleNinePatchTexture)
|
|
189
|
+
*/
|
|
95
190
|
{
|
|
96
191
|
meta: { nameText: 'NinePatch对齐测试', },
|
|
97
192
|
name: "feature-NinePatch对齐测试",
|
|
98
193
|
path: '/feature/NinePatchTester',
|
|
99
194
|
component: () => import('@shijiu/jsview-vue-samples/NinePatchTester/App.vue'),
|
|
100
195
|
},
|
|
196
|
+
|
|
197
|
+
/*
|
|
198
|
+
* NativeSharedView测试
|
|
199
|
+
*
|
|
200
|
+
* 对应的应用场景:
|
|
201
|
+
* 使用JsvNativeSharedDiv组件并监听其尺寸和位置变化的场景
|
|
202
|
+
*/
|
|
101
203
|
{
|
|
102
204
|
meta: { nameText: 'NativeSharedView测试', },
|
|
103
205
|
name: "feature-NativeSharedView测试",
|
|
104
206
|
path: '/feature/TestNativeSharedView',
|
|
105
207
|
component: () => import('@shijiu/jsview-vue-samples/TestNativeSharedView/App.vue'),
|
|
106
208
|
},
|
|
209
|
+
|
|
210
|
+
/*
|
|
211
|
+
* 仅测试, AI编程时, 不要参考
|
|
212
|
+
* CSS预处理
|
|
213
|
+
*
|
|
214
|
+
*/
|
|
107
215
|
{
|
|
108
216
|
meta: { nameText: 'CSS预处理', },
|
|
109
217
|
name: "feature-CSS预处理",
|
|
110
218
|
path: '/feature/CssPreprocessor',
|
|
111
219
|
component: () => import('@shijiu/jsview-vue-samples/CssPreprocessor/App.vue'),
|
|
112
220
|
},
|
|
221
|
+
|
|
222
|
+
/*
|
|
223
|
+
* 可视化变化通知
|
|
224
|
+
*
|
|
225
|
+
* 对应的应用场景:
|
|
226
|
+
* EPG布局, 监控视频窗口在滑动过程中是否移除屏幕时, 并在移除屏幕时进行播放停止, 移回屏幕时进行播放恢复的场景
|
|
227
|
+
* 以及一些放在MetroWidget中的, 需要关注由于MetroWidget滚动而导致其内容移出/移回屏幕的场景
|
|
228
|
+
*/
|
|
113
229
|
{
|
|
114
230
|
meta: { nameText: '可视化变化通知', },
|
|
115
231
|
name: "feature-可视化变化通知",
|
|
116
232
|
path: '/feature/VisibleSensorDemo',
|
|
117
233
|
component: () => import('@shijiu/jsview-vue-samples/VisibleSensorDemo/App.vue'),
|
|
118
234
|
},
|
|
235
|
+
|
|
236
|
+
/*
|
|
237
|
+
* 仅测试, AI编程时, 不要参考
|
|
238
|
+
* 快速刷新的表格布局组件
|
|
239
|
+
*
|
|
240
|
+
*/
|
|
119
241
|
{
|
|
120
242
|
meta: { nameText: '快速刷新的表格布局组件', },
|
|
121
243
|
name: "feature-快速刷新的表格布局组件",
|
|
122
244
|
path: '/feature/GridDemo',
|
|
123
245
|
component: () => import('@shijiu/jsview-vue-samples/GridDemo/App.vue'),
|
|
124
246
|
},
|
|
247
|
+
|
|
248
|
+
/*
|
|
249
|
+
* 仅测试, AI编程时, 不要参考
|
|
250
|
+
* 有命名空间的焦点切换
|
|
251
|
+
*
|
|
252
|
+
*/
|
|
125
253
|
{
|
|
126
254
|
meta: { nameText: '有命名空间的焦点切换', },
|
|
127
255
|
name: "feature-有命名空间的焦点切换",
|
|
128
256
|
path: '/feature/BasicFocusControl',
|
|
129
257
|
component: () => import('@shijiu/jsview-vue-samples/BasicFocusControl/App.vue'),
|
|
130
258
|
},
|
|
259
|
+
|
|
260
|
+
/*
|
|
261
|
+
* 仅测试, AI编程时, 不要参考
|
|
262
|
+
* Hash方式路由切换
|
|
263
|
+
*
|
|
264
|
+
*/
|
|
131
265
|
{
|
|
132
266
|
meta: { nameText: 'Hash方式路由切换', },
|
|
133
267
|
name: "feature-Hash方式路由切换",
|
|
@@ -135,258 +269,366 @@ let routeList = [
|
|
|
135
269
|
props: { routePath: '/feature/HashHistory' },
|
|
136
270
|
component: () => import('@shijiu/jsview-vue-samples/HashHistory/App.vue'),
|
|
137
271
|
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
272
|
+
|
|
273
|
+
/*
|
|
274
|
+
* 设置颜色空间
|
|
275
|
+
*
|
|
276
|
+
// * 对应的应用场景:
|
|
277
|
+
* 海报资源内存使用较大, 愿意以时间换内存时, 可通过如样例那样的
|
|
278
|
+
* 设置data-jsv-img-color-space为RGB_565来节省内存
|
|
279
|
+
* 原理是JsView引擎会自动将解码出来的RGBA_8888图片存储成RGB_565的bitmap以节省一半内存
|
|
280
|
+
* 特别注意: 如果要用JsvPreload进行预加载时,预加载的图片和尺寸和颜色空间要和实际在img标签中设置的完全一致才能有
|
|
281
|
+
* 预加载的效果(预加载效果是加载完后, img标签再展示时就不会因为要一步加载图片而引起闪动的问题)
|
|
282
|
+
*/
|
|
144
283
|
{
|
|
145
284
|
meta: { nameText: '设置颜色空间', },
|
|
146
285
|
name: "feature-设置颜色空间",
|
|
147
286
|
path: '/feature/ColorSpace',
|
|
148
287
|
component: () => import('@shijiu/jsview-vue-samples/ColorSpace/App.vue'),
|
|
149
288
|
},
|
|
289
|
+
|
|
290
|
+
/*
|
|
291
|
+
* 制定Texture尺寸
|
|
292
|
+
*
|
|
293
|
+
* 对应的应用场景:
|
|
294
|
+
* 海报资源内存使用较大, 愿意以时间换内存时, 可通过如样例那样的
|
|
295
|
+
* 设置data-jsv-img-scaledown-tex为true来节省内存
|
|
296
|
+
* 原理是JsView只存储图片压缩尺寸后的bitmap, 而不是原始的尺寸的图片以节省内存
|
|
297
|
+
* 特别注意: 如果要用JsvPreload进行预加载时,预加载的图片和尺寸和颜色空间要和实际在img标签中设置的完全一致才能有
|
|
298
|
+
* 预加载的效果(预加载效果是加载完后, img标签再展示时就不会因为要一步加载图片而引起闪动的问题)
|
|
299
|
+
*/
|
|
150
300
|
{
|
|
151
301
|
meta: { nameText: '制定Texture尺寸', },
|
|
152
302
|
name: "feature-制定Texture尺寸",
|
|
153
303
|
path: '/feature/TextureSize',
|
|
154
304
|
component: () => import('@shijiu/jsview-vue-samples/TextureSize/App.vue'),
|
|
155
305
|
},
|
|
306
|
+
|
|
307
|
+
/*
|
|
308
|
+
* 长文字
|
|
309
|
+
*
|
|
310
|
+
* 对应的应用场景:
|
|
311
|
+
* 需要展示诸如用户协议,大片长端纯文本的场景
|
|
312
|
+
* 此样例也是 JsvScrollBox 组件的典型应用场景, 解决了一个长条形的滚动窗口如何和其右边进度条联动的场景。
|
|
313
|
+
* 同时 JsvScrollBox 支持触控拖动, 触控fling, 进度条点击跳转和鼠标滚动这几个场景
|
|
314
|
+
*
|
|
315
|
+
* 长内容并且右边有可点击快速定位的滚动条的场景。
|
|
316
|
+
* 会用两个 JsvScrollBox 来完成此场景, 一个JsvScrollBox用来展示长内容, 一个JsvScrollBox用来展示滚动条。
|
|
317
|
+
* 用linkName和syncWith来关联两个JsvScrollBox, 使得两个JsvScrollBox的进度保持一致。
|
|
318
|
+
*/
|
|
156
319
|
{
|
|
157
320
|
meta: { nameText: '长文字', },
|
|
158
321
|
name: "feature-长文字",
|
|
159
322
|
path: '/feature/LongText',
|
|
160
323
|
component: () => import('@shijiu/jsview-vue-samples/LongText/App.vue'),
|
|
161
324
|
},
|
|
325
|
+
|
|
326
|
+
/*
|
|
327
|
+
* 长文字Latex
|
|
328
|
+
*
|
|
329
|
+
* 对应的应用场景:
|
|
330
|
+
* 同 “长文字” 样例, 区别只是纯文本中可以有LaTex的写法
|
|
331
|
+
*/
|
|
162
332
|
{
|
|
163
333
|
meta: { nameText: '长文字Latex', },
|
|
164
334
|
name: "feature-长文字Latex",
|
|
165
335
|
path: '/feature/LongTextLatex',
|
|
166
336
|
component: () => import('@shijiu/jsview-vue-samples/LongTextLatex/App.vue'),
|
|
167
337
|
},
|
|
338
|
+
|
|
339
|
+
/*
|
|
340
|
+
* 二维码
|
|
341
|
+
*
|
|
342
|
+
* 对应的应用场景:
|
|
343
|
+
* 所以使用二维码的场景,在JsView中可以通过字符串生成二维码图片并展示
|
|
344
|
+
* 这个是JsvQrcode组件的典型应用场景, 主要展示了如下特性:
|
|
345
|
+
* 1. 字符串同步生成二维码(界面出现时不会一闪, 但是有可能会卡按键操作)
|
|
346
|
+
* 2. 字符串异步生成二维码(界面出现时会一闪才出, 但是不会卡按键操作)
|
|
347
|
+
* 3. 中心小图标绘制方案
|
|
348
|
+
* 4. 容错级别指定
|
|
349
|
+
*/
|
|
168
350
|
{
|
|
169
351
|
meta: { nameText: '二维码', },
|
|
170
352
|
name: "feature-二维码",
|
|
171
353
|
path: '/feature/QrcodeDemo',
|
|
172
354
|
component: () => import('@shijiu/jsview-vue-samples/QrcodeDemo/App.vue'),
|
|
173
355
|
},
|
|
356
|
+
|
|
357
|
+
/*
|
|
358
|
+
* 文字阴影
|
|
359
|
+
*
|
|
360
|
+
* 对应的应用场景:
|
|
361
|
+
* 适合要给文字添加阴影的场景
|
|
362
|
+
* 需要展示在JsView场景下所支持的所有的文字阴影的写法,
|
|
363
|
+
* 注意!!! 不要使用所列写法以外的CSS属性来做文字阴影
|
|
364
|
+
*/
|
|
174
365
|
{
|
|
175
366
|
meta: { nameText: '文字阴影', },
|
|
176
367
|
name: "feature-文字阴影",
|
|
177
368
|
path: '/feature/TextShadowDemo',
|
|
178
369
|
component: () => import('@shijiu/jsview-vue-samples/TextShadowDemo/App.vue'),
|
|
179
370
|
},
|
|
371
|
+
|
|
372
|
+
/*
|
|
373
|
+
* 多行文字区域内对齐
|
|
374
|
+
*
|
|
375
|
+
* 对应的应用场景:
|
|
376
|
+
* 适合多行纯文本内容进行区域内对齐(居中,居左,居右)的场景
|
|
377
|
+
* 注意!!! 遇到多行文本居中的场景, 不要用非jsview支持的css的属性来进行居中, 要用JsvTextBox组件和其属性来完成
|
|
378
|
+
* 此样例也是JsvTextBox组件的典型应用场景
|
|
379
|
+
*/
|
|
180
380
|
{
|
|
181
381
|
meta: { nameText: '多行文字区域内对齐', },
|
|
182
382
|
name: "feature-多行文字区域内对齐",
|
|
183
383
|
path: '/feature/TextBox',
|
|
184
384
|
component: () => import('@shijiu/jsview-vue-samples/TextBox/App.vue'),
|
|
185
385
|
},
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
name: "Game-精灵图",
|
|
195
|
-
path: '/Game/SpriteImage',
|
|
196
|
-
component: () => import('@shijiu/jsview-vue-samples/SpriteImage/App.vue'),
|
|
197
|
-
},
|
|
386
|
+
|
|
387
|
+
/*
|
|
388
|
+
* 文字滚动(标题跑马灯)
|
|
389
|
+
*
|
|
390
|
+
* 对应的应用场景:
|
|
391
|
+
* 适合需要展示标题跑马灯的场景
|
|
392
|
+
* 此样例也是JsvMarquee组件的典型应用场景
|
|
393
|
+
*/
|
|
198
394
|
{
|
|
199
395
|
meta: { nameText: '文字滚动(标题跑马灯)', },
|
|
200
396
|
name: "feature-文字滚动(标题跑马灯)",
|
|
201
397
|
path: '/feature/Marquee',
|
|
202
398
|
component: () => import('@shijiu/jsview-vue-samples/Marquee/App.vue'),
|
|
203
399
|
},
|
|
400
|
+
|
|
401
|
+
/*
|
|
402
|
+
* 文字输入
|
|
403
|
+
*
|
|
404
|
+
* 对应的应用场景:
|
|
405
|
+
* 此样例是JsvInput组件的典型应用场景
|
|
406
|
+
* JsvInput组件是用来和android系统的Ime进行通讯的组件
|
|
407
|
+
* 通常平板产品会需要通过ime进行输入,而电视产品由于ime不方便所以都不采用ime输入
|
|
408
|
+
*/
|
|
204
409
|
{
|
|
205
410
|
meta: { nameText: '文字输入', },
|
|
206
411
|
name: "feature-文字输入",
|
|
207
412
|
path: '/feature/Input',
|
|
208
413
|
component: () => import('@shijiu/jsview-vue-samples/Input/App.vue'),
|
|
209
414
|
},
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
path: '/Operations/AnimPicture',
|
|
226
|
-
component: () => import('@shijiu/jsview-vue-samples/AnimPicture/App.vue'),
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
meta: { nameText: '粒子效果', },
|
|
230
|
-
name: "Operations-粒子效果",
|
|
231
|
-
path: '/Operations/SprayView',
|
|
232
|
-
component: () => import('@shijiu/jsview-vue-samples/SprayView/App.vue'),
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
meta: { nameText: '长图片', },
|
|
236
|
-
name: "Operations-长图片",
|
|
237
|
-
path: '/Operations/LongImage',
|
|
238
|
-
component: () => import('@shijiu/jsview-vue-samples/LongImage/App.vue'),
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
meta: { nameText: '拼图demo', },
|
|
242
|
-
name: "Operations-拼图demo",
|
|
243
|
-
path: '/Operations/MaskClip',
|
|
244
|
-
component: () => import('@shijiu/jsview-vue-samples/MaskClip/App.vue'),
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
meta: { nameText: 'SoundPool', },
|
|
248
|
-
name: "Game-SoundPool",
|
|
249
|
-
path: '/Game/SoundPool',
|
|
250
|
-
component: () => import('@shijiu/jsview-vue-samples/SoundPool/App.vue'),
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
meta: { nameText: 'TextureAnimation', },
|
|
254
|
-
name: "Operations-TextureAnimation",
|
|
255
|
-
path: '/Operations/TextureAnimation',
|
|
256
|
-
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App.vue'),
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
meta: { nameText: '焦点框旋转光效果', },
|
|
260
|
-
name: "Operations-焦点框旋转光效果",
|
|
261
|
-
path: '/Operations/TextureAnimation2',
|
|
262
|
-
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App3.vue'),
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
meta: { nameText: '公祭日黑白效果', },
|
|
266
|
-
name: "Operations-公祭日黑白效果",
|
|
267
|
-
path: '/Operations/GrayDown',
|
|
268
|
-
component: () => import('@shijiu/jsview-vue-samples/FilterDemo/App.vue'),
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
meta: { nameText: '水波特效', },
|
|
272
|
-
name: "Operations-水波特效",
|
|
273
|
-
path: '/Operations/Ripple',
|
|
274
|
-
component: () => import('@shijiu/jsview-vue-samples/Ripple/App.vue'),
|
|
275
|
-
},
|
|
415
|
+
|
|
416
|
+
/*
|
|
417
|
+
* 预加载
|
|
418
|
+
*
|
|
419
|
+
* 对应的应用场景:
|
|
420
|
+
* 用于解决由于图片异步加载导致图片切换时闪动问题
|
|
421
|
+
* 此样例是JsvPreload组件的典型应用场景
|
|
422
|
+
* 原理是: 通过JsvPreload组件将目标图片的bitmap加载到内存,
|
|
423
|
+
* 并通过JsvPreload这个vue组件的生命周期来管理这个内存中的bitmap的生命周期(两者生命周期相同)
|
|
424
|
+
* 注意点:
|
|
425
|
+
* 1. 对于展示时会设置 data-jsv-img-scaledown-tex 和 data-jsv-img-color-space 的场景
|
|
426
|
+
* 要在JsvPreload的图片项目配置中也设置相同的配置(参照JsvPreload组件设置属性的接口, 和img标签的这两个属性并不完全同名)
|
|
427
|
+
* 2. 预加载内存消耗较大, 内存按照bitmap来计算 = width * height * 4 bytes
|
|
428
|
+
* 建议JsvPreload的总内存不要超过10M(1920x1080的背景图不要超过3张)
|
|
429
|
+
*/
|
|
276
430
|
{
|
|
277
431
|
meta: { nameText: '预加载', },
|
|
278
432
|
name: "feature-预加载",
|
|
279
433
|
path: '/feature/Preload',
|
|
280
434
|
component: () => import('@shijiu/jsview-vue-samples/Preload/App.vue'),
|
|
281
435
|
},
|
|
436
|
+
|
|
437
|
+
/*
|
|
438
|
+
* AB图片切换
|
|
439
|
+
*
|
|
440
|
+
* 对应的应用场景:
|
|
441
|
+
* 此样例是JsvABImage组件的典型应用场景
|
|
442
|
+
* JsvABImage是用来解决按钮等AB图, 焦点和非焦点是两张不同的图片, 切换时不要有闪烁(未加载完成前不要切换)的问题
|
|
443
|
+
* 原理: JsvABImage组件借助JsvSmartImage组件实现了AB图片切换的功能, 主要原理是A切换到B时, B加载完成后才会进行切换
|
|
444
|
+
* 此方案的AB图可以支持A图为jpg, png这种静态图, 而B图位webp或者gif的这种场景
|
|
445
|
+
* 比用JsvPreload将所有B图都缓存起来的解决方案更省内存
|
|
446
|
+
*/
|
|
447
|
+
{
|
|
448
|
+
meta: { nameText: 'AB图片切换', },
|
|
449
|
+
name: "feature-AB图片切换",
|
|
450
|
+
path: '/feature/ABImageAlt',
|
|
451
|
+
component: () => import('@shijiu/jsview-vue-samples/ABImageAlt/App.vue'),
|
|
452
|
+
},
|
|
453
|
+
|
|
454
|
+
/*
|
|
455
|
+
* 仅测试, AI编程时, 不要参考
|
|
456
|
+
* 图片组件响应式测试
|
|
457
|
+
*
|
|
458
|
+
* JsvPosterDiv和JsvPosterImage组件图片内容变化的测试用例
|
|
459
|
+
* (也是JsvSmartDiv和JsvSmartImage组件的典型测试用例)
|
|
460
|
+
*/
|
|
461
|
+
{
|
|
462
|
+
meta: { nameText: '图片组件响应式测试', },
|
|
463
|
+
name: "feature-图片组件响应式测试",
|
|
464
|
+
path: '/feature/ReactiveTest',
|
|
465
|
+
component: () => import('@shijiu/jsview-vue-samples/ReactiveTest/App.vue'),
|
|
466
|
+
},
|
|
467
|
+
|
|
468
|
+
/*
|
|
469
|
+
* 仅测试, AI编程时, 不要参考
|
|
470
|
+
* 单图片透明
|
|
471
|
+
*
|
|
472
|
+
* img标签单设opacity属性来实现图片透明效果的测试用例
|
|
473
|
+
* 注意: div标签不支持设置opacity
|
|
474
|
+
*/
|
|
282
475
|
{
|
|
283
476
|
meta: { nameText: '单图片透明', },
|
|
284
477
|
name: "feature-单图片透明",
|
|
285
478
|
path: '/feature/ViewOpacity',
|
|
286
479
|
component: () => import('@shijiu/jsview-vue-samples/ViewOpacity/App.vue'),
|
|
287
480
|
},
|
|
481
|
+
|
|
482
|
+
/*
|
|
483
|
+
* 仅测试, AI编程时, 不要参考
|
|
484
|
+
* 图片缩小算法
|
|
485
|
+
*
|
|
486
|
+
* 测试img标签单设data-jsv-img-scaledown-tex属性来实现图片缩小场景下, 执行的性能和效果
|
|
487
|
+
*/
|
|
288
488
|
{
|
|
289
489
|
meta: { nameText: '图片缩小算法', },
|
|
290
490
|
name: "feature-图片缩小算法",
|
|
291
491
|
path: '/feature/ScaleDownNeon',
|
|
292
492
|
component: () => import('@shijiu/jsview-vue-samples/ScaleDownNeon/App.vue'),
|
|
293
493
|
},
|
|
494
|
+
|
|
495
|
+
/*
|
|
496
|
+
* 渐变Texture
|
|
497
|
+
*
|
|
498
|
+
* 对应的应用场景:
|
|
499
|
+
* 用于要展示渐变色背景图的场景, 支持垂直, 水平, 对角, 多色渐变
|
|
500
|
+
*/
|
|
294
501
|
{
|
|
295
502
|
meta: { nameText: '渐变Texture', },
|
|
296
503
|
name: "feature-渐变Texture",
|
|
297
504
|
path: '/feature/GradientTexture',
|
|
298
505
|
component: () => import('@shijiu/jsview-vue-samples/GradientTexture/App.vue'),
|
|
299
506
|
},
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
path: '/Game/ImpactStop',
|
|
310
|
-
component: () => import('@shijiu/jsview-vue-samples/ImpactStop/App.vue'),
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
meta: { nameText: '滚动图', },
|
|
314
|
-
name: "Operations-滚动图",
|
|
315
|
-
path: '/Operations/Swiper',
|
|
316
|
-
component: () => import('@shijiu/jsview-vue-samples/Swiper/App.vue'),
|
|
317
|
-
},
|
|
507
|
+
|
|
508
|
+
/*
|
|
509
|
+
* 下载接口示例
|
|
510
|
+
*
|
|
511
|
+
* 对应的应用场景:
|
|
512
|
+
* JsvPreDownloader的典型应用场景
|
|
513
|
+
* 解决要对图片进行预下载的场景, 以优化图片的加载性能
|
|
514
|
+
* 但不宜过多,因为存储限制,预下载太多的图片会被先进新出的缓存逻辑顶掉, 而达不到图片加载的优化效果
|
|
515
|
+
*/
|
|
318
516
|
{
|
|
319
517
|
meta: { nameText: '下载接口示例', },
|
|
320
518
|
name: "feature-下载接口示例",
|
|
321
519
|
path: '/feature/JsvPreDownloader',
|
|
322
520
|
component: () => import('@shijiu/jsview-vue-samples/JsvPreDownloader/App.vue'),
|
|
323
521
|
},
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
522
|
+
|
|
523
|
+
/*
|
|
524
|
+
* 仅测试, AI编程时, 不要参考
|
|
525
|
+
* Mockjs测试
|
|
526
|
+
*
|
|
527
|
+
* 测试Mockjs的测试用例
|
|
528
|
+
*/
|
|
330
529
|
{
|
|
331
530
|
meta: { nameText: 'Mockjs测试', },
|
|
332
531
|
name: "feature-Mockjs测试",
|
|
333
532
|
path: '/feature/MockjsDemo',
|
|
334
533
|
component: () => import('@shijiu/jsview-vue-samples/MockjsDemo/App.vue'),
|
|
335
534
|
},
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
component: () => import('@shijiu/jsview-vue-samples/JsvRadarChart/App.vue')
|
|
347
|
-
},
|
|
348
|
-
// TODO: 等改为对接FreeMoveActor后再恢复
|
|
349
|
-
// {
|
|
350
|
-
// meta: { nameText: '跑酷游戏', },
|
|
351
|
-
// path: '/Game/Parkour',
|
|
352
|
-
// component: () => import('@shijiu/jsview-vue-samples/Parkour/App.vue')
|
|
353
|
-
// },
|
|
535
|
+
|
|
536
|
+
/*
|
|
537
|
+
* Hash参数
|
|
538
|
+
*
|
|
539
|
+
* 对应的应用场景:
|
|
540
|
+
* 一个读取URL的deepLink中信息的样例
|
|
541
|
+
* 对应场景有,
|
|
542
|
+
* 1. 读取 window.locaiton.search的内容
|
|
543
|
+
* 2. 从vue-router读取参数
|
|
544
|
+
*/
|
|
354
545
|
{
|
|
355
546
|
meta: { nameText: 'Hash参数', },
|
|
356
547
|
name: "feature-Hash参数",
|
|
357
548
|
path: '/feature/HashParams',
|
|
358
549
|
component: () => import('@shijiu/jsview-vue-samples/HashParams/App.vue'),
|
|
359
550
|
},
|
|
551
|
+
|
|
552
|
+
/*
|
|
553
|
+
* 仅测试, AI编程时, 不要参考
|
|
554
|
+
* 按键打断描画
|
|
555
|
+
*
|
|
556
|
+
* JsvRenderBreak组件测试, 此组件可以将废弃, 不建议应用层直接使用
|
|
557
|
+
*/
|
|
360
558
|
{
|
|
361
559
|
meta: { nameText: '按键打断描画', },
|
|
362
560
|
name: "feature-按键打断描画",
|
|
363
561
|
path: '/feature/BreakRender',
|
|
364
562
|
component: () => import('@shijiu/jsview-vue-samples/BreakRender/App.vue'),
|
|
365
563
|
},
|
|
564
|
+
|
|
565
|
+
/*
|
|
566
|
+
* latex示例
|
|
567
|
+
*
|
|
568
|
+
* 对应的应用场景:
|
|
569
|
+
* 使用于<div>标签中的文字需要展示
|
|
570
|
+
* 1. 文本中间部分文字变色的场景
|
|
571
|
+
* 2. 文本中间部分文字加粗的场景
|
|
572
|
+
* 3. 文本中间部分文字斜体的场景
|
|
573
|
+
* 4. 文本中间部分文字下划线的场景
|
|
574
|
+
* 5. 文本中间部分文字删除线的场景
|
|
575
|
+
* 原理: 用LaTex的语法来解决原本需要JsView不支持的css的属性才能实现的以上文字效果
|
|
576
|
+
*/
|
|
366
577
|
{
|
|
367
578
|
meta: { nameText: 'latex示例', },
|
|
368
579
|
name: "feature-latex示例",
|
|
369
580
|
path: '/feature/LatexDemo',
|
|
370
581
|
component: () => import('@shijiu/jsview-vue-samples/LatexDemo/App.vue'),
|
|
371
582
|
},
|
|
583
|
+
|
|
584
|
+
/*
|
|
585
|
+
* GetRect示例
|
|
586
|
+
*
|
|
587
|
+
* 对应的应用场景:
|
|
588
|
+
* 想知道一个div相对于屏幕左上角的实际绘制位置的场景(包括transform或者keyframe动画等变化引起的位置和尺寸变化)。
|
|
589
|
+
* 只能异步获取位置信息
|
|
590
|
+
* div元素扩展接口jsvGetBoundingClientRect的经典使用场景
|
|
591
|
+
*
|
|
592
|
+
* 和下面网站呼应
|
|
593
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.2.html5-elements.html#element%E6%96%B9%E6%B3%95
|
|
594
|
+
*/
|
|
372
595
|
{
|
|
373
596
|
meta: { nameText: 'GetRect示例', },
|
|
374
597
|
name: "feature-GetRect示例",
|
|
375
598
|
path: '/feature/GetRect',
|
|
376
599
|
component: () => import('@shijiu/jsview-vue-samples/GetBoundingClientRect/App.vue'),
|
|
377
600
|
},
|
|
601
|
+
|
|
602
|
+
/*
|
|
603
|
+
* 仅测试, AI编程时, 不要参考
|
|
604
|
+
* 动态Class示例
|
|
605
|
+
*
|
|
606
|
+
*/
|
|
378
607
|
{
|
|
379
608
|
meta: { nameText: '动态Class示例', },
|
|
380
609
|
name: "feature-动态Class示例",
|
|
381
610
|
path: '/feature/DynamicClass',
|
|
382
611
|
component: () => import('@shijiu/jsview-vue-samples/DynamicClass/App.vue'),
|
|
383
612
|
},
|
|
613
|
+
|
|
614
|
+
/*
|
|
615
|
+
* 仅测试, AI编程时, 不要参考
|
|
616
|
+
* Class动态切换示例
|
|
617
|
+
*
|
|
618
|
+
*/
|
|
384
619
|
{
|
|
385
620
|
meta: { nameText: 'Class动态切换示例', },
|
|
386
621
|
name: "feature-Class动态切换示例",
|
|
387
622
|
path: '/feature/ClassDynamicSwitching',
|
|
388
623
|
component: () => import('@shijiu/jsview-vue-samples/ClassDynamicSwitching/App.vue'),
|
|
389
624
|
},
|
|
625
|
+
|
|
626
|
+
/*
|
|
627
|
+
* JsvLine示例
|
|
628
|
+
*
|
|
629
|
+
* 对应的应用场景:
|
|
630
|
+
* 绘制一条斜线无锯齿的线, 比用div + backgroundColor 来说, 其优势在于斜线时没有锯齿
|
|
631
|
+
*/
|
|
390
632
|
{
|
|
391
633
|
meta: { nameText: 'JsvLine示例', },
|
|
392
634
|
name: "feature-JsvLine示例",
|
|
@@ -398,18 +640,217 @@ let routeList = [
|
|
|
398
640
|
// path: '/feature/FreeMove',
|
|
399
641
|
// component: () => import('@shijiu/jsview-vue-samples/FreeMove/App.vue'),
|
|
400
642
|
// },
|
|
643
|
+
|
|
644
|
+
/*
|
|
645
|
+
* 思维导图示例
|
|
646
|
+
*
|
|
647
|
+
* 对应的应用场景:
|
|
648
|
+
* 需要绘制树状结构图或者脑图的场景,
|
|
649
|
+
* 此样例是JsvMindMap组件的典型应用场景
|
|
650
|
+
* 解决了这类图像的在遥控器的只有上下左右键场景下的操作问题。
|
|
651
|
+
* JsvMindMap也是一个内嵌了JsvFocusBlok的组件, 可通过FocusHub.setFocus来设置焦点
|
|
652
|
+
*/
|
|
401
653
|
{
|
|
402
654
|
meta: { nameText: '思维导图示例', },
|
|
403
655
|
name: "feature-思维导图示例",
|
|
404
656
|
path: '/feature/MindMap',
|
|
405
657
|
component: () => import('@shijiu/jsview-vue-samples/MindMap/App.vue'),
|
|
406
658
|
},
|
|
659
|
+
|
|
660
|
+
/*
|
|
661
|
+
* 仅测试, AI编程时, 不要参考
|
|
662
|
+
* latex公式
|
|
663
|
+
*
|
|
664
|
+
*/
|
|
407
665
|
{
|
|
408
666
|
meta: { nameText: 'latex公式', },
|
|
409
667
|
name: "feature-latex公式",
|
|
410
668
|
path: '/feature/LatexFormula',
|
|
411
669
|
component: () => import('@shijiu/jsview-vue-samples/LatexFormula/App.vue'),
|
|
412
670
|
},
|
|
671
|
+
|
|
672
|
+
/*
|
|
673
|
+
* 文字大小限制
|
|
674
|
+
*
|
|
675
|
+
* 对应的应用场景:
|
|
676
|
+
* 用于解决文字内容多少不确定, 但是又要占用一定的尺寸的场景。
|
|
677
|
+
* 用JsvTextBox组件的minWidth、maxWidth、minHeight、maxHeight配置,
|
|
678
|
+
* 来解决没法用JsView不识别的css中的同名属性(minWidth、maxWidth、minHeight、maxHeight)来解决文字排版场景
|
|
679
|
+
*/
|
|
680
|
+
{
|
|
681
|
+
meta: { nameText: '文字大小限制', },
|
|
682
|
+
name: 'feature-文字大小限制',
|
|
683
|
+
path: '/feature/TextSizeLimit',
|
|
684
|
+
component: () => import('@shijiu/jsview-vue-samples/TextSizeLimit/App.vue'),
|
|
685
|
+
},
|
|
686
|
+
|
|
687
|
+
/*
|
|
688
|
+
* 分行API
|
|
689
|
+
*
|
|
690
|
+
* 对应的应用场景:
|
|
691
|
+
* TextTools.breakLines的使用样例
|
|
692
|
+
* 对应场景为需要对文字的行数进行探测, 以及要对每行文字有后处理的场景
|
|
693
|
+
*/
|
|
694
|
+
{
|
|
695
|
+
meta: { nameText: '分行API', },
|
|
696
|
+
name: 'feature-分行API',
|
|
697
|
+
path: '/feature/BreakLines',
|
|
698
|
+
component: () => import('@shijiu/jsview-vue-samples/BreakLinesApi/App.vue')
|
|
699
|
+
},
|
|
700
|
+
|
|
701
|
+
/*
|
|
702
|
+
* 同步解码
|
|
703
|
+
*
|
|
704
|
+
* 对应的应用场景:
|
|
705
|
+
* 用于解决默认的图片解码为异步和其他内容不同时出现的问题
|
|
706
|
+
* 具体处理为 JsvPosterImage 组件将 syncDraw 属性设置为 true
|
|
707
|
+
* 其逻辑为:
|
|
708
|
+
* 1. 若图片已经下载过, 则会堵住渲染线程,等到解码完后后和其他内容一起绘制,
|
|
709
|
+
* 所以图片最好用JsvPreDownloader来完成下载, 或者用JsvPreload的downloadList属性来完成下载
|
|
710
|
+
* 2. 若图片未下载过, 则仍然会异步下载, 异步解码, 相当于同步解码这个开关不生效
|
|
711
|
+
*/
|
|
712
|
+
{
|
|
713
|
+
meta: { nameText: '同步解码', },
|
|
714
|
+
name: 'feature-同步解码',
|
|
715
|
+
path: '/feature/SyncDecode',
|
|
716
|
+
component: () => import('@shijiu/jsview-vue-samples/SyncDecode/App.vue')
|
|
717
|
+
},
|
|
718
|
+
|
|
719
|
+
/*
|
|
720
|
+
* 仅测试, AI编程时, 不要参考
|
|
721
|
+
* 预解码
|
|
722
|
+
*
|
|
723
|
+
* 后续预解码功能做完后, 再确认是否可用于AI编程参考
|
|
724
|
+
*/
|
|
725
|
+
{
|
|
726
|
+
meta: { nameText: '预解码', },
|
|
727
|
+
name: 'feature-预解码',
|
|
728
|
+
path: '/feature/PreDecode',
|
|
729
|
+
component: () => import('@shijiu/jsview-vue-samples/PreDecode/App.vue')
|
|
730
|
+
},
|
|
731
|
+
|
|
732
|
+
/*
|
|
733
|
+
* 帧率限制
|
|
734
|
+
*
|
|
735
|
+
* 对应的应用场景:
|
|
736
|
+
* 为了解决在一些设备上长时间保持高帧率绘制会导致设备高功率运转太久会过热的问题
|
|
737
|
+
* 通过例如 window.JsvCoreApi.setIdleFps(true, 5, 5000) 这样的设置
|
|
738
|
+
* 让设备在无用户操作(按键和触控等操作)5000毫秒后, 帧率降到5fps, 当用户有操作时又会立刻回复到原来的帧率, 如此循环
|
|
739
|
+
*/
|
|
740
|
+
{
|
|
741
|
+
meta: { nameText: '帧率限制', },
|
|
742
|
+
name: 'feature-帧率限制',
|
|
743
|
+
path: '/feature/FpsLimit',
|
|
744
|
+
component: () => import('@shijiu/jsview-vue-samples/FpsLimit/App.vue')
|
|
745
|
+
},
|
|
746
|
+
|
|
747
|
+
// ========== operation ==========
|
|
748
|
+
/*
|
|
749
|
+
* 3d移动动画
|
|
750
|
+
*
|
|
751
|
+
* 对应的应用场景:
|
|
752
|
+
* 想让一个区域内的内容进行rotate或者设置z轴后, 有近大远小的透视效果的场景
|
|
753
|
+
* Jsv3dStage组件的典型应用场景, 在一个指定区域内设置透视, 然后在其中的div的transform引起有z轴区别时有透视效果
|
|
754
|
+
* Jsv3dDiv和div相比, Jsv3dDiv图片会把边缘进行过渡处理从而消除锯齿感, 并且Jsv3dDiv可设置z轴值, 而div当倾斜时会有锯齿
|
|
755
|
+
*/
|
|
756
|
+
{
|
|
757
|
+
meta: { nameText: '3d移动动画', },
|
|
758
|
+
name: "Operations-3d移动动画",
|
|
759
|
+
path: '/Operations/3dMove',
|
|
760
|
+
component: () => import('jsview-vue-samples/Poster3d/App.vue'),
|
|
761
|
+
},
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
{
|
|
765
|
+
meta: { nameText: '烟花行进特效', },
|
|
766
|
+
name: "Operations-烟花行进特效",
|
|
767
|
+
path: '/Operations/SprayMove',
|
|
768
|
+
component: () => import('jsview-vue-samples/SprayMove/App.vue'),
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
meta: { nameText: '海报图收放组件', },
|
|
772
|
+
name: "Operations-海报图收放组件",
|
|
773
|
+
path: '/Operations/PosterPacker',
|
|
774
|
+
component: () => import('jsview-vue-samples/PosterPacker/App.vue'),
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
meta: { nameText: '情景主题效果:雨', },
|
|
778
|
+
name: "Operations-情景主题效果:雨",
|
|
779
|
+
path: '/Operations/TombSweepingDayTest',
|
|
780
|
+
component: () => import('@shijiu/jsview-vue-samples/TombSweepingDayTest/App.vue'),
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
meta: { nameText: '.9图焦点框漂移', },
|
|
784
|
+
name: "Operations-.9图焦点框漂移",
|
|
785
|
+
path: '/Operations/NinePatchDemo',
|
|
786
|
+
component: () => import('@shijiu/jsview-vue-samples/NinePatchDemo/App.vue'),
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
meta: { nameText: '动图', },
|
|
790
|
+
name: "Operations-动图",
|
|
791
|
+
path: '/Operations/AnimPicture',
|
|
792
|
+
component: () => import('@shijiu/jsview-vue-samples/AnimPicture/App.vue'),
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
meta: { nameText: '动静图标切换', },
|
|
796
|
+
name: "Operations-动静图标切换",
|
|
797
|
+
path: '/Operations/ApicSwitch',
|
|
798
|
+
component: () => import('@shijiu/jsview-vue-samples/ApicSwitch/App.vue'),
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
meta: { nameText: '粒子效果', },
|
|
802
|
+
name: "Operations-粒子效果",
|
|
803
|
+
path: '/Operations/SprayView',
|
|
804
|
+
component: () => import('@shijiu/jsview-vue-samples/SprayView/App.vue'),
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
meta: { nameText: '长图片', },
|
|
808
|
+
name: "Operations-长图片",
|
|
809
|
+
path: '/Operations/LongImage',
|
|
810
|
+
component: () => import('@shijiu/jsview-vue-samples/LongImage/App.vue'),
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
meta: { nameText: '拼图demo', },
|
|
814
|
+
name: "Operations-拼图demo",
|
|
815
|
+
path: '/Operations/MaskClip',
|
|
816
|
+
component: () => import('@shijiu/jsview-vue-samples/MaskClip/App.vue'),
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
meta: { nameText: 'TextureAnimation', },
|
|
820
|
+
name: "Operations-TextureAnimation",
|
|
821
|
+
path: '/Operations/TextureAnimation',
|
|
822
|
+
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App.vue'),
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
meta: { nameText: '焦点框旋转光效果', },
|
|
826
|
+
name: "Operations-焦点框旋转光效果",
|
|
827
|
+
path: '/Operations/TextureAnimation2',
|
|
828
|
+
component: () => import('@shijiu/jsview-vue-samples/TextureAnimation/App3.vue'),
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
meta: { nameText: '公祭日黑白效果', },
|
|
832
|
+
name: "Operations-公祭日黑白效果",
|
|
833
|
+
path: '/Operations/GrayDown',
|
|
834
|
+
component: () => import('@shijiu/jsview-vue-samples/FilterDemo/App.vue'),
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
meta: { nameText: '水波特效', },
|
|
838
|
+
name: "Operations-水波特效",
|
|
839
|
+
path: '/Operations/Ripple',
|
|
840
|
+
component: () => import('@shijiu/jsview-vue-samples/Ripple/App.vue'),
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
meta: { nameText: '滚动图', },
|
|
844
|
+
name: "Operations-滚动图",
|
|
845
|
+
path: '/Operations/Swiper',
|
|
846
|
+
component: () => import('@shijiu/jsview-vue-samples/Swiper/App.vue'),
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
meta: { nameText: '焦点移动样式', },
|
|
850
|
+
name: "Operations-焦点移动样式",
|
|
851
|
+
path: '/Operations/FocusMoveStyle',
|
|
852
|
+
component: () => import('@shijiu/jsview-vue-samples/FocusMoveStyle/App.vue'),
|
|
853
|
+
},
|
|
413
854
|
{
|
|
414
855
|
meta: { nameText: 'Swiper3dTest', },
|
|
415
856
|
name: "Operations-Swiper3dTest",
|
|
@@ -440,24 +881,84 @@ let routeList = [
|
|
|
440
881
|
path: '/Operations/SceneTransition',
|
|
441
882
|
component: () => import('@shijiu/jsview-vue-samples/SceneTransition/App.vue'),
|
|
442
883
|
},
|
|
884
|
+
{
|
|
885
|
+
meta: { nameText: '自定义shader', },
|
|
886
|
+
name: "Operations-自定义shader",
|
|
887
|
+
path: '/Operations/CustomShader',
|
|
888
|
+
component: () => import('@shijiu/jsview-vue-samples/CustomShader/App.vue'),
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
meta: { nameText: '虚线框测试用例', },
|
|
892
|
+
name: "Operations-虚线框测试用例",
|
|
893
|
+
path: '/Operations/DashPath',
|
|
894
|
+
component: () => import('@shijiu/jsview-vue-samples/DashPath/App.vue'),
|
|
895
|
+
},
|
|
896
|
+
// {
|
|
897
|
+
// meta: { nameText: '透视镜效果样例', },
|
|
898
|
+
// path: '/Operations/DriftScopeTest',
|
|
899
|
+
// component: () => import('@shijiu/jsview-vue-samples/DriftScopeTest/App.vue'),
|
|
900
|
+
// },
|
|
901
|
+
{
|
|
902
|
+
meta: { nameText: '二维统计图样例', },
|
|
903
|
+
name: 'Operations-二维统计图样例',
|
|
904
|
+
path: '/Operations/DataChart',
|
|
905
|
+
component: () => import('@shijiu/jsview-vue-samples/CanvasDrawChart/App.vue')
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
meta: { nameText: 'MD+LaTex', },
|
|
909
|
+
name: 'Operations-Markdown',
|
|
910
|
+
path: '/Operations/Markdown',
|
|
911
|
+
component: () => import('@shijiu/jsview-vue-samples/Markdown/App.vue')
|
|
912
|
+
},
|
|
913
|
+
|
|
914
|
+
// ========== touch ==========
|
|
915
|
+
/*
|
|
916
|
+
* 点击Div
|
|
917
|
+
*
|
|
918
|
+
* 对应的应用场景:
|
|
919
|
+
* 单个div标签追加触控功能的场景
|
|
920
|
+
* 只响应点击的话,@click即可, 需要更多触控功能的话,需要div.jsvSetTapListener来设置
|
|
921
|
+
* jsvSetTapListener的经典使用场景
|
|
922
|
+
* 和下面网站呼应
|
|
923
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#%E8%A7%A6%E6%8E%A7%E5%8A%9F%E8%83%BD
|
|
924
|
+
*/
|
|
443
925
|
{
|
|
444
926
|
meta: { nameText: '点击Div', },
|
|
445
927
|
name: "touch-点击Div",
|
|
446
928
|
path: '/touch/ClickDivDemo',
|
|
447
929
|
component: () => import('@shijiu/jsview-vue-samples/ClickDivDemo/App.vue'),
|
|
448
930
|
},
|
|
931
|
+
|
|
932
|
+
/*
|
|
933
|
+
* 触控示例
|
|
934
|
+
*
|
|
935
|
+
* 对应的应用场景:
|
|
936
|
+
* 让MetroWidget激活触控功能,以及如何接受触控事件的场景
|
|
937
|
+
*
|
|
938
|
+
* 和下面网站呼应
|
|
939
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#%E8%A7%A6%E6%8E%A7%E5%8A%9F%E8%83%BD
|
|
940
|
+
*/
|
|
449
941
|
{
|
|
450
942
|
meta: { nameText: '触控示例', },
|
|
451
943
|
name: "touch-触控示例",
|
|
452
944
|
path: '/touch/TouchWidget',
|
|
453
945
|
component: () => import('@shijiu/jsview-vue-samples/TouchWidget/App.vue'),
|
|
454
946
|
},
|
|
947
|
+
|
|
948
|
+
/*
|
|
949
|
+
* DragBox
|
|
950
|
+
*
|
|
951
|
+
* 对应的应用场景:
|
|
952
|
+
* 场景1: 当一个div想监测触控的拖动轨迹的场景, 将此div改为JsvDragBox组件来实现
|
|
953
|
+
* 场景2: 想监测用户在屏幕中滑动的手势轨迹时, 做最上层做一个全屏尺寸JsvDragBox, 通过其位置回调就能监测用户对屏幕的滑动事件
|
|
954
|
+
*/
|
|
455
955
|
{
|
|
456
956
|
meta: { nameText: 'DragBox', },
|
|
457
957
|
name: "touch-DragBox",
|
|
458
958
|
path: '/touch/Box',
|
|
459
959
|
component: () => import('@shijiu/jsview-vue-samples/DragBox/App.vue'),
|
|
460
960
|
},
|
|
961
|
+
|
|
461
962
|
// {
|
|
462
963
|
// meta: { nameText: 'FreeMove触控磁吸', },
|
|
463
964
|
// path: '/touch/FreeMoveChildAttract',
|
|
@@ -468,28 +969,90 @@ let routeList = [
|
|
|
468
969
|
// path: '/touch/FreeMoveLink',
|
|
469
970
|
// component: () => import('@shijiu/jsview-vue-samples/FreeMoveLink/App.vue'),
|
|
470
971
|
// },
|
|
972
|
+
|
|
973
|
+
/*
|
|
974
|
+
* 可拖拽进度条
|
|
975
|
+
*
|
|
976
|
+
* 对应的应用场景:
|
|
977
|
+
* 要制作可触控操作的视频进度条的场景
|
|
978
|
+
*
|
|
979
|
+
* JsvScrollBox和JsvScrollFollow组件的典型应用场景, 展示JsvScrollFollow和JsvScrollBox如何靠linkName联动起来的场景
|
|
980
|
+
* 因为是进度条游标在滚动区域中滑动,所以用JsvScrollBox的Pin模式
|
|
981
|
+
*
|
|
982
|
+
* 和下面网站呼应
|
|
983
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#_5-%E8%BF%9B%E5%BA%A6%E6%9D%A1%E6%8B%96%E5%8A%A8-%E8%A7%86%E9%A2%91%E8%BF%9B%E5%BA%A6%E6%9D%A1
|
|
984
|
+
*/
|
|
471
985
|
{
|
|
472
986
|
meta: { nameText: '可拖拽进度条', },
|
|
473
987
|
name: "touch-可拖拽进度条",
|
|
474
988
|
path: '/touch/ScrollBoxTest',
|
|
475
989
|
component: () => import('@shijiu/jsview-vue-samples/ScrollBoxTest/App.vue'),
|
|
476
990
|
},
|
|
991
|
+
|
|
992
|
+
/*
|
|
993
|
+
* Hover
|
|
994
|
+
*
|
|
995
|
+
* 对应的应用场景:
|
|
996
|
+
* 当一个div要对鼠标的hover事件做响应的场景, 只支持 @mouseenter 和 @mouseleave 事件, 不支持其他hover相关的事件定义
|
|
997
|
+
*
|
|
998
|
+
* 和以下网站呼应
|
|
999
|
+
* https://jsview-dev.shijiutv.com/guide/4.standard-features/4.8.touch-usage.html#_7-%E9%BC%A0%E6%A0%87%E7%9A%84hover%E8%BF%9B%E5%87%BA%E6%A3%80%E6%B5%8B
|
|
1000
|
+
*/
|
|
1001
|
+
{
|
|
1002
|
+
meta: { nameText: 'Hover', },
|
|
1003
|
+
name: 'touch-Hover',
|
|
1004
|
+
path: '/touch/Hover',
|
|
1005
|
+
component: () => import('@shijiu/jsview-vue-samples/Hover/App.vue')
|
|
1006
|
+
},
|
|
1007
|
+
|
|
1008
|
+
// ========== game ==========
|
|
1009
|
+
// TODO: 改为FreeMove后再激活
|
|
477
1010
|
// {
|
|
478
|
-
// meta: { nameText: '
|
|
479
|
-
// path: '/
|
|
480
|
-
// component: () => import('@shijiu/jsview-vue-samples/
|
|
1011
|
+
// meta: { nameText: '抛物运动写法样例', },
|
|
1012
|
+
// path: '/Game/ThrowMoveDemo',
|
|
1013
|
+
// component: () => import('@shijiu/jsview-vue-samples/ThrowMoveDemo/App.vue'),
|
|
481
1014
|
// },
|
|
482
1015
|
{
|
|
483
|
-
meta: { nameText: '
|
|
484
|
-
name: "
|
|
485
|
-
path: '/
|
|
486
|
-
component: () => import('@shijiu/jsview-vue-samples/
|
|
1016
|
+
meta: { nameText: '翻牌游戏', },
|
|
1017
|
+
name: "Game-翻牌游戏",
|
|
1018
|
+
path: '/Game/FlipCard',
|
|
1019
|
+
component: () => import('@shijiu/jsview-vue-samples/FlipCard/App.vue'),
|
|
487
1020
|
},
|
|
488
1021
|
{
|
|
489
|
-
meta: { nameText: '
|
|
490
|
-
name: "
|
|
491
|
-
path: '/
|
|
492
|
-
component: () => import('@shijiu/jsview-vue-samples/
|
|
1022
|
+
meta: { nameText: '精灵图', },
|
|
1023
|
+
name: "Game-精灵图",
|
|
1024
|
+
path: '/Game/SpriteImage',
|
|
1025
|
+
component: () => import('@shijiu/jsview-vue-samples/SpriteImage/App.vue'),
|
|
1026
|
+
},
|
|
1027
|
+
{
|
|
1028
|
+
meta: { nameText: 'SoundPool', },
|
|
1029
|
+
name: "Game-SoundPool",
|
|
1030
|
+
path: '/Game/SoundPool',
|
|
1031
|
+
component: () => import('@shijiu/jsview-vue-samples/SoundPool/App.vue'),
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
meta: { nameText: '碰撞检测', },
|
|
1035
|
+
name: "Game-碰撞检测",
|
|
1036
|
+
path: '/Game/Collision',
|
|
1037
|
+
component: () => import('@shijiu/jsview-vue-samples/Collision/App.vue'),
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
meta: { nameText: '碰撞即停', },
|
|
1041
|
+
name: "Game-碰撞即停",
|
|
1042
|
+
path: '/Game/ImpactStop',
|
|
1043
|
+
component: () => import('@shijiu/jsview-vue-samples/ImpactStop/App.vue'),
|
|
1044
|
+
},
|
|
1045
|
+
{
|
|
1046
|
+
meta: { nameText: '红包雨', },
|
|
1047
|
+
name: "Game-红包雨",
|
|
1048
|
+
path: '/Game/GiftRain',
|
|
1049
|
+
component: () => import('@shijiu/jsview-vue-samples/GiftRain/App.vue'),
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
meta: { nameText: '雷达图', },
|
|
1053
|
+
name: "Game-雷达图",
|
|
1054
|
+
path: '/Game/RadarChart',
|
|
1055
|
+
component: () => import('@shijiu/jsview-vue-samples/JsvRadarChart/App.vue')
|
|
493
1056
|
},
|
|
494
1057
|
];
|
|
495
1058
|
|