fl.motion パッケージに含まれている XML および ActionScript クラスを使用して、モーショントゥイーンを記述することができます。Adobe Flash CS4 には、他のシンボルやプロジェクトで使用する XML および ActionScript を、タイムライン上のモーショントゥイーンに基づいて生成する [ActionScript 3.0 としてのモーションのコピー] コマンドがあります。また自分でモーショントゥイーンを記述することもできます。コンパイル時のクラスパス内に fl.motion クラスがある場合は、モーショントゥイーンが、指定した表示オブジェクトに適用されます。モーションクラスについて詳しくは、fl.motion パッケージを参照してください。サポートされている XML のエレメントは、『ActionScript 3.0 言語とコンポーネントリファレンス』のクラスとプロパティに対応しています。

例を示します。

XML エレメントの階層を次に示します。

<Motion> <Source> <dimensions> <geom:Rectangle /> </dimensions> <transformationPoint> <geom:Point /> </transformationPoint> </Source> <Keyframe> <color> <Color /> </color> <tweens> <SimpleEase /> <CustomEase> <BezierControl /> <BezierNode /> </CustomEase> </tweens> <filters> <filters /> </filters> </Keyframe> </Motion>

次の表は、モーションオブジェクトに割り当てることのできる XML エレメントおよび属性の概要を示しています。各エントリについて詳しくは、各エレメントに対応するクラスにリストされているプロパティを参照してください。

エレメント 属性 内容
Motion     モーションインスタンスを定義して、Flash がモーショントゥイーンの特性を指定するプロパティを割り当てられるようにします。fl.motion.Motion クラスを参照してください。
  duration Number 選択したモーショントゥイーンのフレーム数。fl.motion.MotionBase.duration プロパティを参照してください。
source     ソースエレメントに必要な親タグです。このタグには属性はありませんが、コンパイラでソースエレメントおよびその属性の処理を行うために必要です。
Source     モーションに関連付けられた元のビジュアルオブジェクトのプロパティを含みます。fl.motion.Source クラスを参照してください。
  frameRate Number Flash CS4 からコピーした元のアニメーションを含む SWF ファイルに対して設定されている 1 秒あたりのフレーム数 (fps)。この値は、他の SWF ファイルでの ActionScript 実装には影響しません。fl.motion.Source.frameRate プロパティを参照してください。
  x Number Flash CS4 からコピーした元のモーショントゥイーンの先頭にあるシンボルインスタンスの変換ポイントの x 座標。
  y Number Flash CS4 からコピーした元のモーショントゥイーンの先頭にあるシンボルインスタンスの変換ポイントの y 座標。
  scaleX Number 水平スケールの率を示す 10 進数値。通常、この値は 0 または 1 ですが、0 未満または 1 より大きい値に設定することもできます。例えば、scaleX を -1 に設定してオブジェクトを反転させたり、3 に設定して元のサイズの 3 倍にしたりすることができます。
  scaleY Number 垂直スケールの率を示す 10 進数値。通常、この値は 0 または 1 ですが、0 未満または 1 より大きい値に設定することもできます。例えば、scaleY を -1 に設定してオブジェクトを反転させたり、3 に設定して元のサイズの 3 倍にしたりすることができます。
  skewX Number 水平軸方向の変形の角度(度数)。skewX 値と skewY 値が等しい場合、それらの値は rotation 属性に置き換えられます。
  skewY Number 垂直軸方向の変形の角度(度数)。skewX 値と skewY 値が等しい場合、それらの値は rotation 属性に置き換えられます。
  rotation Number 最初のフレームの回転の角度。
  elementType String モーショントゥイーンで使用するビジュアルオブジェクトの種類。有効な値は、"movie clip"、"button"、"graphic"、"rectangle object"、"oval object"、"drawing object"、"group"、"bitmap"、"compiled clip"、"video"、および "text" です。
  symbolName String Adobe Flash CS4 ドキュメントライブラリに含まれているシンボル名。ただし、元のビジュアルオブジェクトがシンボルインスタンスであるとはかぎらないので、シンボル名が存在する場合に限ります。
dimensions     geom 名前空間を使用してトゥイーンシンボルの境界ボックスおよび変換ポイントを記述するタグが含まれています。
geom:Rectangle   flash.geom パッケージのオブジェクト。 flash.geom.Rectangle オブジェクトのプロパティに対応する属性を追加することができます。例えば、次のようになります。

<geom:Rectangle left="7" top="9" width="151.95" height="151.95" />

top 値と left 値は、親オブジェクトの基準点に対する相対値です。top および left は、親オブジェクトの座標空間で定義します。

geom:Point   flash.geom パッケージのオブジェクト。 変換ポイントの座標は、境界ボックスのサイズの比率値(geom:Rectangle エレメントの値)として定義します。変換ポイントが境界ボックスの左上隅である場合、座標は(0, 0)です。変換ポイントが境界ボックスの右下隅である場合、座標は(1, 1)です。これらの値を使用することで、比率や基準点が異なる複数のオブジェクトに、変換ポイントを一貫して適用することができます。変換ポイントは境界ボックスの外側に置くことができます。その場合、座標は 0 未満または 1 より大きくなる場合があります。
Keyframe     タイムラインのキーフレームに対応する情報を記述します。
  blank Boolean キーフレームが空であることを示します。
  index Number キーフレーム用の一意の整数値。最初のキーフレームのインデックスは常に 0 です。XML のキーフレームは、インデックス値の昇順で指定する必要があります。
  label String キーフレームを記述するための省略可能なストリング。このストリングは、タイムラインのフレームラベルに対応しています。
  tweenSync Boolean 同期設定のオン("true")とオフ("false")を切り替えます。同期設定をオンにすると、トゥイーンのフレーム数が、タイムライン上でトゥイーンに割り当てられているフレーム数と一致するように再計算されます。ActionScript はグラフィックシンボルを制御できないので、この属性は ActionScript のアニメーションには影響しません。XML 属性を使用するのは、Adobe Flash CS4 の [モーションをコピー] コマンドおよび [モーションをペースト] コマンドでのみです。XML から省略した場合、デフォルト値の true になります。
  tweenSnap Boolean スナップ設定のオン("true")とオフ("false")を切り替えます。スナップにより、基準点に基づくモーションパスにシンボルが配置されます。ActionScript はグラフィックシンボルを制御できないので、この属性は ActionScript のアニメーションには影響しません。XML 属性を使用するのは、Adobe Flash CS4 の [モーションをコピー] コマンドおよび [モーションをペースト] コマンドでのみです。XML から省略した場合、デフォルト値の true になります。
  x Number 現在のキーフレームにおけるシンボルインスタンスの中心点の x 座標。
  y Number 現在のキーフレームにおけるシンボルインスタンスの中心点の y 座標。
  scaleX Number 水平スケールの率を示す 0 ~ 1 の 10 進数値。通常、この値は 0 または 1 ですが、0 未満または 1 より大きい値に設定することもできます。例えば、scaleX を -1 に設定してオブジェクトを反転させたり、3 に設定して元のサイズの 3 倍にしたりすることができます。
  scaleY Number 垂直スケールの率を示す 0 ~ 1 の 10 進数値。通常、この値は 0 または 1 ですが、0 未満または 1 より大きい値に設定することもできます。例えば、scaleY を -1 に設定してオブジェクトを反転させたり、3 に設定して元のサイズの 3 倍にしたりすることができます。
  skewX Number 水平軸方向の変形の角度(度数)。skewX 値と skewY 値が等しい場合、それらの値は rotation 属性に置き換えられます。
  skewY Number 垂直軸方向の変形の角度(度数)。skewX 値と skewY 値が等しい場合、それらの値は rotation 属性に置き換えられます。
  rotation Number 現在のフレームの回転の角度。
  rotateDirection String トゥイーンされたエレメントの回転方法を指定します。有効な値は "auto"、"none"、"cw"、および "ccw" です。XML から省略した場合、デフォルト値の "auto" になります。
  rotateTimes Number 通常の回転に加えて、開始キーフレームと次のキーフレーム間でトゥイーンされたエレメントの回転数を指定します。Adobe Flash CS4 では、値は 0 以上の整数である必要がありますが、モーションクラスは 10 進数値にすることができます。
  tweenScale Boolean false の場合、トゥイーンの間に縮尺率を変更ません。XML から省略した場合、デフォルト値の true になります。
  cacheAsBitmap Boolean XML から省略した場合、デフォルト値の false になります。
  blendMode String 有効な値は "normal"、"layer"、"multiply"、"screen"、"overlay"、"hardlight"、"lighten"、"darken"、"difference"、"add"、"subtract"、"invert"、"alpha"、および "erase" です。XML から省略した場合、デフォルト値の "normal" になります。
  orientToPath Boolean XML から省略した場合、デフォルト値の false になります。
Color     カラーバリエーションの設定を含みます。Flash のシンボルインスタンスには、nonealphatintbrightness、および advanced の 5 つのカラーモードがあります。

変換しない(none)場合、Color タグは空となり、通常の外観になります。

alpha 変換の場合、alphaMultiplier 属性および alphaOffset 属性を設定します。

tint 変換の場合、tintColor 属性および tintMultiplier 属性を設定します。

brightness 変換の場合、brightness 属性を使用します。

advanced 変換の場合、redMultipliergreenMultiplierblueMultiplieralphaMultiplierredOffsetgreenOffsetblueOffset、および alphaOffset 属性を使用します。

  brightness Number 明度チャネルを適用する比率値を -1 ~ 1 の間で設定します。-1 に設定すると完全な黒になり、1 に設定すると完全な白になります。
  tintColor Hexidecimal 適用するカラーを示す 16 進数のカラー値。
  alphaMultiplier Number アルファチャンネルを適用する比率値を 0 ~ 1 の間の 10 進数値で示します。
  redMultiplier Number このカラーを適用する比率値を 0 ~ 1 の間の 10 進数値で示します。
  greenMultiplier Number このカラーを適用する比率値を 0 ~ 1 の間の 10 進数値で示します。
  blueMultiplier Number このカラーを適用する比率値を 0 ~ 1 の間の 10 進数値で示します。
  alphaMultiplier Number アルファ透明度チャネルを適用する比率値を 0 ~ 1 の間の 10 進数値で示します。
  tintMultiplier Number tintColor 値で適用する比率値を 0 ~ 1 の間の 10 進数値で示します。
  redOffset Number 赤チャンネル値に redMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
  greenOffset Number 緑チャンネル値に greenMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
  blueOffset Number 青チャンネル値に blueMultiplier 値を乗算した後に加算する数値です。数値の範囲は -255 ~ 255 です。
  alphaOffset Number アルファチャンネル値に alphaMultiplier 値を乗算した後に加算する数値。数値の範囲は -255 ~ 255 です。
tweens     イージングバリエーションの設定を含みます。
SimpleEase     すべてのイージングプロパティのモーショントゥイーン全体で、イージング設定を単一の値に定義します。
  ease Number モーショントゥイーンのすべてのプロパティに適用するイージング値。ease 属性は、-1(100% イーズインまたは加速)~ 1(100% イーズアウトまたは減速)の間の比率値で示されます。デフォルト値は 0 です。0 の場合、トゥイーンは加速も減速もせず、一定の速度でアニメーション化します。
  target Number Adobe Flash CS4 の「モーションをコピー」コマンドおよび「モーションをペースト」コマンドを使用すると、オーサリングツールでは SimpleEase エレメントの target 属性を含まない XML が生成されます。Flash CS4 ではすべての ease プロパティに同じ値が適用されるからです。しかし、ActionScript 3.0 クラスを使用すると、異なる SimpleEase 値を個々のプロパティに同時に適用することができます。target の有効な値は、CustomEase と同様、"position"、"scale"、"rotation"、"color"、"filters"、"x"、"y"、"scaleX"、"scaleY"、"skewX"、および "skewY" です。
CustomEase     三次ベジェ曲線で構成されるカスタムイージング曲線を定義します。この定義を一度にすべてのプロパティに適用することもできますし、プロパティごとに異なる曲線を定義することもできます。

カスタムイーズプロパティを示す曲線について詳しくは、CustomEase クラスを参照してください。

  target Number カスタム値が割り当てられたプロパティ。Adobe Flash CS4 の「モーションをコピー」コマンドおよび「モーションをペースト」コマンドを使用すると、オーサリングツールによって target の有効な値("position"、"scale"、"rotation"、"color"、および "filters")が生成されます。ActionScript 3.0 モーションクラスを使用すると、"x"、"y"、"scaleX"、"scaleY"、"skewX"、および "skewY" の個々の曲線をさらに柔軟に定義することができます。XML で "target" 属性を省略した場合、すべての ease プロパティが対象となります。

メモ: XML では、カスタムイージング曲線の最初と最後のポイントを省略します。最初のポイントは、常に(0, 0)(トゥイーンされたプロパティの開始値)である必要があります。最後のポイントは、(1, 1)(トゥイーンされたプロパティの終了値)である必要があります。コードの効率性を保ち、エラーの可能性を避けるため、これらの値は XML から省略されており、暗黙的であると仮定されています。

BezierControl     曲線を定義するのに使用する曲線と相対的な点。
  x Number 曲線を定義するための点の x 座標。
  y Number 曲線を定義するための点の y 座標。
BezierNode     曲線を定義するのに使用する曲線上の点。
  x Number 曲線上の点の x 座標。
  y Number 曲線上の点の y 座標。
filters     エレメントとして使用する、flash.filters パッケージのオブジェクトを定義します(例:filters:GlowFilter)。指定した flash.filters オブジェクトのプロパティに対応する属性を追加することができます。例えば、次のようになります。

<filters:DropShadowFilter quality="1" inner="false" knockout="false" hideObject="false" distance="0" angle="45" color="0x000000" alpha="1" blurX="0" blurY="0" strength="0" />

flash.filters パッケージを参照してください。

次の例は、myShape シンボルに対して回転、移動、カスタムイーズ設定の使用、および 10 フレームに渡るアルファ値の変更を実行したときの、moveShape ムービークリップインスタンスのモーショントゥイーンを記述する、インライン XML 付きの ActionScript を示しています。

import fl.motion.Animator; var moveShape_xml:XML = <Motion duration="10" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*"> <source> <Source frameRate="12" x="41.35" y="91.35" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" instanceName="moveShape" symbolName="myShape"> <dimensions> <geom:Rectangle left="-46.65" top="-61.95" width="133.05" height="133.95"/> </dimensions> <transformationPoint> <geom:Point x="0.49981210071401727" y="0.4998133631952222"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateTimes="2"> <tweens> <CustomEase> <BezierControl x="0.08650266979261687" y="0.14705453864744866"/> <BezierControl x="0.23675978562091857" y="0.28829454738109694"/> <BezierNode x="0.2689728109485753" y="0.49688733564952436"/> <BezierControl x="0.32093023255813957" y="0.8333333333333333"/> <BezierControl x="0.5988021982960045" y="1.034249160488573"/> <BezierNode x="0.7309082984924317" y="0.8685852488735627"/> <BezierControl x="0.8116279069767443" y="0.767361111111111"/> <BezierControl x="0.910302766164144" y="0.9730908298492431"/> </CustomEase> </tweens> </Keyframe> <Keyframe index="9" x="371.95" y="188"> <color> <Color alphaMultiplier="0.4" alphaOffset="0"/> </color> </Keyframe> </Motion>; var moveShape_animator:Animator = new Animator(moveShape_xml, moveShape); moveShape_animator.play();