成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows Phone開發(40):漫談關鍵幀動畫中篇

移動開發
盡管前面介紹的幾種動畫會讓覺得很好玩了,但是,不知道你是否發現,在前面說到的一系列XXXAnimation中,都有一個共同點,那就是僅僅針對兩個值的目標值之間產生動畫,如果使用By,將在原值和加上By后的目標值之間進行動畫處理;如果使用From,To,那就更好理解了,就是首尾兩個值之間值的動畫。

一、DiscreteDoubleKeyFrame

離散型關鍵幀動畫,重點,我們理解一下“離散”的意思,其實你查一下《新華字典》,“離”和“散”的意思相近。我們可以這樣解釋:每個關鍵幀之間是直接過渡,其間不經過動畫插補。似乎這樣理解有點苦澀難懂,所以,我們還是從實例入手。

請參考以下XAML代碼寫一個示例:

  1.     <Grid Loaded="OnGridLoaded">   
  2.         <Rectangle Width="100" Height="100" Fill="Green" VerticalAlignment="Top">   
  3.             <Rectangle.RenderTransform>   
  4.                 <TranslateTransform x:Name="trm"/>   
  5.             </Rectangle.RenderTransform>   
  6.         </Rectangle>   
  7.         <Grid.Resources>   
  8.             <Storyboard x:Name="std">   
  9.                 <DoubleAnimationUsingKeyFrames Duration="0:0:5" RepeatBehavior="15"   
  10. Storyboard.TargetName="trm"   
  11. Storyboard.TargetProperty="Y">   
  12.                     <DiscreteDoubleKeyFrame KeyTime="0:0:2" Value="150"/>   
  13.                     <DiscreteDoubleKeyFrame KeyTime="0:0:3" Value="280"/>   
  14.                     <DiscreteDoubleKeyFrame KeyTime="0:0:5" Value="380"/>   
  15.                 </DoubleAnimationUsingKeyFrames>   
  16.             </Storyboard>   
  17.         </Grid.Resources>   
  18.     </Grid>   

在后臺的C#代碼中,千萬不要記了啟動動畫,等下運行后發現動不了就麻煩了。

  1. private void OnGridLoaded(object sender, RoutedEventArgs e)   
  2. {   
  3.     this.std.Begin();   
  4. }   

然后你可以運行了,注意認真觀察動畫的演變過程。

不知道你觀察到了什么?你是否發現,矩形向下運動的過程是直接跳躍式的,每個關鍵之間沒有創建過渡效果,而且直接跳到對應值。

二、DiscreteColorKeyFrame

這也是一個離散型關鍵幀動畫,從名字上我們知道,它是針對顏色進行動畫處理的。還是看例子吧。

請參考下面XAML代碼寫一個測試程序:

  1.     <Grid Loaded="OnGridLoaded">   
  2.         <Ellipse Width="250" Height="250">   
  3.             <Ellipse.Fill>   
  4.                 <SolidColorBrush x:Name="brush" Color="Blue"/>   
  5.             </Ellipse.Fill>   
  6.         </Ellipse>   
  7.         <Grid.Resources>   
  8.             <Storyboard x:Name="std">   
  9.                 <ColorAnimationUsingKeyFrames Duration="0:0:8"   
  10. RepeatBehavior="20"   
  11. Storyboard.TargetName="brush"   
  12. Storyboard.TargetProperty="Color">   
  13.                     <DiscreteColorKeyFrame KeyTime="0:0:2" Value="Yellow"/>   
  14.                     <DiscreteColorKeyFrame KeyTime="0:0:5" Value="Gray"/>   
  15.                     <DiscreteColorKeyFrame KeyTime="0:0:7" Value="Red"/>   
  16.                 </ColorAnimationUsingKeyFrames>   
  17.             </Storyboard>   
  18.         </Grid.Resources>   
  19.     </Grid>   

后臺代碼就不帖了,都懂得寫什么了。

然后運行一下,查看效果。

從效果中可以看到,顏色的改變是沒有平滑的過渡效果的,而是當時間線的播放時間到了關鍵幀所在的位置時,顏色是直接改變的。

三、LinearColorKeyFrame

線性顏色的關鍵幀與離散型動畫相反,每個關鍵幀之間都創建平滑的過渡效果,讓人看起來有連續感。

