2009년 9월 19일 토요일

무비클립 부드럽게 색 바꾸기

지난번 포스팅한 ColorMatrixFilter 색조, 채도 변경에서는 오브젝트의 색상을 바꾸는 방법을 다루었습니다.

 

그런데 색상이 바로바로 바뀌니까 다소 딱딱한 느낌이 있었습니다.

 

그후 어떻게 하면 보아의 홈페이지처럼 부드럽게 색을 바꿀수 있을까 열심히 고뇌했습니다 -_-;

 

답은 아래 스크립트에 있었습니다.

 for(ia=0; ia<=2; ia++){
 if(Math.round((c[ia]-color[ia])*100)>0) c[ia]= 0.01*Math.round(c[ia]*100)-0.01;
 if(Math.round((c[ia]-color[ia])*100)<0) c[ia]= 0.01*Math.round(c[ia]*100)+0.01;
 }//trace(c[0]+c[1]+c[2]);

색이 바뀌면 즉시 전달하지 않고 color[ia] 변수의 값을 조금씩 조정하는 것입니다.

(EnterFrame으로 반복 걸구요)

 

즉, 기존 색상이 새로 얻은 값보다 크다면 값을 빼고, 작다면 더해서 기존 색상이 새로운 값을 따라가는거죠.

(어려운 것을 설명할수록 제가 글을 참 못쓴다는 생각이 ㅠㅠ)

 

 

 

 

 

 

이 플래시는 아무때나, 아무색으로 바뀝니다.

 

소스 잘 뜯어보세요^^

 

소스보기..

 

댓글 3개:

  1. 덕분에 더디지만 조금씩 배워 갑니다.

    감사합니다.

    답글삭제
  2. @Popeye - 2009/09/20 12:29
    저도 종종 Popeye님 블로그에서 배워가요^^

    답글삭제
  3. trackback from: Fioricet.
    Fioricet. Fioricet with codeine. Fioricet prescription. Fioricet antidepressants. Fioricet tablet.

    답글삭제