SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Ajax対応コントロールでJavaScriptレス アニメーションを実装する

AnimationExtenderコントロール(ASP.NET AJAX Control Toolkit)の利用方法を学習する


  • X ポスト
  • このエントリーをはてなブックマークに追加

テンプレートの確認とツールボックスへの追加

 インストール完了後にVSを起動し、スタートページ上の[Webサイト]の作成を選択してください。次のような[新しいWebサイト]ダイアログが表示され、Control Toolkitに対応したテンプレートが追加されていることが確認できるはずです(図5)。

図5 [新しいWebサイト]ダイアログ
図5 [新しいWebサイト]ダイアログ

 テンプレートに[AJAX Control Toolkit Web Site]を、言語に[Visual Basic]を選択した後、Webサイトを作成します。デフォルトで作成されたWebサイトの状態は、次の通りです(図6)。

図6[AJAX Control Toolkit Web Site]を選択時のWebサイト
図6[AJAX Control Toolkit Web Site]を選択時のWebサイト

 続いて、今回利用するControl Toolkitのコントロールをツールボックスに追加します。ASP.NET AJAXと違い、Control ToolkitはGAC(Global Assembly Cache)に登録されないのでユーザーがアイテムをツールボックスに追加することになります。ツールボックス上で右クリックし、[タブの追加]を選択してください。続いてタブの名前を[Control Toolkit](任意の名前で構いません)と入力してクリックしてください。[Control Toolkit]タブ上で右クリックし、[アイテムの選択...]を選択すると[ツールボックス アイテムの選択]というダイアログが表示されます(図7)。

図7 [ツールボックス アイテムの選択]ダイアログ
図7 [ツールボックス アイテムの選択]ダイアログ

 [参照...]ボタンをクリックし、任意の場所に配置したSampleWebSiteのBinフォルダ内にある[AjaxControlToolkit.dll]を選択して[開く]ボタンをクリックすると、Control Toolkitの各コントロールが追加されますので、ダイアログ上で[OK]ボタンをクリックしてください。以上の手順でツールボックスの[Control Toolkit]タブ上にControl Toolkitの各コントロールが追加されます(図8)。

図8 ツールボックス内のControl Toolkitコントロール(一部)
図8 ツールボックス内のControl Toolkitコントロール(一部)

AnimationExtenderコントロールの特徴と注意点

 Control Toolkitの中でもAnimationExtenderコントロールは扱う上で難易度の高いコントロールです。理由は以下の点が挙げられます。

  • プロパティウィンドウからの設定ができない。
  • インテリセンスが利用できない。
  • HTMLデザイナ上でXMLタグを自分で入力していく必要がある。
  • リファレンスを読んで動作を知る必要がある。

 また、AnimationExtenderコントロールはASP.NET AJAXを利用しているので、個々のページ先頭には必ずScriptManagerコントロールを張り付けてください。

AnimationExtenderコントロール概要

 注意点を踏まえた上でAnimationExtenderコントロールの特徴を説明します。AnimationExtenderコントロールは対象のコントロールに対してアニメーションを付加させるコントロールです。アニメーション効果は全部で25種類ありますが、それぞれのアニメーションはJavaScriptのクラスに相当しています。アニメーション名はXMLタグに使用され、プロパティはタグの属性として定義します。それでは実際にAnimationExtenderコントロールのコードを見てみましょう。

default.aspx(一部)
<ajaxToolkit:AnimationExtender ID="AnimationExtender1" 
        runat="server" TargetControlID="コントロールID">
    <Animations>
        <イベント>
            <動作アニメーション>
            :
            :(略)
            :
            </動作アニメーション>
        </イベント>
    </Animations>
</ajaxToolkit:AnimationExtender>

 こちらが、基本的なAnimationExtenderコントロールのコードとなります。注目すべき点があるので1つずつ説明します。

  • TargetControlIDプロパティにアニメーションを適応したいコントロールを書きます。
  • Animationsタグは固定で入力する必要があります。
  • イベントの部分は書かれたイベントが実行された時に内部のアニメーションを動作させます。
  • 動作アニメーションの部分はイベントが実行された時にアニメーションを1つのみ実行します。

 AnimationExtenderコントロールは、全部で6つのイベントに対応していますので、状況に応じて使い分けてください。

表1
イベント名内容
OnLoadページが読み込まれた時
OnClickコントロールがクリックされた時
OnMouseOverマウスがコントロールの上に入った時
OnMouseOutマウスがコントロールの上から出た時
OnHoverOverマウスがコントロールの上に入った時
OnHoverOutマウスがコントロールの上から出た時

 1つのAnimationExtenderコントロールに対してアニメーションは1つしか設定できませんが、イベントは複数配置することが可能です。イベントの内部に、もし2つのアニメーションが記述されていた場合はパーサーエラーが発生してしまうので注意してください(図9)。

図9 パーサーエラー画面
図9 パーサーエラー画面

 OnMouseOver/OutとOnHoverOver/Outが同じ内容に思えますが、動作に関して差が出てきます。それは、OnMouseOver/Outの場合は動作の途中でマウスがコントロールの外に出た場合でもアニメーションの動作を最後まで実行しますが、OnHoverOver/Outの場合はアニメーションは動作の途中で動作を停止するという差です。実際に利用する際にはその差に気をつけてください。

動作アニメーションのよく利用される共通設定

 各アニメーションの中でよく利用されるプロパティにFpsプロパティとDurationプロパティが挙げられます。FpsプロパティはFrame Per Secondの略で、1秒辺りどれくらいのフレームでレンダリングするかの設定です。動画のなめらかさに影響します。Durationプロパティは、どれくらいの時間をかけて処理を行うかの設定です。秒単位での設定になります。AnimationExtenderを扱う上で上の2つのプロパティはさまざまな所で利用されるので注意してください。

FpsプロパティとDurationプロパティの関係
 Fpsは原則として前述のように1秒辺りにどれだけレンダリングされるかの設定です。できる限り値を大きくした方が滑らかなアニメーションになりますが、あまりに値を大きく設定しすぎると、Durationプロパティで設定した時間よりも長く時間がかかった処理になるか、フリーズしてしまうので、設定をする際には一度動作を確認してみる必要があります。

次のページ
AnimationExtenderコントロールによるアニメーション作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/883 2007/04/13 13:08

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング