交互管理器

2019-08-14 14:23 更新

交互管理器在任意交互/動畫完成之后,允許安排長期的運(yùn)行工作。特別是,這允許 JavaScript 動畫可以順利的運(yùn)行。

應(yīng)用程序可以在交互完成之后根據(jù)以下代碼來安排運(yùn)行任務(wù):

    InteractionManager.runAfterInteractions(() => {      // ...long-running synchronous task...
    });

與其他調(diào)度方案進(jìn)行比較:

  • requestAnimationFrame():代碼是動畫在時(shí)間上的一個(gè)視圖

  • setImmediate/setTimeout():運(yùn)行代碼后,請注意這有可能會延遲動畫

  • runAfterInteractions(): 運(yùn)行代碼后,沒有延遲的動態(tài)動畫

觸發(fā)處理系統(tǒng)將一個(gè)或者多個(gè)動態(tài)觸發(fā)看成是一個(gè)“交互”,并且將推遲 runAfterInteractions() 回調(diào)直到所有的觸發(fā)都已經(jīng)結(jié)束或者被取消了。

交互管理器還允許應(yīng)用程序通過創(chuàng)建一個(gè)“處理”動畫的開端來注冊動畫,結(jié)束之后進(jìn)行清除:

    var handle = InteractionManager.createInteractionHandle();    // run animation... (`runAfterInteractions` tasks are queued)
    // later, on animation completion:
    InteractionManager.clearInteractionHandle(handle);    // queued tasks run if all handles were cleared

方法

static runAfterInteractions(callback: Function)

在所有交互都完成之后安排一個(gè)函數(shù)來運(yùn)行。

static createInteractionHandle()

通知管理器已經(jīng)啟動了一個(gè)交互。

static clearInteractionHandle(handle: number)

通知管理器一個(gè)交互動作已經(jīng)完成了。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號