February 2, 2010

MacでIronPythonでSilverlightで時計をつくるサンプルのメモ その2


MacでIronPythonでSilverlightで時計をつくるサンプルのメモのつづき。

アナログ時計を実装する。CompositionTargetを使ったアニメーション。
clock > appフォルダ内のapp.xamlとapp.pyを以下のように書き換える。

構成は、
clock/
clock/index.html
clock/app/
clock/app/app.xaml
clock/app/app.py
clock/css/...
clock/javascript/...
clock/js/...
cssフォルダとかはとりあえず触らない。

app.xaml

短針、長針、秒針を長方形で描く。Canvasパネルにそれぞれ置く。CanvasパネルはRenderTransformで180度回転させておく。各々の針はTranslateTransformで中心をずらしておく。針の角度はRotateTransformのAngleを弄るようにする。


app.py

日付を取得するためにDateTimeクラス、アニメーションを行うためにCompositonTargetクラスをインポートしておく。CompositonTargetクラスを用いるとフレームアニメーションを作れる。各フレームごとに日付を取得して、app.xamlで名付けた針の角度を設定する。



ターミナルからclockフォルダで
Chiron /b
でブラウザからindex.htmlに飛べば、時計が動く。はず。

なお、止めるときはターミナルで Ctrl + c。

つづく。