Flash
ActionScript Performance Optimization 1
performance & optimization 관련하여 조사한 자료들을 정리해 보았다. 기존에 알던 것들도 있고, 새롭게 알게 된 것들도 있다. 하나하나가 크게 영향을 미치진 않겠지만 이러한 코딩 습관들이 모이다 보면 결과적으론 performance 에 좋은 영향을 미치리라 생각한다. 1. Declaration of variable type ( 변수의 타입 선언 ) var num:Number; var str:String; 2. Avoid implicit types conversion of numeric types( 강제 형변환 회피 ) var num:int = 10; Math.sqrt( num ); //** Math.sqrt( num:Number ) 이므로 위와 같이 타입이 다른 변수의 대입은 피하는것..
비트맵 이미지 사용에 대한 생각
보통 플래시에서 이미지를 사용할 때 jpg와 png가 사용된다. 알파값이 필요한 이미지라면 png를, 사진 이미지 혹은 알파값이 필요없는 이미지는 jpg를 사용한다. jpg는 png보다 용량이 작기 때문에 용량부분에 있어서 용이하다. 하지만 cpu부분에서도 많은 차이를 보인다. jpg는 알파값이 없기 때문에 화면 렌더링에서 효율적이지만 png는 알파값때문에 화면 렌더링할 때 많은 부하를 보인다. 화면이 움직이지 않으면 상관없으나 화면이 움직여서 새로 렌더링이 된다면 cpu사용량이 늘어난다. 한번 화면이 움직이고 나서 멈춰도 cpu사용량은 움직이기 전만큼의 사용량으로 돌아가지 않는다.
복잡한 이미지는 비트맵으로.
복잡한 드로윙(벡터)가 bg로 깔려있고 그 위로 무비클립들이 지나다닐 때.. 화면 렌더링상 벡터로 된 bg는 많은 cpu를 차지하게 된다. bg가 움직이지 않더라도 bg위로 움직이는 많은 무비클립들과 겹쳐지게 됨으로써 화면을 다시 그리게 되기 때문이다.(때문인 듯) 벡터 bg가 단색이나 간단한 그림 혹은 단색이면 큰 차이는 없으나 여러 필터와 가지각색의 색상이 들어가면 cpu 격차는 더욱더 심해진다. 그 bg를 cache as bitmap으로 설정해 주어도 마찬가지이다. bg를 벡터가 아닌 비트맵 이미지로 해놓으면(같은 그림) cpu점유율은 엄청난 차이를 보인다. 테스트 결과 40%의 차이를 보였다. 용량이 허용되는 한 안에서는 꼭 비트맵을 사용하도록 해야겠다.
Flash 보안 관련
http://ddongkang.tistory.com/89 http://lovedev.tistory.com/339 http://1004lucifer.tistory.com/291
AS3.0 Libraries
3D Engines Papervision3D http://blog.papervision3d.org/Away 3D http://www.away3d.com/ Sandy 3D http://www.flashsandy.org/ Alternativa Platform http://blog.alternativaplatform.com/en/ FIVe3D http://five3d.mathieu-badimon.com/ WireEngine3D (we3d) - A lightweight and fast 3D Engine for Flash 8/9. http://osflash.org/we3d/ Sharikura http://temp.roxik.com/datas/physics/ 3D Game Engines PaperWorld 3D h..
모션이 많은 타임라인은 마지막에 빈 프레임으로 끝내기
타임라인에 모션이 많은 무비클립의 경우, 모션이 일어난 후에 디스플레이 오브젝트들이 화면에 있어야 하는 경우는 어쩔 수 없지만, alpha값 0이 되는 디스플레이 오브젝트들은 빈 프레임으로 두어야 한다. alpha값 0인 채로 alpha값 0인 채로 두면 화면에선 alpha값 0을 표현하는 중이기 때문에 cpu를 잡아먹는다. 세가지 경우로 나누어 테스트 해본 결과...(테스트 환경은, 비트맵 이미지를 무비클립으로 만들어 막무가내로 모션을 준 것이다) 1. 마지막 프레임에 무비클립들을 alpha값 0인채로 두었을 때 : cpu 약50% 2. 마지막 프레임에 무비클립들을 visible = false로 했을 때 : cpu 약38% 3. 마지막 프레임을 빈 프레임으로 하여 아무 무비클립도 두지 않았을 때 : c..
무비클립을 여러개 만들었을 때 마우스 반응 해지하기
라이브러리에 있고 linkage가 걸린 무비클립을 대략 몇천개정도 동적으로 생성했을 경우. 이 무비클립에 인터렉션이 없다면 mouseEnabled와 mouseChildren을 false로 해주어야 한다. 즉, 마우스 반응을 없애야 한다. 무비클립의 mouseEnabled와 mouseChildren은 기본값이 true인데 true인채로 놓으면 마우스가 동적 생성한 무비클립 몇천개 위를 지날경우 엄청난 cpu부하를 가져온다. 10x5픽셀인 무비클립을 동적으로 8000개를 만들어 테스트해본 결과 1. false로 지정해주지 않으면 cpu 50% 차지. 2. 8000개의 무비클립에 일일히 false를 해주면 20~25% 차지. 3. 8000개의 무비클립을 감싸고 있는 무비클립에 false를 해주면 5%차지. 마..
[PV3D_2.0]Papervision3D 2.0 Camera3D에 관해 (Camera3D, FreeCamera3D)
※ Papervision3D 1.5Papervision3D 1.5 에서는 Camera3D 클래스와 FreeCamera3D 클래스가 존재합니다.본론으로 들어가기 전에,Camera3D 중심이 카메라가 아닌 모든 물체들이 될 수 있습니다.물체를 중심으로 카메라가 돌아다닌다고 할 수 있습니다.카메라가 물체를 중심으로 돌아다니므로 왠만하면 물체 자체가 움직이는 것 처럼 보입니다.FreeCamera3D중심이 카메라가 됩니다.풀어서 얘기하면 카메라는 고정되어 있고, 물체가 카메라 주위를 돌아다니는 시점이라고 말할 수 있습니다.물체가 카메라 중심으로 돌아다니므로 화면상에 보이지 않을 때도 있습니다.이랬던 PV3D가....-_-;2.0에 와서는 " 뭐야.. 왜 2.0에는 Camera3D.as 하나밖에 없는거냐? -_- ..