이 클래스는 제가 제작한건 아니고 다운 받은 클래스인데요 아주 유용하게 쓸수 있어서 한번 올려봅니다.
어드밴스를 제어하는게 아니고 그냥 컬러만 제어하지만 컬러를 제어할때는 참 유용함니다.
트윈이지처럼 되는군요.
이 녀석을 이용해서 어드밴스컬러를 제어하게끔 만들어 봐야 겠네요...ㅎㅎ....;;; 아무리 찾아도 어드벤스 컬러를 트윈화 해놓은 없더군요....ㅎㅎ;;;;
출처는
http://www.actionscript.org/
아 검색을 어떡게 했는지는 기억이 나질 안네요 그리고.....파일을 업로드해서 다운 받게 해드리고 싶기는 한데 제테터 툴이...그런 기능은 없는듯 합니다...-ㅅ-;; 클래스만 있어도 쓰실수는 있을테니...;;
more..
/*
* Eases color changes
* Created by Justin Wilaby
* @param oc - original color or starting point
* @param nc - new color to ease to
* @param m - movieclip to ease color on
* usage: new EaseColor(originalColor, newColor, movieClip, completionTime, easeEquation);
ease = new EaseColor(0xff0000, 0x3399ff, myMc, 75, mx.transitions.easing.Bounce.easeOut);
*/
import flash.geom. *;
class EaseColor
{
/*
* color objects
*/
private var colorTrans : ColorTransform;
private var trans : Transform;
// ----------------------------------
private var m:MovieClip;
/*
* init
*/
public function EaseColor (oc : Number, nc : Number, movieclip : MovieClip, completionTime:Number, easeEquation:Function)
{
//trace("oc : "+oc +" nc : "+nc)
m = movieclip;
//decimal value for original color
var origRgb = oc;
//extacts the red channel
var origRed = (origRgb & 16711680) >> 16;
//extacts the green channel
var origGreen = (origRgb & 65280) >> 8;
//extacts the blue channel
var origBlue = origRgb & 255;
// --------------------------------
//decimal value for new color
var newRgb = nc;
//extacts the red channel
var newRed = (newRgb & 16711680) >> 16;
//extacts the green channel
var newGreen = (newRgb & 65280) >> 8;
//extacts the blue channel
var newBlue = newRgb & 255;
//---------------------------------
var O = this;
var time : Number = 0;
/*
*easeing engine
* usage: easeEquation (timeCount, start, finish - start, easeTime);
*/
var doEase = function (Void) : Void
{
var tRed = easeEquation (time, origRed, newRed - origRed, completionTime);
var tGreen = easeEquation (time, origGreen, newGreen - origGreen, completionTime);
var tBlue = easeEquation (time, origBlue, newBlue - origBlue, completionTime);
//trace("tRed : "+tRed+" tGreen : "+tGreen+"tBlue : "+tBlue)
//Convert back to Hex
var c = tRed << 16 | tGreen << 8 | tBlue;
c = c >= 0xFFFFFF ? 0xFFFFFF : c;
//trace(c)
if (time >= completionTime)
{
clearInterval (intv);
}
updateAfterEvent ();
time ++;
O.changeColor (c);
};
var intv = setInterval (doEase, 10);
}
/*
* Changes color of a movieclip
* @param m - target movieclip
* @param newColor - the new color of the movieclip
*/
private function changeColor (newColor : Number) : Void
{
//trace("changeColor ( newColor : "+newColor +")")
colorTrans = new ColorTransform ();
colorTrans.rgb = newColor;
trans = new Transform (m);
//trace("m : "+m)
trans.colorTransform = colorTrans;
//trace(trans.colorTransform)
}
}
이 글의 트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다
::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::