Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex 4:两个视频显示器的交叉淡入过渡不起作用_Apache Flex_Transitions_States_Videodisplay - Fatal编程技术网

Apache flex Flex 4:两个视频显示器的交叉淡入过渡不起作用

Apache flex Flex 4:两个视频显示器的交叉淡入过渡不起作用,apache-flex,transitions,states,videodisplay,Apache Flex,Transitions,States,Videodisplay,我试图在Flex中在两个状态之间进行交叉淡入淡出转换,两个状态都包含一个VideoDisplay对象。问题是默认的交叉淡入淡出效果会对这两种状态进行位图快照,并在这两种状态之间混合。这意味着在过渡期间,电影似乎处于冻结状态 有谁知道一个解决方案,它使用像素弯曲(GPU加速)方法在两部电影之间淡入淡出?我的另一个选择是手动重新排列视频对象并更改顶部对象的alpha,但这会占用大量CPU(在我的情况下为±300%) 状态: 转换: <s:transitions> <s:T

我试图在Flex中在两个状态之间进行交叉淡入淡出转换,两个状态都包含一个VideoDisplay对象。问题是默认的交叉淡入淡出效果会对这两种状态进行位图快照,并在这两种状态之间混合。这意味着在过渡期间,电影似乎处于冻结状态

有谁知道一个解决方案,它使用像素弯曲(GPU加速)方法在两部电影之间淡入淡出?我的另一个选择是手动重新排列视频对象并更改顶部对象的alpha,但这会占用大量CPU(在我的情况下为±300%)

状态:

转换:

<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,尤其是大视频文件。很高兴我能提供帮助。:-)如果它解决了你的问题,别忘了把它标记为答案。