태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.



2008/01/18 - [플래시[Flash]] - 라이브러리의 비트맵 로딩 비교

위에 덧붙여서 한가지 실험을 더 했습니다..
라이브러리에 있는 비트맵을 끌어서 스테이지에 놓는 것과 코드로 생성하는 것의 차이..

이것이 궁금했던 이유는 일반적으로 디자인을 입힐 때 코드로 모두 생성하지 않고 무비클립 심볼에 가져다 놓는 방식으로 작업하는데 코드로 생성하는 것과의 차이를 명확히 할 필요가 있었기 때문입니다..

테스트 결과

테스트 유형
SWF 용량
생성 시간(ms)
메모리 사용량
기본 컴파일(이미지 생성 없음)
25.9KB
0
0(기준량)
끌어다 놓기
25.9KB
0
4096
코드로 생성하기
25.9KB
4
4096

결과적으로 봤을 때, 메모리 사용량은 같고 끌어다 놓는 방식이 퍼포먼스가 좋은 것으로 확인 되었습니다..
하지만, 여기서 주의해야 할 것이 있습니다..
이미지를 끌어다 놓을 때 하나의 이미지를 여러번 끌어다 놓으면 생성시간은 빠르지만 메모리 사용량이 더 늘어난다는 것입니다..당연하겠죠..비트맵데이터를 복제하는 방식이니까요..

즉, 하나의 이미지를 여러번 사용해야 한다면 이전 자료의 첫번째 방식을 사용해야 할 것입니다..(비트맵데이터의 참조)






신고
Posted by 원강민


라이브러리에 들어있는 이미지를 생성할 때 가장 좋은 방법이 뭘까 궁금했습니다..

<실험 방법>

사용자 삽입 이미지
왼쪽과 같이 라이브러리에 이미지(testImg.png)를 하나 넣고 Linkage를 'CBox' 라고 줍니다..그리고 그 이미지를 두개의 무비클립심볼로 만들었습니다..

CBoxMovieClip : Linkage의 Base Class가 flash.display.MovieClip인 상태

CBoxSprite : Linkage의 Base Class가 flash.display.Sprite인 상태

준비가 완료 되었습니다..테스트 코드는 아래와 같습니다..

코드 펼치기


결과는 아래와 같습니다..
테스트 유형
SWF 용량
생성 시간(ms)
메모리 사용량
기본 컴파일(이미지 생성 없음)
25.9KB
0
0(기준량)
비트맵으로 생성(비트맵데이터 참조)
26.0KB
10
548864
비트맵으로 생성(비트맵데이터 복제)
26.0KB
743
1839104
Sprite로 생성
26.0KB
6602
2785280
MovieClip을 Sprite형으로 생성
26.0KB
7631
2801664
MovieClip을 MovieClip형으로 생성
26.0KB
6769
2801664

결과에서 보듯이 비트맵데이터를 참조하는 형태(1차 테스트)가 가장 좋은 퍼포먼스를 보였습니다.. : )






신고
Posted by 원강민


AS3 Animated Bitmap Class
http://labs.hexagonstar.com/animatedbitmapclass/

위 클래스를 간략하게 소개한다면..
1. 시퀀스(연속동작)를 포토샵등에서 한장의 비트맵에 그립니다..
2. 플래시에서 이미지 로딩 후 비트맵데이터를 버퍼(_buffer 변수)에 담습니다..
3. 프레임에 맞춰 동작 하나하나를 버퍼에서 꺼내 그려줍니다..(copyPixels 이용)








신고
Posted by 원강민





딴동네 스터디에 사용되었던 Bitmap, BitmapData 예제입니다..
아래 순서대로 보시면 좋을거 같네요..

- RectangleBitmap : 비트맵데이터를 생성하고 표시하고 삭제하는 예제
- DisplayObjectCopy : DisplayObject를 캡쳐하는 방법
- BitmapData_Draw_Matrix : draw() 메서드의 Matrix 값
- BitmapData_Draw_ColorTransform : draw() 메서드의 ColorTransform 값
- BitmapData_Draw_BlendMode : draw() 메서드의 BlendMode 값
- BitmapData_Draw_ClipRect : draw() 메서드의 ClipRect 값
- BitmapData_Draw_Smoothing : draw() 메서드의 Smoothing 값
- BitmapData_Clone : 비트맵데이터를 복제하는 방법
- BitmapData_CopyPixels : 비트맵데이터의 일정 영역을 복사하는 방법
- BitmapData_Draw_FloodFill : 포토샵의 버킷(Bucket)툴과 유사하게 색을 채우는 방법
- getPixel32_setPixel32 : 픽셀을 하나하나 조작하는 방법
- Library_bitmapData_load : 라이브러리의 비트맵데이터를 로드하는 방법
- BitmapLoad_getPixels_setPixels : 외부 비트맵 파일을 로드하는 방법과 사각영역의 픽셀을 복사하고 붙여넣는 방법
- SpriteHitTest : 비트맵 HitTest와 성능 비교를 위한 Sprite HitTest
- BitmapHitTest : 비트맵 HitTest
- threshold : 유사한 색상의 픽셀들에 새로운 색상을 적용하는 방법






신고
Posted by 원강민