2016-12-19 14 views
1

現在、私はオフセットを更新し、最後に次のアニメーションをリセットするアニメーションを持っています。私は別のアニメーションと調整するためにこのアニメーションの更新を聞いていますが、オフセットが更新されたときにトリガーされていません。リアクションネイティブアニメーションリスナーは、オフセットが更新されたときにトリガーされません

imagePosition.addListener(this._animateOther) 

私のオブジェクトの移動に合わせて_animateOtherがトリガされると思います。

ただし、これは_animateOtherをトリガーしません。

this.state.imagePosition.setOffset(update) 

オフセットが値にマージされた場合にのみ、_animateOtherがトリガーされます。

this.state.imagePosition.flattenOffset() 

これはバグですか、オフセットの更新を聞く方法はありますか?

答えて

0

_animateOtherは、値が更新されたときにのみオフセットされます。 setOffsetの代わりにsetValueを試してください。

flattenOffsetは、オフセット値をベース値にマージし、オフセットをゼロにリセットします。それはなぜあなたの_animateOtherがトリガされていることを、アニメーションの値を更新

flattenOffset() { 
    this._value += this._offset; 
    this._offset = 0; 
} 

:内部コードは次のようになります。

+0

しかし、オフセットの目的は私が継続的なアニメーションを行うことができるようにすることです。 ユーザーが(0,0)から(20,5)の四角形をドラッグして指を持ち上げ、(20,5) - >(30,10)から四角形をドラッグ 正方形は次のパンでリセットされると(10,5)になります。私がオフセットを更新し、最後に平坦化すれば、正しい(30,10)座標に終わるでしょう。 –

+1

あなたが四角形(ViewのonResponderGrantまたはPanResponderのonPanResponderGrant)、 'setOffet'をアニメーションの値に、' setValue'を0に移動させ、指を動かすたびに値を更新(onResponderMove)、flattenOffsetリフトフィンガー(onResponderRelease)。 PanResponderを使用していますか? [ここに例があります](https://gist.github.com/octopitus/edcf671ddea4f60b3794099bec304748) – Octopitus

関連する問題