成人免费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-24 13:19:06

Windows Pho動畫DoubleAni

2013-04-25 11:25:38

Windows PhoWindows Pho

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

2011-06-07 11:35:38

Windows Pho

2013-04-17 13:27:04

Windows PhoWindows Pho

2013-07-31 13:03:51

Windows PhoWindows Pho
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品毛片无码 | 国产精品免费视频一区 | 成人日韩 | 人人玩人人干 | 欧美一区二区三区在线视频 | 黄色在线免费观看视频网站 | 国产成人av在线播放 | 在线观看亚洲 | 97久久精品 | 综合久久久久久久 | 中文字幕 在线观看 | 国产精品久久久久久久三级 | 黄网站色大毛片 | 色婷婷综合网 | 在线观看视频91 | 亚洲精品视频免费观看 | 国产aⅴ爽av久久久久久久 | 天堂免费| 日韩和的一区二区 | 国产精品成人在线播放 | 久久亚洲欧美日韩精品专区 | 日韩久久久久久久 | 精品欧美一区二区精品久久久 | 91精品一区二区 | 久久国产精品久久久久久久久久 | 国产目拍亚洲精品99久久精品 | 本道综合精品 | 亚洲综合色自拍一区 | 亚洲高清视频一区二区 | 国产视频精品区 | 日本综合在线观看 | 国产精品视频久久久 | 久久亚洲一区二区三区四区 | 91视频国产区 | 欧美精品福利视频 | 天天爽夜夜操 | 国产精品久久久久久影视 | 成人国产精品入口免费视频 | 欧美激情在线播放 | 亚洲欧美视频 | 亚洲精品一区二区三区四区高清 |