Silverlight
动画制作之动画概述
动画可能是最炫,最吸引我们眼球的效果了。无论是桌面应用程序还是
web
应用程序,动画效果一直是我们开发人员追求的目标。动画是
Silverlight
的核心部分,我们不用关心过多创建时间计时器和事件代码,只需要采用声明
UI
元素依赖项的方式,我们在
XAML
文档中定义相关动画对象,然后设置相对应的参数,我们就可以完成播放剧本的编写,编译器会根据剧本生成相应的动画。
大家都知道动画是由一系列画面组成的,每秒播放的画面数量到达人的眼睛临界频率,我们就认为这些画面是连续的。然而
Silverlight
动画的制作方式是利用属性来实现的,为什么这样子说呢?因为
Silverlight
动画是通过间隔时间内持续改变目标对象属性来实现的。所以我们在制作过程中只需要关注执行时间和关键时间的对象状态就行了,不需要绘制任何中间过渡画面。
下面我们通过一个小的示例来说明上面所说的吧!
实现的效果如图:
1
)刚开始效果:
我们可以看到一行很小的字体。
2
)中间时刻效果:
我们看到这行字体变大了。
3
)最后时刻效果:
我们看到这行字体变小了。
XAML
文档中代码如下:
<TextBlock x:Name="TextBlockAnimated" Text="TextBlockAnimated" Width="300" Height="50">
<TextBlock.Foreground>
</TextBlock.Foreground>
<TextBlock.Triggers>
<EventTrigger RoutedEvent="TextBlock.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames
Storyboard.TargetName="TextBlockAnimated"
Storyboard.TargetProperty="FontSize"
Duration="0:0:4" RepeatBehavior="Forever">
<LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/>
<LinearDoubleKeyFrame Value="50" KeyTime="0:0:1"/>
<LinearDoubleKeyFrame Value="80" KeyTime="0:0:2"/>
<LinearDoubleKeyFrame Value="100" KeyTime="0:0:3"/>
<LinearDoubleKeyFrame Value="0" KeyTime="0:0:4"/>
</DoubleAnimationUsingKeyFrames>
<ColorAnimation Storyboard.TargetName="TextBlockAnimatedBrush"
Storyboard.TargetProperty="Color"
From="Black" To="White" Duration="0:0:4"
RepeatBehavior="Forever">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
下面我们来分部说明这段代码的含义吧!
1
)首先我们声明了文本元素
TextBlock
,并且给
TextBlock
的
Triggers
属性进行复制,该属性的作用是获得对象上的时间触发器
EventTriggers
集合,我们可以在这个集合内部添加多个触发器对象,一旦客户端事件满足我们定义的触发器条件,就会执行内部的代码。
2
)第二步我们通过事件来控制情节串联图版
Storyboard
中的动画。这里需要注意的是
Silverlight
仅能够支持一种触发器操作―
<BeginStoryboard>
。
BeginStoryboard
属性表示情节串联图版,它的作用相当于动画的执行脚本。
Storyboard
还有两个很重要的附加属性:
Storyboard.TargetName
(表示目标元素)和
Storyboard.TargetProperty
(表示目标属性)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。