« 今度はアスコムか…… | トップページ | Vitsa値下げ…… »

2008/03/01

アニメーションの基本

Silverlightでは、アニメーションは大きく次の3つに分けることができます。

  • DoubleAnimation……数値(小数含む)を変化させて実現するアニメーション
  • PointAnimation……座標のような2つの数値を変化させて実現するアニメーション
  • ColorAnimation……色を変化させるアニメーション

なお、DoubleAnimationの「Double」とは「倍精度浮動小数点数」のことです。

ここでは、DoubleAnimationの例として四角形の透明度(Opacity)を変化させるアニメーションを取り上げ、Silverlightでのアニメーションの基本的な記述方法を紹介します。以下がサンプルです。ページが読み込まれると、すぐにアニメーションがスタートします。

http://www.makoto3.net/xaml/silverlight0067/index.html

【myxaml.xaml】

<Canvas
   xmlns="http://schemas.microsoft.com/client/2007"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Rectangle x:Name="MyRect" Width="100" Height="100" Fill="red" Canvas.Left="100" Canvas.Top="100">
  <Rectangle.Triggers>
   <EventTrigger RoutedEvent="Rectangle.Loaded">
    <BeginStoryboard>
    <Storyboard>
      <DoubleAnimation
      Storyboard.TargetName="MyRect"
      Storyboard.TargetProperty="Opacity"
      From="1.0" To="0.0" Duration="0:0:3"
      AutoReverse="True" RepeatBehavior="Forever"/>

    </Storyboard>  
    </BeginStoryboard>
  </EventTrigger>
 </Rectangle.Triggers>
</Rectangle>
</Canvas>

色で指定した箇所について、1つずつ説明します。

●<Rectangle.Triggers>~</Rectangle.Triggers>

四角形の<Rectangle>~</Rectangle>の最初の子要素として書いてあるのが<Ractangle.Triggers>~</Ractangle.Triggers>です。Triggerの「トリガー」には「きっかけ」とか「引き金」といった意味があるので、""四角形をアニメーションするきっかけを指定する"と理解しておけばよいと思います。

●<EventTrigger RouteEvent="Rectangle.Loaded">~</EventTrigger>

具体的な"きっかけ"をRoutedEvent属性で指定します。ここはRectangle.Loadedなので、"四角形が読み込まれたとき"がアニメーションが始まる"きっかけ"です。

●<BeginStoryBoard>~</BeginStoryBoard>

後述するストーリーボード(Storyboard)を指定するための記述です。ヘルプでは、次のように書かれています。

BeginStoryboard is used as a wrapper around a Storyboard that is being triggered. A BeginStoryboard can only contain one Storyboard, not a collection of them

要するに、<BeginStoryBoard>はストーリーボードを囲むラッパー(wrapper)というもので、<BeginStoryBoard>~</BeginStoryBoard>内には、ストーリーボードを1つだけ書けるということですね。

●<Storyboard>~</Storyboard>

これが「ストーリーボード」で、内部に書くアニメーションの入れ物・土台といった役割を果たします。

●<DoubleAnimation~/>

アニメーションの本体であるDoubleAnimationの指定です。Storyboard.TargetName属性は"動かす要素"の指定です。サンプルでは"MyRect"と指定していますが、これは<Rectangle>のx:Nameで指定した名前なので、この四角形を動かすことになります。

Storyboard.TargetProperty属性は、"変化させる性質(プロパティ)"の指定です。ここでは"Opacity"なので透明度を変化させることになります。

Fromは変化させる数値の開始値、Toは終了値、DurationはFromからToまでの所要時間です(時:分:秒で指定します)。このサンプルの場合、Opacityの値を、1.0から0.0まで3秒で変化させることになります。そして、AutoReverse="True"でアニメーションがの逆転再生を行い、RepeatBehavior="Forever"でそれをページが表示されるていあいだは無限に繰り返します。(このあたりの細かい指定は、また改めて説明します)。

だいたい以上が、ページが読み込まれたとき実行するアニメーションの基本です。タグの入れ子関係がちょっと面倒ですが、あまり深い意味は追求しないで、決まったルールと思って覚えてしまうのがよいかと思います。

なお、クリックなどの操作でアニメーションをスタートしたりストップさせたりするには、JavaScriptを使った別の方法が必要になります。詳しくは後述しますが、しばらくはJavaScriptは使わないで、XAMLだけに絞った説明を続けます。

JavaScriptでSilverlight 目次


このページは xfy Blog Editor  を利用して作成されました。

« 今度はアスコムか…… | トップページ | Vitsa値下げ…… »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/39246/40318797

この記事へのトラックバック一覧です: アニメーションの基本:

« 今度はアスコムか…… | トップページ | Vitsa値下げ…… »

2009年7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

最近のトラックバック