百度智能小程序 動(dòng)畫

2020-08-28 15:48 更新

animation-view Lottie 動(dòng)畫

解釋:僅支持 Lottie 動(dòng)畫的客戶端原生組件,使用時(shí)請(qǐng)注意相關(guān)限制,動(dòng)畫資源地址可到 lottie 的官方庫進(jìn)行查詢。Lottie 使用入門,詳見官方介紹;設(shè)計(jì)師精彩示例及動(dòng)效文件,設(shè)計(jì)社區(qū)。

屬性說明

屬性名 類型 默認(rèn)值 必填 說明 最低版本

path

String

動(dòng)畫資源地址,目前只支持絕對(duì)路徑

-

loop

Boolean

false

動(dòng)畫是否循環(huán)播放

-

autoplay

Boolean

true

動(dòng)畫是否自動(dòng)播放

-

action

String

play

動(dòng)畫操作,可取值 play、pause、stop

-

hidden

Boolean

true

是否隱藏動(dòng)畫

-

bindended

EventHandle

當(dāng)播放到末尾時(shí)觸發(fā) ended 事件(自然播放結(jié)束會(huì)觸發(fā)回調(diào),循環(huán)播放結(jié)束及手動(dòng)停止動(dòng)畫不會(huì)觸發(fā)。)

3.0.0
低版本請(qǐng)做兼容性處理

action 有效值

說明

play

播放

pause

暫停

stop

停止

示例 

在開發(fā)者工具中打開


代碼示例 1: 動(dòng)畫資源地址在本地,path 為相對(duì)路徑

<view class="wrap">
    <view class="card-area">
        <animation-view 
            class="controls" 
            path="{{path}}" 
            loop="{{loop}}" 
            autoplay="{{autoplay}}" 
            action="{{action}}" 
            hidden="{{hidden}}" 
            bindended="lottieEnd">
        </animation-view>
        <button bindtap="playLottie" type="primary">{{status}}lottie動(dòng)畫</button>
    </view>
</view>
Page({
    data: {
        path: '/anims/lottie_example_one.json',
        loop: true,
        autoplay: true,
        action: 'play',
        hidden: false,
        status: '暫停'
    },
    onShow() {
        console.log(' 百度APP版本11.3以上才可使用');
    },
    playLottie() {
        // 切換播放狀態(tài)
        let action = this.data.action;
        action = action === 'pause' ? 'play' : 'pause';
        let status = action === 'pause' ? '播放' : '暫停';
        this.setData({
            action,
            status
        });
    },
    lottieEnd() {
        console.log('自然播放結(jié)束會(huì)觸發(fā)回調(diào),循環(huán)播放結(jié)束及手動(dòng)停止動(dòng)畫不會(huì)觸發(fā)。');
    }
});

代碼示例 2: 動(dòng)畫資源地址在服務(wù)器上存放

此種使用方式建議在真機(jī)查看完整效果,注意 path 屬性僅可在組件初始化時(shí)傳入,不支持用 setData 方法后續(xù)動(dòng)態(tài)傳入。

在開發(fā)者工具中打開

<view class="wrap">
    <view class="card-area">
        <view class="animation-view-area">
            <animation-view 
                s-if="{{shouldShow}}" 
                class="controls" 
                path="{{path}}" 
                loop="{{loop}}" 
                autoplay="{{autoplay}}" 
                action="{{action}}" 
                hidden="{{hidden}}" 
                bindended="lottieEnd">
            </animation-view>
        </view>
        <button bindtap="playLottie" type="primary">{{status}}lottie動(dòng)畫</button>
    </view>
</view>
Page({
    data: {
        path: '',
        loop: true,
        autoplay: true,
        action: 'play',
        hidden: false,
        status: '暫停',
        shouldShow: ''
    },
    onShow() {
        console.log(' 百度APP版本11.3以上才可使用');
        swan.downloadFile({
            url: 'https://b.bdstatic.com/miniapp/images/lottie_example_one.json',
            header: {
                'content-type': 'application/json'
            },
            success: res => {
                const filePath = res.tempFilePath;
                this.setData({
                    shouldShow: true,
                    path: filePath
                });
            }
        });
    },
    playLottie() {
        // 切換播放狀態(tài)
        let action = this.data.action;
        action = action === 'pause' ? 'play' : 'pause';
        let status = action === 'pause' ? '播放' : '暫停';
        this.setData({
            action,
            status
        });
    },
    lottieEnd() {
        console.log('自然播放結(jié)束會(huì)觸發(fā)回調(diào),循環(huán)播放結(jié)束及手動(dòng)停止動(dòng)畫不會(huì)觸發(fā)。');
    }
});

Bug & Tip

  • Tip:animation-view 組件的位置信息、padding 值以 path 里傳的 json 文件里的 left、top、padding 值為準(zhǔn)。
  • Tip:animation-view 組件不支持原生組件嵌套。
  • Tip:為避免出現(xiàn) iOS 中畫面被拉伸的情況,建議將 animation-view 組件的長寬比設(shè)置的與動(dòng)畫長寬比一致。
  • Tip:path 暫不支持遠(yuǎn)程路徑,原因是端上暫不支持解析遠(yuǎn)程路徑的 json 文件, 如果不想將 json 文件放在小程序包內(nèi),可以通過 API swan.downloadFile 將文件下載到本地,具體可參考上方代碼示例 2。
  • Tip:在保證產(chǎn)品體驗(yàn)流暢,不能影響性能的同時(shí),建議在刷新、加載、運(yùn)營 banner、按鈕、圖標(biāo)等場(chǎng)景中適時(shí)適度的使用動(dòng)效。
  • Tip:互動(dòng)型動(dòng)畫-建議不自動(dòng)播放;展示型動(dòng)畫-建議自動(dòng)播放。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)