微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

高效使用SILVERLIGHT动画

微软的人立方1.1版本终于发布了,我很荣幸参与其中。从接触这个TASK开始就决定要用SL来实现,正好赶上了SL2发布的快车。感兴趣的朋友可以看看这里,http://renlifang.msra.cn/news.aspx. 

 

SL2还是个不错的东西,我没有用过FLASHFLASH10SL2发布没差几天),使用SL2也是项目需要。对于我这样从来没有使用过类似软件的程序员来说,SL2上手非常的容易,一切是那么顺手,比如使用C#语言。再加上BLEND那就完美了。 

 

在如今的网站开发中,你要是不会SLFLASH…RIA工具,你都不好意思跟人家打招呼,至少也得会使用Ajax。动画效果的交互就是RIA的核心。在这里,我主要说说SL2构建绚丽动画的几个高效方法 

 

1.  使用Visual State状态切换

简单的例子:实现一个按钮,鼠标HOVER后,边框变大。

首先,画出按钮的基本轮廓。

 

选中按钮后,为它添加两个状态,normal状态(按钮正常状态)和MouSEOver状态(鼠标HOVER状态)

 

选中MouSEOver状态,为MouSEOver状态添加动画。在Objects and Timeline中点击Show Timeline,打开动画编辑框。将时间轴移至1s处。在PropertiesTransform面板中调整Scale参数,x:2,y:2. 时间轴上自动插入了一个关键帧。你可以在这里添加更酷更炫的动画。

 

在按钮的MouseEnterMouseLeave事件中进行状态转换。

        

2.  Storyboard模板

Blend中创建一个Story,并以此作为动画模板,在代码中简单地修改Story的各个参数,以达到对动画动态调整的效果

简单的例子:滑块在直线上滑动到指定位置。

先画出基本控件,一条居中的直线和一个滑块indicator

 

 

创建一个新的Story(名称SlipStory),将事件轴移动至1s处,在Properties中将Translate参数修改x:100.(100只是一个预设值,实际情况中要滑动到什么地方是动态获取),时间轴上自动插入了一个关键帧。 

 

动画完成后,加入如下代码修改滑块滑动的位置。

3.  高效而朴素的代码

在熟练掌握各种动画的代码创建方法之后,就可以使用代码来创建所有的动画,缺点就是不易调试,没有Blend中的所见即所得的效果,对新人来说必然不方便。但是如果熟练使用,可以做出更复杂更自由的动画。

 

下面的代码用来创建一段移动的动画,持续时间为1s

 

这是我们移动函数接口 

创建一个新的Story,并检查是否具有TranslateTransform,如果没有就为其添加一个

  

 

 

Story添加关于水平和垂直方向的动画

最后激活Story并播放

虽然代码看起来是一个终极解决的方案,不过用起来也很复杂,所以在实际项目中我通常是三种方法灵活使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