May 222007
BitmapData.copyChannel() method copies a channel from a source image and pastes it into a target image’s alpha channel. You can control the transparecy of an image by manipulating the image’s alpha channel with a source image.
The following code adds fading border effect to an image.
BitmapData.copyChannel() 메소드를 사용하여, 원하는 이미지의 특정 채널을 대상 이미지의 알파채널로 복사할 수 있습니다. 이것을 사용하면 소스 이미지를 알파채널로 사용하여 이미지의 투명도를 제어할 수 있습니다.
아래 코드는 이미지의 테두리를 부드럽게 빼는 효과를 구현한 것입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | /* * This work is licensed under a Creative Commons Attribution 3.0 License. * http://creativecommons.org/licenses/by/3.0/ */ /* * FadeImageBorder * FadeImageBorder class adds the fading border effect to an image * * @author: Han Sanghun (http://hangunsworld.com/blog) * @last modified: 2007-05-22 * @language version: ActionScript 3.0 */ package{ import flash.display.*; import flash.events.*; import flash.geom.*; public class FadeImageBorder extends MovieClip{ // Fade Source private var fade_bd:BitmapData; // Fade Copy private var fadeCopy_bd:BitmapData; // Original Image private var origin_bd:BitmapData; private var origin_bmp:Bitmap; // Result Image private var result_bd:BitmapData; private var result_bmp:Bitmap; /* * FadeImageBorder constructor */ public function FadeImageBorder(){ // Original image size var wid:uint = 400; var hgt:uint = 300; // Original/Result BitmapData origin_bd = new ImageSample(wid, hgt); result_bd = new BitmapData(wid, hgt, true, 0×00000000); result_bd.draw(origin_bd); // Fade Effect BitmapData fade_bd = new FadeBorderSource(500, 500); fadeCopy_bd = new BitmapData(wid, hgt, true, 0×00000000); // create fade_bmp for resizing var fade_bmp:Bitmap = new Bitmap(fade_bd); // create temporary sprite var fade_sp:Sprite = new Sprite(); fade_sp.addChild(fade_bmp); // resize fade_bmp to fit the source image fade_bmp.width = wid; fade_bmp.height = hgt; // draw to fadeCopy_bd fadeCopy_bd.draw(fade_sp); // Copy alpha channel var rect:Rectangle = new Rectangle(0, 0, wid, hgt); var pnt:Point = new Point(0, 0); result_bd.copyChannel(fadeCopy_bd, rect, pnt, BitmapDataChannel.BLUE, BitmapDataChannel.ALPHA); // Add to stage result_bmp = new Bitmap(result_bd); addChild(result_bmp); origin_bmp = new Bitmap(origin_bd); addChild(origin_bmp); result_bmp.x = result_bmp.y = origin_bmp.x = origin_bmp.y = 25; // Click event stage.addEventListener(MouseEvent.CLICK, mouseClicked); } /* * mouseClicked * Add/remove the fade border effect. */ private function mouseClicked(evt:MouseEvent):void{ origin_bmp.visible = !origin_bmp.visible; } } } |
흐흐.. 멋진데~
이거 퍼가도 되지.. ^^.
나도 김태희 좋앙~~
퍼가는 거야 자유지…
단, CC 라이센스 라는거…
ps. 김태희, 바나나 CF에서 넘 이쁘게 나왔어 ^0^
그거 바탕화면 같은거 없나