« スクリプトの基本4~ブラシのプロパティをスクリプトで変更する | トップページ | 何気に変わってたり復活してたりする »

2008/03/26

スクリプトの基本5~変形の方法をスクリプトで変更する

スクリプトを使えば、変形方法を制御することもできます。以下は、マウスポインタをのせると90度回転し、離すと元に戻るサンプルです。

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

ImageBrushのImageSourceプロパティを変えて画像を切り替えている サンプル と同様に、変形を行う<RotateTransform>にx:Nameで名前を付け、スクリプトでfindNameメソッドを使ってその<RotateTransform>を指し示し、Angleプロパティを変える、という仕組みになっています。ソースを示します。

【myxaml.xaml】

<Canvas
 xmlns="http://schemas.microsoft.com/client/2007"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 Width="300" Height="300" Background="lavender">
 <Ellipse
  Width="200" Height="200" Canvas.Left="50" Canvas.Top="55"
  MouseEnter="myFunc1" MouseLeave="myFunc2" >
  <Ellipse.Fill>
   <ImageBrush ImageSource="img02.jpg" Stretch="None" />
  </Ellipse.Fill>
  <Ellipse.RenderTransform>
     <RotateTransform Angle="0"  CenterX="100" CenterY="100" x:Name="myRender" />
  </Ellipse.RenderTransform>
 </Ellipse>
</Canvas>

【myScript.js】

function myFunc1(sender,args) {
 sender.findName("myRender").Angle="90";
}
function myFunc2(sender,args) {
 sender.findName("myRender").Angle="0";
}

円の内部に画像を表示するため<ImageBrush>を使っていますが、今回はスクリプトで画像は変更しないので、x:Nameで名前は付けていません。x:Nameで名前を付けているのは、回転を行う<RotateTransform>です。こちらに"myRender"という名前を付け、AngleXは"0"としています。なお、CenterXとCenterYはともに100なので、回転の中心は、円の左上から右に100px、下に100pxとなります。円は縦横が200pxなので、ちょうど真ん中が回転の中心ということになるわけです。

イベントハンドラは、円の<Ellipse>ら指定しています。MouseEnterで関数myFunc1を実行し、MouseLeaveでmyFunc2を実行します。

関数myFunc1では、finfNameメソッドで"myRender"、つまり回転を行う<<RotateTransform>を見つけ、そのAngleプロパティを90にします。そして、関数myFunc2では同様にしてAngleプロパティを0にします。

このように、スクリプトを使えば変形方法を自由にコントロールすることができます。ここでは<RotateTransform>を取り上げましたが、もちろん<ScaleTransform>や<SkewTransform>などでも、同じ方法で変形方法を制御可能です。

<< JavaScriptでSilverlight 目次  >>


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

« スクリプトの基本4~ブラシのプロパティをスクリプトで変更する | トップページ | 何気に変わってたり復活してたりする »

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: スクリプトの基本5~変形の方法をスクリプトで変更する:

« スクリプトの基本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  

最近のトラックバック