Object Animate

古い記事
この記事は公開から1年以上経っており,情報が古い可能性があります.

Deprecated: the_author_ID の使用はバージョン 2.8.0 から非推奨になっています ! 代わりに the_author_meta('ID') を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 4779
2

概要

Windows Forms Applicationでもコントロールをアニメーションで動かしたい!ということでライブラリ化してみました。
基本非同期で動作するものでスムーズな動作ができます。
obj-animate
また、JavascriptのjQueryのような感じにしたいので1行で一気に命令を書いてしまえるよう、工夫してみました。

サンプルソース

1つのコントロールを動かす

panel1.Animate("Location", new Point(39, 24)).Execution()

コントロールから直接Animateを発行することができます。
Animateを呼び出すだけではアニメーションは実行されません。必ず最後にExecutionを呼び出してあげてください。

順番に動かす

AnimateQueue.Create()
    .AddAnimate(panel1, "Location", new Point(39, 24))
    .NextAnimate(panel2, "Location", new Point(244, 23))
    .Execution();

AnimateQueue.Create()を呼び出すことでインデント的にソースコードが綺麗になります。
キューにアニメーションを追加する場合はAddAnimate
アニメーションが終わった後に次のアニメーションを指定する場合はNextAnimateを呼び出します。

同時に動かす

AnimateQueue.Create()
    .AddAnimate(panel1, "Location", new Point(39, 24))
    .AddAnimate(panel2, "Location", new Point(244, 23))
    .Execution();

順番に動かす場合はAddAnimateをズラズラっと追加していくだけです。
これで同時に動かすようにキューに追加できます。

オプション

panel1.Animate("Location", new Point(39, 24),
    new AnimateOption()
    {
        Quority = 5,
        Speed = 500,
    }).Execution();

アニメーションにオプションを持たせることも可能です。
オプションは以下の通りです。

Query 1フレームにかける時間(ミリ秒)を指定します。小さければ小さいほど滑らかに動きます。
Speed アニメーションにかける時間(ミリ秒)を指定します。小さければ小さいほど早く動きます。
Type アニメーションの動きを変更することができます。
Cos(標準) / Sin/ Straight(等速)
Async  trueの場合、ThreadPoolを使い非同期で実行します。

ただし、AddAdnimateやNextAnimateメソッド等は動きを変えるTypeプロパティしか設定することができません。
AnimateQueueに追加されているAnimateの場合、Animateを発行してからオプションを設定してもQuery/Speedプロパティはキューの設定に上書きされます。
AnimateQueue側のオプションを変更してください。

ダウンロード

こちらから無料でダウンロードできます。
[wpdm_file id=12] すべて自己責任でご使用ください。
逆コンパイル等は禁止です。ソースコードが必要な場合はご連絡ください。
ライブラリ単体での再配布は禁止致します。