コントロールのアニメーション
コントロールのアニメーションにより多様なアニメーション効果を得ることができます。ムーブ、フェード、回転、スケール、その他いろいろなタイプのアニメーションがあり、それぞれ、特定のコントロールに効果を与えるのに使用することができます。
しかしながら、重要なのは、アニメーションはコントロールをプロパティによって表現できない状態にはすることができないということです。ですので、コントロールのプロパティはアニメーションの間更新されず、アニメーションが完了したとき、コントロールは通常の Visual LANSA ルールに従います。
簡単な例として、レイアウトによって位置が決められるボタンはアニメーションによって好きな位置に動かすことができますが、アニメーションが終了したとき、レイアウトが制御を取り戻し、ボタンの位置を決定します。
簡単にする為に、いくつかのアニメーションはコントロールの機能として使用可能です。
Evtroutine Handling(#Button.Click)
#Button.Scale(200)
#Button.FadeOut
Endroutine
上のコードはボタンの幅を2倍にスケールしてから、フェードアウトさせます。
より複雑なアニメーションは複数のコントロールを動かす複合アニメーションを構築することで実現できます。
Define_Com Class(#prim_anim) Name(#Animation)
Define_Com Class(#Prim_anim.Opacity) Name(#ShowBanner) Duration(2000) Manage(#Banner) Opacity(100) Parent(#Animation)
Define_Com Class(#Prim_anim.opacity) Na`me(#ShowGlobe) Duration(2000) Manage(#Globe) Opacity(100) Parent(#Animation)
Define_Com Class(#Prim_anim.MoveFrom) Name(#BannerInFromLeft) Duration(2000) Manage(#Banner) Parent(#Animation)
Define_Com Class(#Prim_anim.MoveFrom) Name(#GlobeInFromBelow) Duration(2000) Manage(#Globe) Parent(#Animation)
この例は DirectX 例のスプラッシュ画面から取っています。バナーと地球を100%の不透明度にし、同時にそれらを画面外から画面内に動かすのに2秒かかります。
複雑なアニメーションは多くのコンポーネントから成っており、アニメーションが始まると全てが実行されます。各ピースには StartTime プロパティがあり、それを修正できるので、アニメーションを指定の順番で実行することができます。