XML 및 fl.motion 패키지의 ActionScript 클래스를 사용하여 모션 트윈을 작성할 수 있습니다. Adobe Flash CS4의 "ActionScript로 모션 복사" 명령을 통해 타임라인에서 모션 트윈에 기반한 XML 및 ActionScript를 생성한 다음 다른 심볼이나 다른 프로젝트에 사용할 수 있습니다. 또한 모션 트윈을 직접 작성할 수도 있습니다. 컴파일 타임에 fl.motion 클래스가 클래스 경로에 있는 경우 지정된 표시 객체에 모션 트윈이 적용됩니다. 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 요소의 필수 부모 태그입니다. 이 태그에는 아무런 특성이 없지만 컴파일러에서 Source 요소와 이 요소의 특성을 처리할 때 필요한 태그입니다.
Source     모션과 연결된 원래 시각적 객체의 속성을 포함합니다. 자세한 내용은 fl.motion.Source 클래스를 참조하십시오.
  frameRate Number Flash CS4에서 복사한 원래 애니메이션이 포함된 SWF 파일에 대한 초당 프레임(fps) 설정입니다. 다른 SWF 파일에서 ActionScript를 구현하는 경우 이 값은 아무런 영향을 미치지 않습니다. 자세한 내용은 fl.motion.Source.frameRate 속성을 참조하십시오.
  x Number Flash CS4에서 복사한 모션 트윈이 시작될 때 표시되는 심볼 인스턴스 변형점의 x 좌표입니다.
  y Number Flash CS4에서 복사한 모션 트윈이 시작될 때 표시되는 심볼 인스턴스 변형점의 y 좌표입니다.
  scaleX Number 가로 크기 비율을 나타내는 소수 값입니다. 이 값은 보통 0과 1사이의 값이지만 1보다 크거나 0보다 작을 수도 있습니다. 예를 들어 scaleX를 -1로 설정하여 객체를 뒤집거나 3으로 설정하여 원래 크기의 3배로 만들 수 있습니다.
  scaleY Number 세로 크기 비율을 나타내는 소수 값입니다. 이 값은 보통 0과 1사이의 값이지만 1보다 크거나 0보다 작을 수도 있습니다. 예를 들어 scaleY를 -1로 설정하여 객체를 뒤집거나 3으로 설정하여 원래 크기의 3배로 만들 수 있습니다.
  skewX Number 수직 축에 따른 시어링 각도(도)입니다. skewXskewY 값이 같은 경우 rotation 특성이 대신 사용됩니다.
  skewY Number 수직 축에 따른 시어링 각도(도)입니다. skewXskewY 값이 같은 경우 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" />

topleft는 부모 객체의 등록 포인트를 기준으로 지정되는 값입니다. topleft는 부모 객체의 좌표 공간에서 정의됩니다.

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사이의 소수 값으로 나타낸 가로 크기 비율입니다. 이 값은 보통 0과 1사이의 값이지만 1보다 크거나 0보다 작을 수도 있습니다. 예를 들어 scaleX를 -1로 설정하여 객체를 뒤집거나 3으로 설정하여 원래 크기의 3배로 만들 수 있습니다.
  scaleY Number 0과 1사이의 소수 값으로 나타낸 세로 크기 비율입니다. 이 값은 보통 0과 1사이의 값이지만 1보다 크거나 0보다 작을 수도 있습니다. 예를 들어 scaleY를 -1로 설정하여 객체를 뒤집거나 3으로 설정하여 원래 크기의 3배로 만들 수 있습니다.
  skewX Number 수직 축에 따른 시어링 각도(도)입니다. skewXskewY 값이 같은 경우 rotation 특성이 대신 사용됩니다.
  skewY Number 수직 축에 따른 시어링 각도(도)입니다. skewXskewY 값이 같은 경우 rotation 특성이 대신 사용됩니다.
  rotation Number 현재 프레임의 회전 각도입니다.
  rotateDirection String 트위닝된 요소의 회전 방법을 지정합니다. "auto", "none", "cw" 또는 "ccw"로 지정할 수 있습니다. XML에서 이 특성을 생략하면 기본적으로 "auto"로 지정됩니다.
  rotateTimes Number 일반적인 회전 외에 트위닝된 요소가 시작 키프레임과 다음 키프레임 사이에서 회전하는 횟수를 지정합니다. Adobe Flash CS4에서는 이 값이 0보다 크거나 같은 정수여야 하지만, motion 클래스에서는 소수 값도 사용할 수 있습니다.
  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 심볼 인스턴스에는 none, alpha, tint, brightnessadvanced라는 5 가지의 색상 모드가 있습니다.

