« DoubleAnimationの例2~Canvas.TopとCanvas.Leftを同時に変化させる | トップページ | DoubleAnimationの例4~変形と移動を組み合わせる »

2008/03/03

DoubleAnimationの例3~変形をアニメーションさせる

変形の数値を変化させてアニメーションさせることもできます。次は、四角形を回転させるサンプルです。

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

【myxaml.xaml】

<Canvas
   xmlns="http://schemas.microsoft.com/client/2007"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
 <Rectangle Width="50" Height="50" Fill="red" Canvas.Left="125" Canvas.Top="125">

  <Rectangle.RenderTransform>
   <RotateTransform Angle="0" CenterX="25" CenterY="25" x:Name="MyTrans" />
  </Rectangle.RenderTransform>

  <Rectangle.Triggers>
   <EventTrigger RoutedEvent="Rectangle.Loaded">
    <BeginStoryboard>
     <Storyboard>
      <DoubleAnimation
           Storyboard.TargetName="MyTrans"
           Storyboard.TargetProperty="Angle"
           From="0" To="360" Duration="0:0:3"
           AutoReverse="True" RepeatBehavior="Forever"/>

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

変形の指定は、<Rectangle.RenderTransform>~<Rectangle.RenderTransform>のあいだにある<RotateTransform>です。四角形は幅と高さが50ピクセルですから、CenterX属性とCenterY属性で25を指定してあるため、回転の中心点が四角形の中心ということになります(CenterXとCenterYを指定しなければ回転の中心は四角形の左上です)。

ポイントは、この<RotateTransform>にx:Nameで"MyTrans"という名前を付けていることです。これにより、<DoubleAnimation Storyboard.TargetName="MyTrans" ……>として、<RotateTransform>をアニメーションの対象にすることができます。あとは、変化させる属性(プロパティ)としてAngleを指定し、0から360まで3秒で変化させ、反復させて、この動作を無限に繰り返します。

このように、変形をアニメーションさせるときは、変形させる図形ではなく、図形の子要素として指定されている変形方法をターゲットとして指定し、その属性を変化させます。「オブジェクト」という言葉を使うなら、Silverlightでは変形方法(この例ではRotateTransform)も「オブジェクト」として扱われる、ということになるわけです。

JavaScriptでSilverlight 目次


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

« DoubleAnimationの例2~Canvas.TopとCanvas.Leftを同時に変化させる | トップページ | DoubleAnimationの例4~変形と移動を組み合わせる »

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: DoubleAnimationの例3~変形をアニメーションさせる:

« DoubleAnimationの例2~Canvas.TopとCanvas.Leftを同時に変化させる | トップページ | DoubleAnimationの例4~変形と移動を組み合わせる »

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  

最近のトラックバック