gpt4 book ai didi

cocoa - CoreAnimation 不适用于 QTMovieView 上的 -setAlphaValue

转载 作者:行者123 更新时间:2023-12-03 17:31:05 25 4
gpt4 key购买 nike

我有一些用于添加 QTMovieView 的基本代码。我希望它淡入,所以我在 setAlphaValue 上添加了一个动画。唯一的问题是它不起作用。 Alpha 值立即设置为它应该设置动画的任何值。如果我尝试制作动画,例如setFrame:它工作正常。您将在下面找到我的代码。这是使用 Mac OS X 10.5 SDK 的 10.5.7。

    - (void)addMovie:(NSString *)aFile
{
QTMovieView *aMovieView;
QTMovie *aMovie;
NSRect contentFrame;

contentFrame = [[self contentView] frame];

aMovieView = [[QTMovieView alloc]
initWithFrame:contentFrame];
[aMovieView setWantsLayer:YES];
[aMovieView setControllerVisible:NO];
[aMovieView setPreservesAspectRatio:YES];

aMovie = [[QTMovie alloc]
initWithFile:aFile error:nil];

[aMovieView setMovie:aMovie];

[aMovieView setAlphaValue:0.4];

[[self contentView] addSubview:aMovieView];

[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:2.0];
[[aMovieView animator] setAlphaValue:0.9];
[NSAnimationContext endGrouping];

}

有什么想法吗?

最佳答案

我不确定,但听起来 QTMovieView 可能不支持 Alpha 合成。我尝试的另一项测试是在 QTMovieView 的 super View 上调用 setWantsLayer,看看这是否会影响 QTMovieViews 正确合成的能力。可能行不通。

您可以尝试使用 QTMovieLayer反而。合并 QTMovieLayer 的一种方法是创建您自己的 NSView 子类,该子类创建并管理添加到其根层内的 QTMovieLayer。但请注意,当在同一窗口中将图层支持的 View 与非图层支持的 View 混合时,如果图层支持的 View 并非全部位于前面或位于后面且重叠,您可能会得到有趣的排序。

关于cocoa - CoreAnimation 不适用于 QTMovieView 上的 -setAlphaValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1621744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com