변형을 적용하지 않으려면 즉, none 모드를 지정하려면 Color 태그를 비워 두어 일반적인 모양으로 나타나도록 합니다.

alpha 변형을 적용하려면 alphaMultiplieralphaOffset 특성을 설정합니다.

tint 변형을 적용하려면 tintColortintMultiplier 특성을 설정합니다.

brightness 변형을 적용하려면 brightness 특성을 사용합니다.

advanced 변형을 적용하려면 redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffsetalphaOffset 특성을 사용합니다.

  brightness Number -1에서 1 사이의 값으로 지정하는 밝기 채널 적용율입니다. 여기서 -1은 완전한 검정색, 1은 완전한 흰색을 나타냅니다.
  tintColor Hexidecimal 적용할 색상을 나타내는 16진수 색상 값입니다.
  alphaMultiplier Number 0에서 1 사이의 소수 값으로 나타내는 알파 채널 적용률입니다.
  redMultiplier Number 0에서 1 사이의 소수 값으로 나타내는 색상 적용률입니다.
  greenMultiplier Number 0에서 1 사이의 소수 값으로 나타내는 색상 적용률입니다.
  blueMultiplier Number 0에서 1 사이의 소수 값으로 나타내는 색상 적용률입니다.
  alphaMultiplier Number 알파 투명도 채널 적용률을 나타내는 0에서 1 사이의 소수 값입니다.
  tintMultiplier Number tintColor 값 적용률을 나타내는 0에서 1 사이의 소수 값입니다.
  redOffset Number redMultiplier 값에 곱한 후 빨강 채널 값에 더해지는 -255에서 255 사이의 숫자입니다.
  greenOffset Number greenMultiplier 값에 곱한 후 녹색 채널 값에 더해지는 -255에서 255 사이의 숫자입니다.
  blueOffset Number blueMultiplier 값에 곱한 후 파랑 채널 값에 더해지는 -255에서 255 사이의 숫자입니다.
  alphaOffset Number 알파 승수 값으로 곱해진 후 알파 채널 값에 더해지는 -255에서 255 사이의 숫자입니다.
tweens     여유 변화에 대한 설정이 포함됩니다.
SimpleEase     모든 여유 속성에 대해 모션 트위닝 동안 단일 값이 유지되도록 여유 설정을 정의합니다.
  ease Number 모션 트윈의 모든 속성에 적용할 여유 값입니다. ease 특성은 -1(100% 가속)에서 1(100% 감속) 사이의 비율입니다. 기본값은 0입니다. 즉, 트윈이 가속이나 감속 없이 일정한 속도로 애니메이트됩니다.
  target Number Flash CS4에서는 모든 여유 속성에 동일한 값이 적용되므로 Adobe Flash CS4의 [모션 복사] 및 [모션 붙여넣기] 명령을 사용하는 경우 제작 도구에서는 SimpleEase 요소에 target 특성이 포함되지 않은 XML을 생성합니다. 그러나 ActionScript 3.0에서는 개별적인 속성에 서로 다른 SimpleEase 값을 동시에 적용할 수 있습니다. target에 적용할 수 있는 값은 "position", "scale", "rotation", "color", "filters", "x", "y", "scaleX", "scaleY", "skewX" 및 "skewY"로 CustomEase에 적용할 수 있는 값과 동일합니다.
CustomEase     3차 베지어 곡선으로 구성된 사용자 정의 여유 곡선을 정의합니다. 동시에 모든 속성에 적용하거나 개별적인 속성에 대해 서로 다른 곡선을 정의할 수 있습니다.

사용자 정의 여유 속성을 나타내는 곡선에 대한 자세한 정보는 CustomEase 클래스를 참조하십시오.

  target Number 사용자 정의 값이 지정되는 속성입니다. Adobe Flash CS4의 [모션 복사] 및 [모션 붙여넣기] 명령을 사용하는 경우 제작 도구에서는 target에 대해 "position", "scale", "rotation", "color" 또는 "filters"라는 값을 생성합니다. ActionScript 3.0의 motion 클래스를 사용하면 훨씬 더 융통성 있게 "x", "y", "scaleX", "scaleY", "skewX" 및 "skewY"에 대해 개별적인 곡선을 정의할 수 있습니다. XML에서 "target" 특성을 생략하면 모든 여유 속성이 대상이 됩니다.

중요: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 패키지를 참조하십시오.

다음 예제에서는 ActionScript를 인라인 XML과 함께 사용하여 moveShape 무비 클립 인스턴스의 모션 트윈을 작성하는 방법을 보여 줍니다. 이 모션 트윈에서 myShape 심볼은 10 프레임 동안 회전하고 이동하며 사용자 정의 여유 설정을 사용하고 알파 값을 변경합니다.

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();