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

Windows Phone開發(41):漫談關鍵幀動畫下篇

移動開發
不知道大家通過練習,感覺如何,如果你WPF基礎很扎實的話,我相信這些例子你根本不用看都懂了,當然,如果你是初學者,也不要被這些東西嚇,如果 你真想學習,哪怕理論上的東西你搞不懂(其實,理論的東西沒幾個人真的會懂的)也不要緊,關鍵是多動手,多練習。

也許大家已經發現,其實不管什么類型的動畫,使用方法基本是一樣的,不知道大家總結出規律了沒有?當你找到規律之后,你會發現真的可以舉一反六的,不騙你。

為了能幫助大家找到規律,今天,我們再來寫兩個例子。

一、DiscreteObjectKeyFrame

簡單介紹一下這個吧,它只是為了方便我們進行一些大的切換而提供,但它也不是萬能的,盡管它的目標類型是object類型,前提是它與其它動畫一 樣,只能針對某對象的某屬性進行動畫處理。與Flash相比,Silverlight是少了一些靈活性,但我們知道,畢竟Silverlight并不是真 的為了做動畫而誕生的,微軟推出它的意義是用于企業級應用。而所謂的對多媒體支持或動畫之類,是為了提供更好的用戶體驗罷了,不要真把它當成娛樂專用哦。

好,F話就說到這里,下面開始練習,首先你可以參照下面XAML代碼完成前臺布局,隨便你寫在哪,反正你找到Grid控件當容器就行了。練習嘛也是很靈活的,我從來不會對大家做死搬硬套的要求。

  1. <Grid>   
  2.     <Rectangle x:Name="rec" Margin="100,200" Loaded="rec_Loaded"/>   
  3.     <Grid.Resources>   
  4.         <Storyboard x:Name="std">   
  5.             <ObjectAnimationUsingKeyFrames   
  6.                 Duration="0:0:8"   
  7.                 Storyboard.TargetName="rec"   
  8.                 Storyboard.TargetProperty="Fill"   
  9.                 RepeatBehavior="Forever">   
  10.                 <DiscreteObjectKeyFrame KeyTime="0:0:0">   
  11.                     <DiscreteObjectKeyFrame.Value>   
  12.                         <SolidColorBrush Color="Blue"/>   
  13.                     </DiscreteObjectKeyFrame.Value>   
  14.                 </DiscreteObjectKeyFrame>   
  15.                 <DiscreteObjectKeyFrame KeyTime="0:0:3">   
  16.                     <DiscreteObjectKeyFrame.Value>   
  17.                         <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">   
  18.                             <GradientStop Color="Red" Offset="0"/>   
  19.                             <GradientStop Color="Yellow" Offset="0.5"/>   
  20.                             <GradientStop Color="Purple" Offset="1"/>   
  21.                         </LinearGradientBrush>   
  22.                     </DiscreteObjectKeyFrame.Value>   
  23.                 </DiscreteObjectKeyFrame>   
  24.                 <DiscreteObjectKeyFrame KeyTime="0:0:5">   
  25.                     <DiscreteObjectKeyFrame.Value>   
  26.                         <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">   
  27.                             <GradientStop Color="Snow" Offset="0"/>   
  28.                             <GradientStop Color="Green" Offset="1"/>   
  29.                         </RadialGradientBrush>   
  30.                     </DiscreteObjectKeyFrame.Value>   
  31.                 </DiscreteObjectKeyFrame>   
  32.             </ObjectAnimationUsingKeyFrames>   
  33.         </Storyboard>   
  34.     </Grid.Resources>   
  35. </Grid>   

上面代碼中,我們定義了一個rec_Loaded事件處理程序,目的是啟動動畫,所以,在上面代碼中的rec_Loaded處單擊右鍵,從彈出的菜單中選擇“導航到事件處理程序”,這樣就生成了一個事件處理方法rec_Loaded了,接著我們在這里開始播放動畫。

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

現在請你調試運行,觀賞一下效果吧。

二、LinearPointKeyFrame

這個東西大家一定熟悉,就是對兩個點之間進行動畫,前面的例子有,但這是關鍵幀動畫,也就是說可以在N個點間產生動畫,使用XAML時,它是PointAnimationUsingKeyFrames的子元素。

請參考下面的XAML代碼構建UI界面。

  1. <Grid>   
  2.     <Ellipse x:Name="ell" Width="400" Height="400" Loaded="ell_Loaded">   
  3.         <Ellipse.Fill>   
  4.             <RadialGradientBrush Center="0,0.5" RadiusX="1" RadiusY="0.5">   
  5.                 <GradientStop Color="Gold" Offset="0"/>   
  6.                 <GradientStop Color="Red" Offset="1"/>   
  7.             </RadialGradientBrush>   
  8.         </Ellipse.Fill>   
  9.     </Ellipse>   
  10.     <Grid.Resources>   
  11.         <Storyboard x:Name="std">   
  12.             <PointAnimationUsingKeyFrames   
  13.                     Duration="0:0:12"   
  14.                     Storyboard.TargetName="ell"   
  15.                     Storyboard.TargetProperty="(Ellipse.Fill).(RadialGradientBrush.Center)"   
  16.                     RepeatBehavior="Forever">   
  17.                 <LinearPointKeyFrame KeyTime="0:0:3" Value="0.5,1"/>   
  18.                 <LinearPointKeyFrame KeyTime="0:0:6" Value="1,0.5"/>   
  19.                 <LinearPointKeyFrame KeyTime="0:0:9" Value="0.5,0"/>   
  20.                 <LinearPointKeyFrame KeyTime="0:0:12" Value="0,0.5"/>   
  21.             </PointAnimationUsingKeyFrames>   
  22.         </Storyboard>   
  23.     </Grid.Resources>   
  24. </Grid>   

不要忘了啟動動畫。

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

好,看看效果如何。

不知道大家通過練習,感覺如何,如果你WPF基礎很扎實的話,我相信這些例子你根本不用看都懂了,當然,如果你是初學者,也不要被這些東西嚇,如果 你真想學習,哪怕理論上的東西你搞不懂(其實,理論的東西沒幾個人真的會懂的)也不要緊,關鍵是多動手,多練習。還是那句話,你會穿衣服就行了,沒有人說 非得要懂得怎么做衣服后才能穿衣服的。是不是這個道理呢?如果你不理解農民伯伯是怎么把菜種出來的,難道你不吃菜了不成?

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

2013-04-24 13:51:48

Windows PhoWindows Pho

2013-04-24 14:52:53

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

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

2013-04-17 14:47:19

Windows PhoWindows Pho
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线久草| 国产精品视频一区二区三区, | 黄a免费网络 | 欧美日在线 | 欧美久久影院 | 亚洲精色 | 亚洲视频中文字幕 | 午夜久久久久久久久久一区二区 | 成人三级在线观看 | 天堂一区二区三区四区 | 黄色免费av| 91人人爽| 在线一区二区三区 | 91精品久久 | 亚洲一区二区三区免费在线 | 欧美一级在线观看 | 亚洲视频一| 欧美一区免费 | 日韩一区不卡 | 国产一级一级毛片 | 久久99精品国产99久久6男男 | 在线日韩欧美 | 国际精品鲁一鲁一区二区小说 | 天堂在线免费视频 | 国产香蕉视频在线播放 | 国产999精品久久久影片官网 | 午夜www| 欧美一区免费在线观看 | 免费福利视频一区二区三区 | 99伊人 | 天堂三级| 成人伊人网 | 一区二区三区av | 成人国产精品久久久 | 久久99精品久久久水蜜桃 | 久久精品一区二区 | 日本欧美在线视频 | 在线播放中文字幕 | 国产综合在线视频 | 欧美中文字幕一区二区三区亚洲 | 精品久久ai电影 |