請參考以下XAML代碼寫一個測試程序。

  1.     <Grid Loaded="onGridLoaded">   
  2.         <Ellipse Width="300" Height="300" >   
  3.             <Ellipse.Fill>   
  4.                 <RadialGradientBrush x:Name="rdGradientBrush" Center="0.5, 0.5"   
  5.                                      RadiusX="0.5" RadiusY="0.5">   
  6.                     <GradientStop Color="LightGreen" Offset="0"/>   
  7.                     <GradientStop Color="DarkGreen" Offset="1"/>   
  8.                 </RadialGradientBrush>   
  9.             </Ellipse.Fill>   
  10.         </Ellipse>   
  11.         <Grid.Resources>   
  12.             <Storyboard x:Name="std">   
  13.                 <ColorAnimationUsingKeyFrames Duration="0:0:6"   
  14. RepeatBehavior="Forever"   
  15. Storyboard.TargetName="rdGradientBrush"   
  16. Storyboard.TargetProperty="(RadialGradientBrush.GradientStops)[0].(GradientStop.Color)">   
  17.                     <LinearColorKeyFrame KeyTime="0:0:1" Value="Orange"/>   
  18.                     <LinearColorKeyFrame KeyTime="0:0:3" Value="White"/>   
  19.                     <LinearColorKeyFrame KeyTime="0:0:6" Value="Pink"/>   
  20.                 </ColorAnimationUsingKeyFrames>   
  21.                 <ColorAnimationUsingKeyFrames Duration="0:0:6"   
  22. RepeatBehavior="Forever"   
  23. Storyboard.TargetName="rdGradientBrush"   
  24. Storyboard.TargetProperty="(RadialGradientBrush.GradientStops)[1].(GradientStop.Color)">   
  25.                     <LinearColorKeyFrame KeyTime="0:0:3" Value="Yellow"/>   
  26.                     <LinearColorKeyFrame KeyTime="0:0:6" Value="Violet"/>   
  27.                     <LinearColorKeyFrame KeyTime="0:0:7" Value="SeaGreen"/>   
  28.                 </ColorAnimationUsingKeyFrames>   
  29.             </Storyboard>   
  30.         </Grid.Resources>   
  31.     </Grid>   

頁面上的正圓是使用徑向漸變填充的,漸變顏色點有兩個,我們分別對這兩個漸變點的顏色進行線性動畫處理,這樣就會做出很漂亮的效果,如下面圖片所示。

 

責任編輯:閆佳明 來源: oschina
相關推薦

2013-04-24 15:28:02

Windows PhoWindows Pho

2013-04-24 13:51:48

Windows PhoWindows Pho

2013-04-24 13:31:59

Windows Pho動畫之ColorAni

2013-04-25 11:25:38

Windows PhoWindows Pho

2013-04-24 13:19:06

Windows Pho動畫DoubleAni

2013-04-24 13:43:10

Windows Pho動畫PointAnim

2018-09-21 15:26:45

大數據管理系統

2013-07-30 12:37:56

Windows PhoWindows Pho

2010-04-21 17:07:54

Windows Pho

2013-04-17 14:00:06

Windows PhoWindows Pho

2011-06-07 12:42:15

Windows Pho

2013-04-16 17:02:50

Windows Pho概論

2013-04-19 16:34:56

Windows PhoWindows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho

2013-06-18 00:58:54

CocoStudio工Cocos2d-x

2010-04-08 17:40:23

Windows Pho

2010-07-16 15:29:02

Windows Pho

2012-08-16 10:35:50

Windows Pho

2011-06-07 11:35:38

Windows Pho

2013-04-17 13:27:04

Windows PhoWindows Pho
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91视频一区二区 | 欧美一级特黄aaa大片在线观看 | 亚洲黄色片免费观看 | 一级毛片视频在线观看 | 特黄特色大片免费视频观看 | 国产日韩欧美精品一区二区三区 | 少妇精品亚洲一区二区成人 | 日日夜夜精品免费视频 | 亚洲电影在线播放 | 一级毛片视频 | 噜噜噜噜狠狠狠7777视频 | 欧美专区在线 | 久久成人午夜 | 一区二区在线 | 国产色在线| 成人激情视频免费观看 | 久久久久精| 国产精品久久久久久吹潮 | 免费av一区二区三区 | 亚洲不卡视频 | 黄网站免费观看 | 伊人网国产 | 国产一区二区视频免费在线观看 | 国产一区二区三区在线 | 亚洲有码转帖 | 久久99国产精品久久99果冻传媒 | 先锋av资源网 | 一级做a爰片性色毛片视频停止 | 精品国产久 | 精品伊人久久 | 日韩有码在线播放 | 黄色在线免费播放 | av日日操 | 操操日| 国产精品免费视频一区 | 91视视频在线观看入口直接观看 | 色狠狠一区 | 国产成人免费视频网站高清观看视频 | 日韩中文在线 | 91视视频在线观看入口直接观看 | 91色视频在线观看 |