アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » ついにベールを脱いだJavaFX » 第9回 アニメーションを用いてより魅力的に[応用編]

ついにベールを脱いだJavaFX

第9回 アニメーションを用いてより魅力的に[応用編]

前回は基本的なアニメーションということで,javafx.animation.Timelineクラスとjavafx.animation.KeyFrameクラスの使い方を紹介しました。今回は,応用編ということで,標準で提供されているさまざまなアニメーションについて紹介していきます。

今回,紹介するアニメーションはすべてjavafx.animation.transitionパッケージで定義されており,javafx.animation.transition.Transitionのサブクラスとなります。Transitionクラスは内部にアトリビュートとしてTimelineオブジェクトを保持しています。このため,Timelineクラスを使わずともアニメーションを実現することができます。

なお,今週使用したサンプルのソースを含めたNetBeansのプロジェクトは下記のリンクよりダウンロードすることができます。

移動,拡大・縮小,そして回転

前回のサンプルで移動のアニメーションを使用したように,移動のアニメーションはもっともよく使われるアニメーションの1つです。その他にも拡大・縮小と回転がよく使用されています。

そのため,これら3種類のアニメーションは,簡単に実現できるように専用のクラスが提供されています。それぞれ,移動がTranslateTransitionクラス,拡大・縮小がScaleTransitionクラス,回転がRotateTransitionクラスとなります。これら3つのクラスの使い方は共通しているので,ここでは回転を行うRotateTransitionクラスを使ってみましょう。

これらのクラスのスーパークラスであるTransitionクラスはnodeアトリビュートを持ちます。このnodeアトリビュートが回転や移動の対象となります。

リスト1

var node: Node = Group { ... };

var rotateTransition = RotateTransition {
    // 回転の対象ノード
    node: node
    
    // 回転角度の設定
    // 0度から720度回転させる
    fromAngle: 0
    byAngle: 720

    // これらのアトリビュートは Timeline クラスに準ずる
    duration: 5s
    repeatCount:4
    interpolate: Interpolator.EASEBOTH
    autoReverse: true
};

// 回転の開始
rotateTransition.play();

回転の角度を設定するには,開始角度と回転角度を指定する方法と,開始角度と終了角度を指定する方法があります。開始角度と回転角度は,それぞれfromAngleアトリビュートとbyAngleアトリビュートを設定します。開始角度と終了角度は,fromAngleアトリビュートとtoAngleアトリビュートで設定します。ここでは,青字で示したようにfromAngleアトリビュートとbyAngleアトリビュートを使用しました。

回転の中心はノードの中心です。もしノードの中心以外の点を回転中心にしたい場合は,ダミーの透明なノードで中心を調節するか,RotateTransitionクラスを使わずに直接Timelineクラスを使用するようにします。

durationアトリビュートやrepeatCountアトリビュートなどはTimelineクラスを使用した時と同じです。補間方法はKeyFrameクラスではtween演算子を使用しましたが,ここではinterpolateアトリビュートで指定します。

最後にアニメーションを開始させるため,play関数をコールします。タイムラインを制御するplay関数などの関数もTimelineクラスと同じです。

次にノードを表示する部分を示します。

リスト2

Stage {
    title: "Rotate Sample"
    scene: Scene {
        width: 200
        height: 200
        content: [
            node
        ]
    }
}

特に難しい部分は何もありません。単に変数nodeを描画しているだけです。ここでは変数nodeは6つの円としました。

リスト3

def radian = Math.PI / 180.0;

var node: Node = Group {
    translateX: 100
    translateY: 100
 
    // 6個の円
    content: [
        for (angle in [0..300 step 60]) {
            Circle {
                centerX: 50.0 * Math.cos(angle * radian);
                centerY: -50.0 * Math.sin(angle* radian);
                radius: 35
                fill: Color.PINK
                stroke: Color.RED
            }
        },
        // 重ね順を調節するための半円
        Arc {
            centerX: 50,
            centerY: 0
            radiusX: 35,
            radiusY: 35
            startAngle: 180,
            length: 180
            type: ArcType.OPEN
            fill: Color.PINK
            stroke: Color.RED
        }
    ]
};

最後のArcオブジェクトがないと,最後の円が一番上になってしまいます。そこで,Arcオブジェクトで最初の円の一部を上書きしています。このようにすることで,すべての円が一部隠れるようになります。

実行結果を図1に示します。いつもと同じようにこの図もアプレットページへのリンクになっています。これ以降も実行結果の図はアプレットのページへのリンクになっています。また,スクリプトも記載しておきますので,参考になさってください。

著者プロフィール

櫻庭祐一(さくらばゆういち)

横河電機に勤務するかたわらJava in the Boxにて新しい技術を追い続けています。JavaOneは今年で11年目。名実共にJavaOneフリークと化しています。

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス