|
파일사이즈 |
처리 속도 |
벡터 방식 |
작다 |
느리다 |
비트맵 |
크다 |
빠르다 |
# 플래시에서 직접 그린 그림들은 기본적으로 벡터이다
# 플래시에서 불러 온 이미지는 비트맵 방식
bitmapData : 이미지 정보를 저장하고 있는 데이터 ( 2차원 배열과 같은 데이터 ) ==> 눈에 보이지 않는다
bitmap : bitmapData를 분석해서 화면에 뿌려주는 객체
BitmapData를 보기위해서는 Bitmap에 넣어야 한다. //Bitmap은 포토샵이나 알씨 같은 이미지 뷰어로 생각하면 된다.
var bitmap : Bitmap =new Bitmap ( bitmapData );
bitmapData.draw ( 객체 )
Bitmap 이 벡터방식에 비해 훨씬 빠르다
## 상속관계 개념 " 진화의 과정 "##
■ Object : 최상위 객체
- int, unit, Number, Boolean, String 을 제외한 나머지 모든 객체는 Object를 상속 받는다.
- var obj:Object = new Object();
- 임의로 변수를 추가 할 수 있다. Dynamic Class
ex) obj.aaa = 20;
obj.bbb = 20;
■ EventDispatcher : 이벤트를 듣거나, 말할 수 있는 객체
- Event ( 말, 편지, 엽서 )
- Dispatch ( 발송하다, 보내다 ) => dispatcher : 발송자, 보내는 사람
- addEventListener(), removeEventListener(), hasEventLister(), dispatchEvent()
- 그냥 Event에만 반응하는 객체 => URLLoader
■ DisplayObject : 눈에 보이는 객체
- Display ( 표시하다 ) + Object ( 객체 )
- x, y, width, height, scaleX, scaleY, visible, rotation, alpha
- Bitmap, Video
■ InteractiveObject : 사용자에 반응하는 객체
- MouseEvent, KeyboardEvent, FocusEvent .... 이벤트에 반응하는 객체
- TextField, SimpleButton
■ DisplayObjectContainer :
- 자동차 컨테이너, Tv 컨테이너, DisplayObjectContainer => DisplayObject 를 담을 수 있는 객체
- addChild(), removeChild() , contains(), addChildAt ( 객체, index)
■ Sprite
- 프레임이 없는 무비 클립
■ MovieClip
- 애니메이션을 담을 수 있는 프레임을 가진 객체
- 프레임이 있는 Sprite
DisplayObject는 → EventDispatcher → Object
상속을 받으므로 관련된 명령어를 사용 할 수 있다.
BitmapDate → Object 의 상속을 받으므로
x ,y, width, scalex, 등등의 명령어는 사용할 수 없다
Bitmap은 → DisplayObject → EventDispatcer → Object의 상속을 받으므로
관련 명령어를 사용 할 수 있으며
addChild, mouseEvent 와 같은 명령어는 사용할 수 없다.
비트맵을 뿌리고 color picker로 pixel 값을 출력하는 예제
var sp : Sprite = new Sprite();
addChild(sp);
sp.addChild(bitmap);
sp.y = 40;
sp.x = 20;
sp.addEventListener( MouseEvent.CLICK, onClick);
function onClick( e: MouseEvent ) : void
{
var rgb : uint = bitmapData.getPixel (sp.mouseX, sp.mouseY );
color_txt.text = "#" + addZeros(rgb.toString(16).toUpperCase()) ; // toString() 은 진수 변환, toUpperCase() 대문자로 바꿔라
color_txt.textColor = rgb;
//rgb 데이터에서 red. blue. green 값을 각각 추출하는 공식
var blue : uint = rgb & 0x0000ff; // & 0x0000ff 는 뒤의 두자리를 추출하는 연산자
var green : uint = ( rgb >>8 ) & 0x0000ff; // rgb >> 8 은 16진수값을 4번에 1칸 꼴로 오른쪽으로 끌어 당기는 연산자
var red : uint = ( rgb >> 16 ) & 0x0000ff ; // 따라서 rgb >> 8은 2칸 rgb >> 16은 4칸을 오른쪽으로 끌어당기고 왼쪽을 0으로채움
var brightness : int = ( red + blue + green ) /3; // 0부터 255까지
if( brightness > 128)
{
color_txt.background = true;
color_txt.backgroundColor = 0x000000;
}else{
color_txt.background = true;
color_txt.backgroundColor = 0xffffff;
}
}
function addZeros( str:String ) : String
{
var len : int = 6 - str.length;
for( var i : int =0 ; i < len ; i++)
{
str = "0" +str;
}
return str;
}
'코딩공부 > Action Script 3.0' 카테고리의 다른 글
삼각함수와 원운동 ( 원형배치 회전 메뉴 예제 ) (0) | 2015.02.26 |
---|---|
마우스를 따라 움직이는 물고기 예제 (0) | 2015.02.25 |
지역변수, 매개변수, 전역변수 개념 (0) | 2015.02.24 |
시간관련 객체 (0) | 2015.02.24 |
배열을 이용한 퍼즐 조각 맞추기 게임 예제 (0) | 2015.02.23 |