【发布时间】:2012-07-29 09:13:28
【问题描述】:
我知道可以创建custom animatable properties in Core Animation,但是在 OS X 10.8 的 SceneKit 框架中呢? SCNAnimatable 似乎没有公开与 CALayer 相同的 API,用于使属性可动画化。
在我的应用程序中,我有一个名为Starfield 的SCNNode 子类,我使用SCNNodeRendererDelegate 从旧的OpenGL 应用程序移植了它。 Starfields 公开了一个名为 warpFactor 的 GLfloat 属性:
@interface Starfield : SCNNode<SCNNodeRendererDelegate> {
// other stuff that's not really important for this question
GLfloat warpFactor;
}
@property(nonatomic) GLfloat warpFactor;
@end
但是当我尝试向它添加动画时,像这样:
CABasicAnimation *warp = [CABasicAnimation animationWithKeyPath:@"warpFactor"];
warp.toValue = @1.0;
warp.duration = 5.0;
[starfield addAnimation:warp forKey:@"warp"];
我在控制台中得到以下信息:
[SCNKit ERROR] warpFactor is not an animatable path (from <unnamed SCNNode 0x1016473c0, no children>)
我知道 SceneKit 是全新的,但有谁知道如何使用它?
【问题讨论】:
-
我真的很惊讶这是有人在这里提出的关于 SceneKit 的第一个问题。
标签: objective-c macos core-animation osx-mountain-lion scenekit