连续 30 天 玩玩看 ProtoPie - Day 22

模拟 Skeleton Loader

https://www.youtube.com/watch?v=8LZ4lNjJ9UE

今天来做一个有趣的,发现这影片有教怎麽做一个「正在载入」的画面。
(看到一些中文翻译 Skeleton Loader 叫做骨架屏?)

我其实比较好奇的是这种需求常出现吗?

想一想,的确是一个使用者可能在网路速度、硬体限制或是软件本身问题可能遇到的情境。

不过要模拟到这麽细致,感觉是要很逼真的原型要做测试的时候?

先来跟跟看,短短的,也刚好是很喜欢的那个微软设计师。

这是 ProtoPie 的 Ask ProtoPie 系列,使用者问问题,ProtoPie 做给你看。

今天用的 ProtoPie 档案在这边:

https://cloud.protopie.io/p/e4f32b8c63?utm_source=youtube&utm_medium=video&utm_campaign=tutorial

开始动手

这次会有三个 Scenes ,第一个是使用者会点开 app 的画面,第二个是 UI 框架正在载入内容,第三个就是进入 app 的画面。

https://ithelp.ithome.com.tw/upload/images/20211007/201419411R34eixX9R.png

我们选择第一个画面 Scene 1 里面的太阳花 icon 。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941stP7tF1zvZ.png

https://ithelp.ithome.com.tw/upload/images/20211007/20141941af5n1EZXfP.png

因为使用者会「点」app 然後会转场到app 去。
所以直接用 Tap 这个 Trigger ,接上一个 Jump 的 Response 。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941eiPXwkqR0B.png

而我们要 Jump 到第二个 Scene 去。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941IEix50oYsV.png

接着去第二个 Scene 。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941cNZIrYZsqv.png

因为不需要使用者做什麽动作,画面出现就是 Trigger ,并且要到第三个 Scene 去。
因此我们用 Start ,并接上一个 Jump 的 Response 到 Scene 3。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941kXmwZBBw6j.png

但我们这次 Transition 改用 Fade ,讲者说明是因为我们希望第二个画面到第三个画面是渐进的。
(就是你可能开 Youtube 发现影片还在跑那种感觉,但已经看得到 Youtube 的画面。)

https://ithelp.ithome.com.tw/upload/images/20211007/20141941ZaB7aleRlK.png

用 Preview 一看,好像转场太快(网路太好或是换新手机的概念。),所以讲者建议 Jump 的 Start Delay 改 2.5 秒。

https://ithelp.ithome.com.tw/upload/images/20211007/201419416o7vaRm17U.png

(讲者这时候还特别强调 easy as PIE)
(话说说在台湾不容易吃到美式的派...对,就是老电影美国派那种派)

到这边这三个画面算串好了,讲者带我们看看有哪些可以模拟更逼真的地方。

让模拟更为逼真

Preview 的时候会发现,点开 App 已经立刻就看到灰框出现,这里可以调整的比较自然一点的出现。
(这是点开瞬间的截图,那时候已经看到灰色框了。)

https://ithelp.ithome.com.tw/upload/images/20211007/20141941ZHP9UlzZHE.png

另外一个地方是,通常 Skeleton Loader 会有一个闪烁的动态(让使用者觉得有事情要发生了减少等待不适感)。
这个部分等等一并来处理。

先来到 Scene 2 选择两个灰框。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941tNFTIlJC8n.png

接着把 Opacity 调成 0 。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941QpkaVKEnh9.png

然後在这个 scene 的 Start Trigger 最後面加上一个 Opacity 的 Response 。
这样就能让画面完整出现的时候才把灰框透明度从0改到100。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941KBq0Ng9U7b.png

两个元素 Frame 9 和 Frame 10 都需要一个 Opacity 。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941VQrUOnooI9.png

Preview 看一下,点开 app 先变成全画面占满之後才出现灰框,这就是我们要的。

接下来要做闪烁的 Loading 状态。

我们回到 Scene 2 。

我们原本 Opacity 只有在 Start 後面让 Frame 9 和 Frame 10 变成 100% 的透明度。
於是我们就复制这两个 Opacity 的 Response 贴上。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941EDJIecd6mq.png

但我们希望透明度从画面启动的 0 到 100 再到一个比较低的透明度。(闪烁动画的分镜)

因此要把後面两个 Opacity 调一个比较低的 Opacity ,讲者是用 25% ,并且 Start Delay 设定个 0.5 秒慢点出现。
(注意 Response 的时间轴也会改变)

https://ithelp.ithome.com.tw/upload/images/20211007/20141941vmbABLfBwW.png

接着,选 Repeat 以及 Infinite Repeat 。这样就能让闪烁一直发生直到上面的 Jump 2.5 秒後跳到下一个 Scene 3 。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941k0iLJiZcPk.png

Preview 看一下,发现好像闪烁频率太高,使用者看起来会很不舒服。

这时候把四个 Opacity 的 Duration 都拉长一点,讲者建议 0.5 秒。

https://ithelp.ithome.com.tw/upload/images/20211007/20141941qdN9lsGk6n.png

从头 Scene 1 来 Preview 一下,点一下 app ,等待载入动画,成功!

(请脑中自行想像,或是自己下载来玩玩看,还满有趣的,也可以自己继续微调)

顺道一提,刚刚发现在调整 Duration 如果是按上下钮,这边的时间轴也会显示时间。
ProtoPie 真的很贴心很多提示呢。
https://ithelp.ithome.com.tw/upload/images/20211007/2014194138yufVlJYk.png

Ikea 真是一个很温馨的地方。

如果未来养老院也能跟这个结合,每天活在舒服的环境里面,白天会有年轻人翘课翘班来吃饭逛街来可以跟长者互动。

好像不错呢。


<<:  Day 23 - [Android APP] 01-架构介绍-MVVM

>>:  均线的重要性-价值千金

[Day13] 补充说明 – csrf

今天要来补充一下Day9 – views有说明到的csrf,虽然这些东西某某百科都有,那我会特别补充...

Day24:检查登入人数

国庆连假中,假日只想耍废玩 game,不想进修QQ,但为了避免断赛,还是加减推一些东西,等明後天再来...

Day 25 : Linux - 如何在windows使用scp去传送档案至Linux上?

如标题,这篇想和大家介绍scp的用法,它可以让你「远端传送档案」到另一台电脑里 这边我们在「本机端」...

Day25-TypeScript(TS)函式(Function)的剩余参数(Rest Parameter)

今天要来讲讲TypeScript(TS)函式(Function)的剩余参数(Rest Paramet...

Day 04 Azure Web App- 方便部署服务

Azure Web App- 方便部署服务 Azure Web App 提供一个方便部署服务的做法,...