一:Animation Timing Curves
1:Linear Animation Timing
2:Ease-In Animation Timing
3:Ease-Out Animation Timing
4:Ease-In Ease-Out Animation Timing
5:Custom Animation Timing
自定义动画执行曲线设置
We create a custom timing with the initWithControlPoints:::: method on CAMediaTimingFunction like this:
- (CAMediaTimingFunction *)getTimingFunction {
CGFloat c1x = 0.5;
CGFloat c1y = 1.0;
CGFloat c2x = 0.5;
CGFloat c2y = 0.0;
return [[CAMediaTimingFunction alloc initWithControlPoints:cx1 :cy1 :cx2 :cy2];
}
写道
Since the initial and final values are already known (recall that they are {0, 0} and {1, 1}, respectively), we have to specify only the control
points. In our example, we set the first control point to {0.5, 1.0} and the second control point to {0.5, 0.0}.
-(void)setupMover {
NSRect bounds = self.bounds;
NSRect moverFrame =NSInsetRect(bounds, NSWidth(bounds) / 4.0f,NSHeight(bounds) / 4.0f);
moverFrame.origin.x = 0.0f;
mover = [[NSImageView alloc] initWithFrame:moverFrame];
[mover setImageScaling:NSScaleToFit];
[mover setImage:[NSImage imageNamed:@"photo.jpg" ]];
[self addSubview:mover];
}
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setupMover];
}
return self;
}
- (BOOL)acceptsFirstResponder {
return YES;
}
- (void)keyDown:(NSEvent *)event {
[self move];
}
- (CABasicAnimation *)moveAnimation {
if(nil == moveAnimation) {
moveAnimation = [CABasicAnimation animation];
moveAnimation.duration = 2.0f;
moveAnimation.timingFunction =
[[CAMediaTimingFunction alloc]
initWithControlPoints:0.5 :1.0 :0.5 :0.0];
}
return moveAnimation;
}
- (void)move {
NSDictionary *animations = [NSDictionary
dictionaryWithObject:[self moveAnimation]
forKey:@"frameOrigin" ];
[mover setAnimations:animations];
NSPoint origin = mover.frame.origin;
origin.x += NSWidth(mover.frame);
[mover.animator setFrameOrigin:origin];
}
分享到:
相关推荐
它包括Core Animation Layer System、Core Animation Layer Types、Core Animation Transitions以及Core Animation Timing等关键部分。理解这些组件如何协同工作是掌握高级技巧的基础。 二、自定义CALayer 1. **...
8. **Animation Timing**: 动画的时间曲线(timing function)可以改变动画的速度感,例如easeInEaseOut、linear、easeIn、easeOut等,可以使用CAMediaTimingFunction来定制。 9. **Group Animations**: 可以使用...
11. **Animation Timing Functions**: 控制动画的速度曲线也是很重要的一环,可以通过`CAMediaTimingFunction`调整动画的速度,如线性、缓入、缓出等,以实现更自然的动画效果。 以上就是iOS应用源码——动画.zip中...
5. **Transition和Animation Timing Function**:在CSS3中,transition用于单一属性的过渡效果,而animation则可以定义完整的动画序列。动画的节奏感可以通过animation-timing-function来调整,比如ease、linear、...
此外,核心动画编程指南也涉及了如何使用Core Animation提供的关键帧动画(keyframe animations)、核心动画时间函数(core animation timing functions)、时间轴控制(timelines control)等高级特性。关键帧动画...
7. **Animation Timing Function**: 动画的节奏和速度曲线可以通过调整timing function来改变,如ease-in-out、linear等,以创造出不同的视觉感受。 8. **Keyframe Animations**: 使用@keyframes规则,可以定义动画...
6. **Animation Timing Functions**:为了使动画更加自然流畅,我们可以自定义或选择内置的时间函数(如`easeInEaseOut`),控制动画的速度曲线。 7. **Layer Property Bindings**:通过KVC(Key-Value Coding)和...
2. **animation 属性**: 用于应用动画,它是一个复合属性,包括多个子属性,如 animation-name、animation-duration、animation-timing-function 等。例如: ```css element { animation-name: example; ...
`animation`属性由多个子属性组成,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill-mode`和...
`animation`属性是多个相关属性的简写形式,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill...
6. **时间函数(Timing Functions)**: 时间函数决定了动画的速度曲线,如ease-in-out、linear等,可以调整动画的加速和减速效果。 7. **动画组(Animation Groups)**: 可以将多个动画组合成一个动画组,让...
它由多个子属性组成,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill-mode`和`animation-...
《Timing for Animation》是一本深度探讨动画时间控制的权威书籍,专为那些希望在动画制作领域深化理解的读者而设计。这本书涵盖了动画制作中的关键环节——时间运用,它对于创造逼真、生动的角色动态至关重要。在...
`animation`属性是CSS3 Animation的核心,它是一个复合属性,可以包含多个子属性,如`animation-name`、`animation-duration`、`animation-timing-function`等。以下是一个完整的`animation`声明示例: ```css div ...
它是一个复合属性,包含了多个相关的子属性,如`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill-...
`animation`属性是一个简写属性,用于设置多个与动画相关的属性,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-...
CSS3的animation属性是一组属性的简写形式,包括`animation-name`、`animation-duration`、`animation-timing-function`、`animation-delay`、`animation-iteration-count`、`animation-direction`、`animation-fill...
4. **Timing and Duration**: 动画的节奏和持续时间对整体效果有很大影响。你可以通过设置animation.duration来定义动画的总时长,animation.timingFunction来控制速度曲线,比如线性、Ease In、Ease Out等。此外,...
`animation`是一个简写属性,包括`animation-name`、`animation-duration`、`animation-timing-function`等子属性。例如: ```css .animatedElement { animation: fadeIn 2s ease-in-out; } ``` 这个例子将`...
`animation-timing-function`属性是这个领域中的一个重要组成部分,它定义了动画执行过程中的速度变化曲线,从而影响元素从起始状态到结束状态过渡的方式。 `animation-timing-function`的基本语法如下: ```css ...