2014-01-05

【JavaFX】Transition クラスで遊んでみる

JavaFX で遊ぶ,第3回目は Transition クラス.

--

今日のサンプルコードはこちら.

結局 Scene Graph とは何なのかというと,ツリー構造を持った GUI のデータ構造のこと.で,そのデータツリーの各要素が Node というクラスで構成されているわけだ.

Node のうち,子要素を持たないものを Leaf Node というのだが,コレの代表が Shape クラスのサブクラスで, javafx.scene.shape パッケージに属している.
これらのコンストラクタは,例えばこんな感じ.
Circle circle = new Circle(200, 2, 80);
Rectangle rectangle = new Rectangle(10, 100, 40, 50);
Arc arc = new Arc(200, 180, 40, 40, 0, 180);
どの型も,まず x 座標と y 座標を指定して,その後,それぞれの型に特有なプロパティを当てはめる感じですね.
--
で,これらの Shape にアニメーションを与えるのが Transition クラスです.
これは,サンプルコードを見てもらったほうが早いのですが,例えば TransrateTransition クラスを見てみます.
Text text1 = new Text("Sandbox");
TranslateTransition moving = 
new TranslateTransition(Duration.seconds(3), text1);
moving.setToX(-40);
moving.setToY(80);
どの Transition クラスも同じなのですが,まずコンストラクタでは Duration インスタンスを設定することで,アニメーションにどれだけの時間をかけるのかを決めています.この例なら3秒です.
コンストラクタの2つ目の引数は任意で,後から setter でセットすることも可能ですが,どの Node にアニメーションを与えるかを決めます.
moving#setToX と moving#setToY は TranslateTransition のメソッドで,どこに Node が移動するかを決定しています.
こんな感じで結構簡単にアニメーションを表現できるので,便利かも?
--
サンプルコードの配色はかなり適当 (目についたものを適当にピックアップしてるだけ)なので,ご容赦を…

0 件のコメント:

コメントを投稿