상세 컨텐츠

본문 제목

air 액션스크립트 as3 Bitmap 으로 채운 바탕에 중간중간에 색깔을 채우거나, 중간중간에 구멍 또는 투명하게 색깔 넣기

ADOBE/ ActionScript

by AlrepondTech 2016. 7. 6. 23:40

본문

반응형

 

 

 

 

=================================

=================================

=================================

 

 

 

 

 

 

출처: http://help.adobe.com/ko_KR/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html

 

 

import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(300, 300, true, 0xFFCCCCCC);

bmd.fillRect(new Rectangle(0, 0, 40, 40), 0x50FF0000);

bmd.fillRect(new Rectangle(100, 100, 40, 40), 0x50FF0000);

var bm:Bitmap = new Bitmap(bmd); addChild(bm);

 

 

 

 

예제  ( 예제 사용 방법 

다음 예제에서는 비트맵 데이터 객체를 오른쪽으로 40픽셀 스크롤한 결과를 보여 줍니다.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle;  var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000);              var bm:Bitmap = new Bitmap(bmd); addChild(bm);  trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc  bmd.scroll(30, 0);   trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000

예제  ( 예제 사용 방법 

다음 예제에서는 setPixel32() 메서드를 사용하여 BitmapData 객체에 투명한(alpha == 0x60) 빨간색 선을 그립니다.
import flash.display.Bitmap; import flash.display.BitmapData;  var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC);  for (var i:uint = 0; i < 80; i++) {     var red:uint = 0x60FF0000;     bmd.setPixel32(i, 40, red); }  var bm:Bitmap = new Bitmap(bmd); addChild(bm); 

setPixels

() 메서드  

public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void

 

언어 버전:  ActionScript 3.0
런타임 버전:  Flash Player 9, AIR 1.0, Flash Lite 4

 

 

바이트 배열을 픽셀 데이터의 사각형 영역으로 변환합니다. 각 픽셀에 대해 ByteArray.readUnsignedInt() 메서드가 호출되며, 반환 값이 해당 픽셀에 쓰여집니다. 사각형 전체를 쓰기 전에 바이트 배열이 끝나면 함수가 반환됩니다. 바이트 배열의 데이터는 32비트 ARGB 픽셀 값이어야 합니다. 픽셀 읽기 전후에는 바이트 배열에서 어떤 검색도 수행되지 않습니다.

매개 변수

  rect:Rectangle — BitmapData 객체의 사각형 영역을 지정합니다.
 
  inputByteArray:ByteArray — 사각형 영역에서 사용할 곱하지 않은 32비트 픽셀 값으로 구성된 ByteArray 객체입니다.

 


오류
  EOFError — inputByteArray 객체에 rect 사각형 영역을 채울 데이터가 충분하지 않습니다. 메서드가 최대한 많은 픽셀을 채운 후 예외가 발생합니다.
 
  TypeError — rect 또는 inputByteArray가 null입니다.

관련 API 요소


예제  ( 예제 사용 방법 

다음 예제에서는 getPixels() 및 setPixels() 메서드를 사용하여 한 BitmapData 객체에서 다른 객체로 픽셀을 복사합니다.
import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle;  var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000);  var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect);  bytes.position = 0; bmd2.setPixels(rect, bytes);  var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;

 

 

=================================

=================================

=================================

 

 

반응형


관련글 더보기

댓글 영역