Apache flex Flex 4:两个视频显示器的交叉淡入过渡不起作用
我试图在Flex中在两个状态之间进行交叉淡入淡出转换,两个状态都包含一个VideoDisplay对象。问题是默认的交叉淡入淡出效果会对这两种状态进行位图快照,并在这两种状态之间混合。这意味着在过渡期间,电影似乎处于冻结状态 有谁知道一个解决方案,它使用像素弯曲(GPU加速)方法在两部电影之间淡入淡出?我的另一个选择是手动重新排列视频对象并更改顶部对象的alpha,但这会占用大量CPU(在我的情况下为±300%) 状态: 转换:Apache flex Flex 4:两个视频显示器的交叉淡入过渡不起作用,apache-flex,transitions,states,videodisplay,Apache Flex,Transitions,States,Videodisplay,我试图在Flex中在两个状态之间进行交叉淡入淡出转换,两个状态都包含一个VideoDisplay对象。问题是默认的交叉淡入淡出效果会对这两种状态进行位图快照,并在这两种状态之间混合。这意味着在过渡期间,电影似乎处于冻结状态 有谁知道一个解决方案,它使用像素弯曲(GPU加速)方法在两部电影之间淡入淡出?我的另一个选择是手动重新排列视频对象并更改顶部对象的alpha,但这会占用大量CPU(在我的情况下为±300%) 状态: 转换: <s:transitions> <s:T
<s:transitions>
<s:Transition >
<s:CrossFade id="crossfader" target="{this}" duration="{fadeTime}" />
</s:Transition>
</s:transitions>
<components1:VideoDisplay
id="movie_attract"
width="640" x="0" height="480" y="0"
source="{configuration.movieAttract.source}"
includeIn="attract"
/>
<components1:VideoDisplay
id="movie_engage"
left="0" right="0" top="0" bottom="0"
source="{configuration.movieEngage.source}"
includeIn="engage"
/>
对象:
<s:transitions>
<s:Transition >
<s:CrossFade id="crossfader" target="{this}" duration="{fadeTime}" />
</s:Transition>
</s:transitions>
<components1:VideoDisplay
id="movie_attract"
width="640" x="0" height="480" y="0"
source="{configuration.movieAttract.source}"
includeIn="attract"
/>
<components1:VideoDisplay
id="movie_engage"
left="0" right="0" top="0" bottom="0"
source="{configuration.movieEngage.source}"
includeIn="engage"
/>
我发现使用火花衰减(而不是交叉衰减)对我来说效果更好 用以下内容替换交叉淡入淡出线应该可以
<s:Fade id="crossfader" targets="{[ movie_attract, movie_engage ]}" duration="{fadeTime}" />
免责声明:我没有用当前正在播放视频的视频显示器测试过这一点。但即使是暂停的视频,淡入淡出效果也比交叉淡出效果好得多。和CrossFade不同,Fade平滑且不抖动。我知道这并不是严格地回答您的问题,但您可能想尝试一下。这很有效,我已经测试过了!此解决方案的唯一缺点是使用了大量CPU,尤其是大视频文件。很高兴我能提供帮助。:-)如果它解决了你的问题,别忘了把它标记为答案。