어드밴스 컬러를 제어하는 부분을 트윈클래스를 이용해서 적용해 봤습니다.
처음에는 컬러 매트릭스를 이용해보려 했지만... 음이게 쉽지 않더군요.....컬러 트랜스폼보다 적응이 잘안되서...-_-;;; 음 중요한건 컬러 클래스가 이제 사라지면서 컬러 트랜스폼도 사라질 건데.....><;;;;; 아무튼 사라진후에 걱정해 보기로 하고 일단은 컬러 클래스를 이용해 만들었습니다.
틴트값을 적용하신후에 어든밴스 컬러를 이용하는 모션작업을 해보신 분들은 쉽게 사용하실수 있을것입니다. 우선 레퍼런스의 컬러 트랜스폼의 이용법을 보시면 어떤식으로 사용하는지와 어떤식으로 만들어져 있는지 쉽게 아실수 있을겁니다.
more..
ColorTransform 생성자
public ColorTransform([redMultiplier:Number], [greenMultiplier:Number], [blueMultiplier:Number], [alphaMultiplier:Number], [redOffset:Number], [greenOffset:Number], [blueOffset:Number], [alphaOffset:Number])
지정된 색상 채널 값과 알파 값을 사용하여 표시 객체에 대한 ColorTransform 객체를 만듭니다.
지원 버전: ActionScript 1.0; Flash Player 8
매개 변수
redMultiplier:Number [선택 사항] - 0에서 1 사이의 빨강 승수 값입니다. 기본값은 1입니다.
greenMultiplier:Number [선택 사항] - 0에서 1 사이의 녹색 승수 값입니다. 기본값은 1입니다.
blueMultiplier:Number [선택 사항] - 0에서 1 사이의 파랑 승수 값입니다. 기본값은 1입니다.
alphaMultiplier:Number [선택 사항] - 0에서 1 사이의 알파 투명도 승수 값입니다. 기본값은 1입니다.
redOffset:Number [선택 사항] - 빨강 색상 채널 값의 오프셋(-255 ~ 255)입니다. 기본값은 0입니다.
greenOffset:Number [선택 사항] - 녹색 색상 채널 값의 오프셋(-255 ~ 255)입니다. 기본값은 0입니다.
blueOffset:Number [선택 사항] - 파랑 색상 채널 값의 오프셋(-255 ~ 255)입니다. 기본값은 0입니다.
alphaOffset:Number [선택 사항] - 알파 투명도 채널 값의 오프셋(-255 ~ 255)입니다. 기본값은 0입니다.
예제
다음 예제에서는 greenTransform이라는 ColorTransform 객체를 만듭니다.
var greenTransform:flash.geom.ColorTransform = new flash.geom.ColorTransform(0.5, 1.0, 0.5, 0.5, 10, 10, 10
이부분까지가 레퍼런스의 내용입니다.
이제 부터는 트윈을 이용해서 원하는 프레임수만큼 매개변수로 넣어준 값 만큼 색깔값을 나눠서 오브젝트를 컬러 트랜스폼에 넘겨주면서 새로운 색을 업데이트를 합니다.
more..
function tweenAdvancedColor (targetMc:MovieClip, ra:Number, rb:Number, ga:Number, gb:Number, ba:Number, bb:Number, aa:Number, ab:Number, duringTime:Number, func:Function)
{
import mx.transitions.Tween;
import mx.transitions.easing.*;
if (!(targetMc.myColor))
{
targetMc.myColor = new Color (targetMc);
}
var objColor:Object = targetMc.myColor.getTransform ();
//
// 컬러 트랜스폼의 변화값을 트윈 클래스로 계산하기 위해 현재 값과 타겟값을 집어넣습니다.
//
var myColorTransform:Object = [{ra:ra, rb:rb, ga:ga, gb:gb, ba:ba, bb:bb, aa:aa, ab:ab}];
var raT = new Tween ("", "raT", func, objColor.ra, ra, duringTime);
var rbT = new Tween ("", "rbT", func, objColor.rb, rb, duringTime);
var gaT = new Tween ("", "gaT", func, objColor.ga, ga, duringTime);
var gbT = new Tween ("", "gbT", func, objColor.gb, gb, duringTime);
var baT = new Tween ("", "baT", func, objColor.ba, ba, duringTime);
var bbT = new Tween ("", "bbT", func, objColor.bb, bb, duringTime);
var aaT = new Tween ("", "aaT", func, objColor.aa, aa, duringTime);
var abT = new Tween ("", "abT", func, objColor.ab, ab, duringTime);
//
// 트위클래스에서 각각의 모션이 업데이트 될때마다 컨러트랜스폼에 넣을 오브젝트에 각각의 값을 넣어 줍니다.
//
raT.onMotionChanged = function (e)
{
myColorTransform.ra = e.position;
};
rbT.onMotionChanged = function (e)
{
myColorTransform.rb = e.position;
};
gaT.onMotionChanged = function (e)
{
myColorTransform.ga = e.position;
};
gbT.onMotionChanged = function (e)
{
myColorTransform.gb = e.position;
};
baT.onMotionChanged = function (e)
{
myColorTransform.ba = e.position;
};
bbT.onMotionChanged = function (e)
{
myColorTransform.bb = e.position;
};
aaT.onMotionChanged = function (e)
{
myColorTransform.aa = e.position;
};
abT.onMotionChanged = function (e)
{
//
// 컬러 트랜스폼 컬러을 적용해 줍니다.
//
myColorTransform.ab = e.position;
targetMc.myColor.setTransform (myColorTransform);
};
}
기존의 트윈을 하게 하는 작업들은 대부분 원하는 수 만큼 타겟값을 나누는게 일이었는데 mx.Tween 클래스를 알고 나니깐 수월해 지네요....음 기존에 했던 삽질이라고 보긴 힘들지만...아무튼 편하긴 한데....
저 자신인 이렇게 편한데 젖어들어서 원리를 모르고 따라만 하게 되는게 아닐까 하는 두려움도 조금은 있네요..
(단 쓰리디는 쉽지 않더군요..젠장...-_-;;;)
이 글의 트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다
::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::