< Ellipse.Fill >
< RadialGradIEntBrush GradIEntOrigin ="0.479999989271164,0.46000000834465" >
< RadialGradIEntBrush.relativetransform >
< transformGroup >
< Scaletransform />
< Skewtransform />
< Rotatetransform />
< Translatetransform X ="-0.07" Y ="-0.21" />
</ transformGroup >
</ RadialGradIEntBrush.relativetransform >
< GradIEntStop color ="#FFFFFFFF" />
< GradIEntStop color ="#FFFF0000" Offset ="1" />
</ RadialGradIEntBrush >
</ Ellipse.Fill >
</ Ellipse > 接下来对这个圆形对象进行波感效果设计,本文前面说过波感效果其实就是一个缩放动画,对一个和基础对象一样的对象进行放大到一定程度后将其隐藏。这里需要将上面设计好的圆复制一个作为动画效果设计对象,如下图: 缩放动画效果可以通过Scaletransform来实现,透明度则使用Opacity属性进行设置,要实现波感效果主要就是通过动画在一定的时间内动态的改变这两项的属性值,Scaletransform的X,Y默认为1,Opacity默认也是1。 首先创建一个动画容器时间线,然后移动时间轴到1秒的位置,选中复制后的圆形对象设置Scaletransform的X,Y为3,Opacity的属性值为0,以实现一个放大透明的动画效果。当对象完全透明后就相当于隐藏了,其实也可将其Visibility属性为Collapsed,将对象隐藏不呈现。如下图: 主要就是设置了三个属性值,这三个属性值都在动画过度中动态改变,通过Blend中进行设置后可以看到生成了如下XAML编码: < Storyboard x:name ="RedBall_Clicked" Completed ="RedBall_Clicked_Completed" >
< DoubleAnimationUsingKeyFrames Storyboard.Targetname ="RedBall_copy"
Storyboard.TargetProperty ="(UIElement.Opacity)" BeginTime ="00:00:00" >
< SplineDoubleKeyFrame KeyTime ="00:00:01" Value ="0" />
</ DoubleAnimationUsingKeyFrames >
< DoubleAnimationUsingKeyFrames Storyboard.Targetname ="RedBall_copy"
Storyboard.TargetProperty ="(UIElement.Rendertransform).(transformGroup.Children)[0].(Scaletransform.ScaleX)"
BeginTime ="00:00:00" >
< SplineDoubleKeyFrame KeyTime ="00:00:01" Value ="3" />
</ DoubleAnimationUsingKeyFrames >
< DoubleAnimationUsingKeyFrames Storyboard.Targetname ="RedBall_copy"
Storyboard.TargetProperty ="(UIElement.Rendertransform).(transformGroup.Children)[0].(Scaletransform.ScaleY)"
BeginTime ="00:00:00" >
< SplineDoubleKeyFrame KeyTime ="00:00:01" Value ="3" />
</ DoubleAnimationUsingKeyFrames >
</ Storyboard > 通过查看前面的代码片段可以看到,给圆形对象添加了事件处理: Mouse@R_502_6823@buttonUp ="RedBall_MouseUp",也就是点击了圆对象后需要启动动画的执行: private voID RedBall_MouseUp( object sender, MousebuttonEventArgs e)
{
RedBall_copy.Visibility = Visibility.Visible;
RedBall_Clicked.Begin();
} 同样也给动画添加了完成的事件处理 : Completed ="RedBall_Clicked_Completed", 当动画执行完成后做什么 *** 作。需要做的就是将圆形对象的相关属性设置为最初的属性值,以便在进行第二次动画的时候能够正确无误的实现其效果。 private voID RedBall_Clicked_Completed( object sender, EventArgs e)
{
RedBall_Clicked.Stop();
RedBall_copy.Opacity = 1 ;
RedBall_copy.Visibility = Visibility.Collapsed;
} OK,到这里就完成了整个波感特效的设计制作,最终的运行效果如下图所示,如果你对波感特效感兴趣,建议你下载本文示例代码运行,进一步的体验波感特效。 总结
以上是内存溢出为你收集整理的Silverlight & Blend动画设计系列六:动画技巧(Animation Techniques)之对象与路径转化、波感特效全部内容,希望文章能够帮你解决Silverlight & Blend动画设计系列六:动画技巧(Animation Techniques)之对象与路径转化、波感特效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)