본문 바로가기
  • 오직 예수 그리스도
스위시세상/스위시 맥스

[스크랩] Gradient mask Effect(그래디언트 마스크 효과)

by 어린양01 2010. 1. 21.




Gradient mask Effect(그래디언트 마스크 효과)

첨부된 압축파일이 swi소스 입니다

일반적으로 마스크 효과는 마스크 쉐이프의 가장자리가 뚜렷한 모양대로 나타납니다
그러나 마스크 효과를 가장자리로 갈수록 투명하게 알파값을 조정하여 그래디언트 효과를 줄려면

flash player8에서 지원하는 CacheAsBitmap 스크립트를 사용하면 가능해 집니다.
맥스2 에서는 물론 가능하고 맥스1버젼에서도 export를 swf8로 설정하면 가능합니다

아래 두가지의 예를 보시기 바랍니다.

swf 8 의 경우 - 한번 클릭해서 활성화 한다음 마우스를 움직여 보세요

swf 6 의 경우

* 위 영상에 마우스를 움직여 보세요

만드는 방법은 간단 합니다

1.우선 이미지를 불러와서 복사- 붙여 넣기로 두장의 이미지를 겹쳐 놓고 첫 번째(아래쪽)이미지를 shape properties창에서
   hue 와 saturation을 조정하여 어두운 톤 또는 흑백 이미지로 바꾸고 이미지의 name을 "img2"로 주고 target에 체크 합니다.

2.두 번째(위쪽) 이미지는 이미지 이름만 "img1"으로 주고 마찬가지로 target에 체크 합니다.

  target에 체크하는 이유는 스크립트의 대상이  이름이 주어진 개체가 되는데 스프라이트로 묶었을 경우는 스프라이트에
  이름을 부여 하면 되지만 이미지등과 같은 shape의 경우에는 target 체크를 하지 않으면 대상으로 인식하지 못하기 때문입니다

3.이제 원형 툴을 선택하고 적당한 크기의 원형 shape를 line style은 none 으로, fill type은 solid로, gradient는 radial 로 설정하고
   이미지 위에 그려주고 중앙부는 알파값 100% 가장자리는 0% 로 해 줍니다. 이때 색상은 아무 색이나 상관없습니다.
   그리고 이 shape도 이름을  "mask1"이라고 하고 마찬가지로 target에 체크해 줍니다

이미지를 클릭하면 원본을 보실 수 있습니다.

4. 그런 다음 scene 에 아래와 같이 스크립트를 넣어 주면 됩니다.

       onSelfEvent (load) {                                            //맥스1을 사용 하시는 분은 [안내]태그제한으로등록되지않습니다-[안내]태그제한으로등록되지않습니다-xxonload(){ 로 바꾸세요   
           this.img1.cacheAsBitmap = true;
           this.mask1.cacheAsBitmap = true;
           this.img1.setMask(this.mask1);
       }

      onSelfEvent (enterFrame) {                                   //맥스1을 사용 하시는 분은 "onenterframe(){ 로 바꾸세요
          this.mask1._y = _ymouse;
          this.mask1._x = _xmouse;
       }

  CacheAsBitmap 스크립트는 이미지 나 개체를 크기와 방향을 갖는 벡터 오브젝트로 만들어 투명 또는 부분적 투명이가능토록 하고
  setmask 스크립트는 스프라이트로 묶어서 mask에 체크하는 것과 동일한 효과를 내어 줍니다

  그리고 아래 onenterFrame 에 들어 있는 스크립트는 mask1이 마우스를 따라 다니도록하는 가장 간단한 스크립트입니다

5. 마지막으로 export설정이 swf 8 로 되어 있는지 확인합니다

이미지를 클릭하면 원본을 보실 수 있습니다.

아래 예제 영상은 하나의 이미지로 같은 효과를 만든 영상입니다

swf 8 의 경우 - 한번 클릭해서 활성화 한다음 마우스를 움직여 보세요

swf 6 의 경우

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 사랑방 마을
글쓴이 : 야생화 원글보기
메모 :

 

 

 

 

 

 

 

 

 

gradiant_mask(swf6).swf
0.11MB
gradiant_mask1.swf
0.11MB
gradiant_mask2.swf
0.05MB
gradiant_mask2(swf6).swf
0.05MB