Skip to main content

useTransitionProgress()v4.0.177

一个可以在<TransitionSeries.Sequence>的子组件中使用的钩子,用于获取过渡的进度,以直接操作场景中的对象。

它旨在与none()演示一起使用,但也可以与任何其他演示一起使用。

示例

useTransitionProgress()
tsx
import { useTransitionProgress } from "@remotion/transitions";
import { linearTiming, TransitionSeries } from "@remotion/transitions";
import { none } from "@remotion/transitions/none";
 
const A: React.FC = () => {
const progress = useTransitionProgress();
console.log(progress.entering); // Always `1`
console.log(progress.exiting); // Going from 0 to 1
console.log(progress.isInTransitionSeries); // `true`
 
return <div>A</div>;
};
 
const B: React.FC = () => {
const progress = useTransitionProgress();
console.log(progress.entering); // Going from 0 to 1
console.log(progress.exiting); // Always `0`
console.log(progress.isInTransitionSeries); // `true`
 
return <div>B</div>;
};
 
const C: React.FC = () => {
const progress = useTransitionProgress();
console.log(progress.entering); // Always `1`
console.log(progress.exiting); // Always `0`
console.log(progress.isInTransitionSeries); // `false`
 
return <div>C</div>;
};
 
const Transition: React.FC = () => {
return (
<>
<TransitionSeries>
<TransitionSeries.Sequence durationInFrames={40}>
<A />
</TransitionSeries.Sequence>
<TransitionSeries.Transition
presentation={none()}
timing={linearTiming({ durationInFrames: 30 })}
/>
<TransitionSeries.Sequence durationInFrames={60}>
<B />
</TransitionSeries.Sequence>
</TransitionSeries>
<C />
</>
);
};
useTransitionProgress()
tsx
import { useTransitionProgress } from "@remotion/transitions";
import { linearTiming, TransitionSeries } from "@remotion/transitions";
import { none } from "@remotion/transitions/none";
 
const A: React.FC = () => {
const progress = useTransitionProgress();
console.log(progress.entering); // Always `1`
console.log(progress.exiting); // Going from 0 to 1
console.log(progress.isInTransitionSeries); // `true`
 
return <div>A</div>;
};
 
const B: React.FC = () => {
const progress = useTransitionProgress();
console.log(progress.entering); // Going from 0 to 1
console.log(progress.exiting); // Always `0`
console.log(progress.isInTransitionSeries); // `true`
 
return <div>B</div>;
};
 
const C: React.FC = () => {
const progress = useTransitionProgress();
console.log(progress.entering); // Always `1`
console.log(progress.exiting); // Always `0`
console.log(progress.isInTransitionSeries); // `false`
 
return <div>C</div>;
};
 
const Transition: React.FC = () => {
return (
<>
<TransitionSeries>
<TransitionSeries.Sequence durationInFrames={40}>
<A />
</TransitionSeries.Sequence>
<TransitionSeries.Transition
presentation={none()}
timing={linearTiming({ durationInFrames: 30 })}
/>
<TransitionSeries.Sequence durationInFrames={60}>
<B />
</TransitionSeries.Sequence>
</TransitionSeries>
<C />
</>
);
};

API

一个返回具有以下属性的 React 钩子对象:

entering

进入场景的进度。如果不在<TransitionSeries.Sequence>内部,则始终为1

exiting

退出场景的进度。如果不在<TransitionSeries.Sequence>内部,则始终为0

isInTransitionSeries

当前场景是否在<TransitionSeries.Sequence>内部。

另请参阅