W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
有關(guān) Lottie 的詳細信息請參見 Lottie 官方文檔 和 Lottie 官方支持能力列表。
Lottie 是一個用于 Web 和 iOS 的移動庫,可使用 Bodymovin 解析以 json 格式導出的 Adobe After Effects 動畫,并將其本地呈現(xiàn)在移動設(shè)備上。以下為 Lottie 動畫庫適配小程序的方法。
支付寶 10.1.35 版本及以上支持 Lottie 動畫。?
<!--.axml-->
<lottie
assetsPath="{{item.assetsPath}}"
autoplay="{{item.autoplay}}"
id="{{item.id}}"
djangoId="{{item.djangoId}}"
path="{{item.path}}"
repeatCount="{{item.repeatCount}}"
placeholder="{{item.placeholder}}"
class="item">
</lottie>
// .js Data Binding
{
id : '2',
desc : 'Django自動播放,低端設(shè)備降級',
autoplay : true,
djangoId:'https://gw.alipayobjects.com/os/basement_prod/1af0a9dc-110a-4a59-9084-a03d45686c8c.zip'
placeholder:'https://gw.alipayobjects.com/mdn/rms_e345fe/afts/img/A*nu3GTaHqJ9AAAAAAAAAAAAAAARQnAQ
524560995883_icon_S.png',
optimize : 'true',
repeatCount : -1
}
/*.acss*/
.item{
width: 700rpx;
height: 400rpx;
/* opacity: 0.5; */
}
屬性 | 類型 | 默認值 | 必填 | 描述 | 最低版本 |
---|---|---|---|---|---|
autoplay | Boolean | false | false | 是否自動播放 | - |
path | String | 空 | false | Lottie 資源地址。包含近端(包內(nèi)地址)和遠端(網(wǎng)絡(luò))的 JSON 文件地址。與 djangoId 二選一 | - |
speed | float | 1.0 | false | 播放速度。正數(shù)為正向播放,負數(shù)負向播放 | - |
repeatCount | number | 0 | false | 循環(huán)次數(shù)。如果是負數(shù)表示無限次如果是 0 表示不循環(huán),播放一次如果是 1 表示循環(huán)一次,播放兩次 | 10.1.80 |
autoReverse | Boolean | false | false | 是否自動回播 | - |
assetsPath | String | - | false | 資源地址。"/" 表明是小程序根目錄 | 10.1.50 |
placeholder | String | - | true | 兜底圖或者降級圖地址。支持本地資源,案例:'/image/lottie/lottie2_default.png'支持 http 的 cdn 地址、近端地址。小程序場景不支持 djangoId。 | 10.1.52 |
djangoId | String | - | false | Lottie 在線資源。遠端的 Zip 文件地址。Lottie 組件會執(zhí)行 MD5 校驗、解壓、獲取等過程,在過程中顯示 placeHolder 圖片。與 path 二選一 | 10.1.52 |
md5 | String | - | false | 在線資源的 md5 校驗。djangoId=https://b.zip 可以使用 b.zip 加密 獲取 md5 值md5="77c6c86fc89ba94cc0a9271b77ae77d2" | 10.1.52 |
optimize | Boolean | false | false | 降級。降級是指如遇低端設(shè)備,Lottie 會降級展示為 placeHolder。?當 optimize 為 true ,并且傳入了 placeHolder 時,在低端設(shè)備上只會展示 placeHolder,不展示 Lottie。低端設(shè)備如下所示:iOS :小于等于 iPhone6PAndroid:內(nèi)存容量小于 3G | 10.1.52 |
方法名 | 描述 | 參數(shù) | 默認值 | 最低版本 |
---|---|---|---|---|
play | 開始播放 | - | - | - |
stop | 停止播放 | - | - | - |
pause | 暫停 | - | - | - |
setSpeed | 設(shè)置播放速度正數(shù)為正向播放,負數(shù)負向播放 | value:numeric value | 1 | - |
goToAndStop(value) | goto 到 value 并停在該進度。示例:goToAndStop({value: 對應的值]}) | value: numeric value.進度 [0.0~1.0] | - | - |
goToAndPlay(value) | goto 到 value 并從該進度開始播。示例:goToAndPlay({value: 對應的值]}) | value: numeric value.進度 [0.0,1.0] | - | - |
playFromMinToMaxProgress(min,max) | 從最小到最大的進度區(qū)間進行播放。示例:playFromMinToMaxProgress({min:對應的值,max:對應的值}) | min:最小進度max:最大進度百分比[0.0,1.0] | - | - |
playFromMinToMaxFrame(min,max) | 從最小到最大的 Frame 區(qū)間進行播放。示例:playFromMinToMaxFrame({min:對應的值,max:對應的值}) | min:最小幀max:最大幀整數(shù)值 | - | - |
downgradeToPlaceholder | 當前 Lottie 視圖指定降級為展示 placeholder | - | - | 10.1.52 |
當實用方法調(diào)用 pause 和 stop 時,都會先后收到 animationCancel、animationEnd 兩個事件。
事件名 | 描述 | 參數(shù) | 最低版本 |
---|---|---|---|
dataReady | 數(shù)據(jù)下載+視圖創(chuàng)建完成 | - | - |
dataFailed | 數(shù)據(jù)加載失敗 | - | - |
animationStart | 動畫開始 | - | - |
animationEnd | 動畫徹底結(jié)束 | - | - |
animationRepeat | 動畫一次重播結(jié)束 | - | 10.1.52 |
animationCancel | 動畫取消 | 業(yè)務調(diào)用 Cancel 時回調(diào) | - |
dataLoadReady | 參數(shù)化時,數(shù)據(jù)準備完成,等待業(yè)務傳入?yún)?shù)化值 | - | 10.1.72 |
支付寶小程序接入 Lottie 支持如下功能
功能 | 簡介 |
---|---|
資源文件處理 | Lottie 內(nèi)如何處理圖片、資源 |
播放能力 | 如何在沒有控制層的前提下有自定義播放能力 |
UI 設(shè)計師提供的 Lottie 動畫可能會帶有目錄 images/
,里面保存的是一些靜態(tài)圖片。
目前有三種解決方案,推薦前兩種:
{"id":"image_0","w":66,"h":89,"u":"images/","p":"img_0.png"}
因此如果圖片資源統(tǒng)一放在一個單獨 URL 里,例如 http://xxx.xxx.com/images/img_0.png,那么需要將http://xxx.xxx.com/ 配置在 assetsPath 參數(shù)中。
Lottie 對資源的定義是
{"id":"image_0","w":66,"h":89,"u":"images/","p":"img_0.png"}
10.1.52 版本開始,p 節(jié)點支持 base64,當使用 base64 時,可以忽略 u 節(jié)點,例如:
"p":"data:image/png;base64,iVBORw0KGgoAAAANSU...."
注意:如果在支付寶 10.1.52、10.1.60 版本中使用 Base64 資源,需要在 JSON 文件中增加 assetsPath="/" 作為參數(shù),否則 iOS 上可能無法顯示。
UI 設(shè)計師已完成的物料資源請先在 Lottie 平臺 上做一次檢測,保證物料包的內(nèi)容文件符合小程序規(guī)范。
??
如果提示“使用插件版本 5.5.0+,客戶端必須也是 5.5.0+,iOS/android 舊版播放器會閃退”,必須重新用兼容性模式導出 JSON。
請盡量分別使用不同系統(tǒng)下的不同機型進行測試,提高正確性。
支付寶版本為 10.1.68 或更低版本時,如果有 iOS 播放不完整、或者 Android 播放閃退的情況,請 UI 設(shè)計師使用 AE 插件導出時選用兼容版本。
說明:
??
支付寶版本 10.1.72 以下如果用到了 JSON 里面有 font-family="PingFang SC" 的字體,請檢查字體問題。因為 Android 沒有這個字體,在 Android 某些機器上(以下為部分閃退機型列表)會閃退。
??
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: