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

例を示します。

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

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

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

エレメント 属性 説明
Motion     モーションインスタンスを定義して、Flash がモーショントゥイーンの特性を指定するプロパティを割り当てられるようにします。fl.motion.Motion クラスを参照してください。
  duration Number 選択したモーショントゥイーンのフレーム数。fl.motion.Motion.duration プロパティを参照してください。
source     Source エレメントに必須の親タグ。このタグに属性はありませんが、コンパイラが Source エレメントとその属性を処理する際にこのタグが必要となります。
Source     モーションに関連付けられた元のビジュアルオブジェクトのプロパティを含みます。fl.motion.Source クラスを参照してください。
  frameRate Number Flash CS3 からコピーした元のアニメーションを含む SWF ファイルに対して設定されている 1 秒あたりのフレーム数 (fps)。この値は、他の SWF ファイルでの ActionScript 実装には影響しません。fl.motion.Source.frameRate プロパティを参照してください。
  x Number Flash CS3 からコピーした元のモーショントゥイーンの先頭にあるシンボルインスタンスの変換ポイントの x 座標。
  y Number Flash CS3 からコピーした元のモーショントゥイーンの先頭にあるシンボルインスタンスの変換ポイントの 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 CS3 ドキュメントライブラリに含まれているシンボル名。ただし、元のビジュアルオブジェクトがシンボルインスタンスであるとはかぎらないので、シンボル名がシンボル名が存在する場合に限ります。
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 は、親オブジェクトの座標空間で定義します。

transformationPoint     geom 名前空間を使用してトゥイーンシンボルの変換ポイントを記述するタグが含まれています。
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 CS3 の [Copy Motion] コマンドおよび [Paste Motion] コマンドのみです。XML から省略した場合、デフォルト値の true になります。
  tweenSnap Boolean スナップ設定のオン ("true") とオフ ("false") を切り替えます。スナップにより、基準点に基づくモーションパスにシンボルが配置されます。ActionScript はグラフィックシンボルを制御できないので、この属性は ActionScript のアニメーションには影響しません。XML 属性使用するのは、Adobe Flash CS3 の [Copy Motion] コマンドおよび [Paste Motion] コマンドでのみです。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 uint トゥイーンエレメントに、既存の回転に加えて、回転を追加します。この回転は rotateDirection 属性の値 ("cw" または "ccw") によって決まります。rotateTimes 値は、0 以上の整数であることが必要です。fl.motion.Keyframe.rotateTimes プロパティを参照してください。
  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     Color エレメントに必須の親タグ。このタグに属性はありませんが、コンパイラが Color エレメントとその属性を処理する際にこのタグが必要となります。
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 Hexadecimal 適用するカラーを示す 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 CS3 の [Copy Motion] コマンドおよび [Paste Motion] コマンドを使用すると、オーサリングツールでは SimpleEase エレメントの target 属性を含まない XML が生成されます。Flash CS3 ではすべての ease プロパティに同じ値が適用されるからです。しかし、ActionScript 3.0 クラスを使用すると、異なる SimpleEase 値を個々のプロパティに同時に適用することができます。target の有効な値は、CustomEase と同様、"position"、"scale"、"rotation"、"color"、"filters"、"x"、"y"、"scaleX"、"scaleY"、"skewX"、および "skewY" です。
CustomEase     三次ベジェ曲線で構成されるカスタムイージング曲線を定義します。この定義を一度にすべてのプロパティに適用することもできますし、プロパティごとに異なる曲線を定義することもできます。

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

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

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

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 MovieClip インスタンスのモーショントゥイーンを記述する、インライン 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="140.35" y="142.35" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" instanceName="moveShape" symbolName="myShape"> <dimensions> <geom:Rectangle left="13" top="5" width="125.5" height="125.5"/> </dimensions> <transformationPoint> <geom:Point x="0.5" y="0.5"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateDirection="cw" rotateTimes="1" tweenSnap="false" scaleX="1" scaleY="1" rotation="0"> <color> <Color alphaMultiplier="0.4"/> </color> <tweens> <CustomEase target="position"> <geom:Point x="0.09500906065407433" y="0.09500906065407433"/> <geom:Point x="0.460384258177029" y="0.11105020134567312"/> <geom:Point x="0.5441860465116279" y="0.22916666666666663"/> <geom:Point x="0.685859138879818" y="0.42885124660440044"/> <geom:Point x="0.5417057701316985" y="0.7393801887363497"/> <geom:Point x="0.7023255813953488" y="0.8999999999999999"/> <geom:Point x="0.7800300428109576" y="0.9777044614156086"/> <geom:Point x="0.9222955385843912" y="0.9222955385843913"/> </CustomEase> <CustomEase target="scale"> <geom:Point x="0.3333333333333333" y="0.3333333333333333"/> <geom:Point x="0.6666666666666666" y="0.6666666666666666"/> </CustomEase> <CustomEase target="rotation"> <geom:Point x="0.19132280349731443" y="0.19132280349731445"/> <geom:Point x="0.4753438631693523" y="0.13159386316935218"/> <geom:Point x="0.6666666666666667" y="0.32291666666666663"/> <geom:Point x="0.8086771965026857" y="0.46492719650268555"/> <geom:Point x="0.8579894701639811" y="0.8579894701639811"/> </CustomEase> <CustomEase target="color"> <geom:Point x="0.3333333333333333" y="0.3333333333333333"/> <geom:Point x="0.6666666666666666" y="0.6666666666666666"/> </CustomEase> <CustomEase target="filters"> <geom:Point x="0.3333333333333333" y="0.3333333333333333"/> <geom:Point x="0.6666666666666666" y="0.6666666666666666"/> </CustomEase> </tweens> </Keyframe> <Keyframe index="9" x="304.95" y="122"> <color> <Color/> </color> </Keyframe> </Motion>; var moveShape_animator:Animator = new Animator(moveShape_xml, moveShape); moveShape_animator.play();

次の例は、abox という名前のシンボルインスタンスのアニメーションの終了時にメッセージを表示するために追加した fl.motion.MotionEvent クラスからのイベントを使用した、より簡単なトゥイーンモーションを示します。

import fl.motion.Animator; import fl.motion.MotionEvent; var abox_xml:XML = <Motion duration="10" xmlns="fl.motion.*" xmlns:geom="flash.geom.*" xmlns:filters="flash.filters.*"> <source> <Source frameRate="12" x="186.45" y="120.45" scaleX="1" scaleY="1" rotation="0" elementType="movie clip" symbolName="Symbol 1"> <dimensions> <geom:Rectangle left="0" top="0" width="86.95" height="86.95"/> </dimensions> <transformationPoint> <geom:Point x="0.49971247843588273" y="0.49971247843588273"/> </transformationPoint> </Source> </source> <Keyframe index="0" rotateDirection="cw" rotateTimes="1"> <tweens> <SimpleEase ease="0.8"/> </tweens> </Keyframe> <Keyframe index="9" x="198" y="123"/> </Motion>; var abox_animator:Animator = new Animator(abox_xml, abox); abox_animator.play(); abox_animator.addEventListener(MotionEvent.MOTION_END,afterMotion); function afterMotion(e:MotionEvent) { trace("animation complete!"); }

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/motionXSD.html