[FlashLite 1.1] 요것만은 알아두자!!
지난 한 해 회사일을 하면서 FlashLite를 많이 접하게 되었다.
처음엔 조금 우습게 봤지만… 결코 만만한 놈이 아니었다.
엄청 머리를 굴려야 했으며, 수많은 시행착오를 거쳐야 했고, 핸드폰 3~4개를 붙들고 끝없는 테스트를 해야만 했다…
뭐.. 그런 이유로 몇가지 메모.
▶ 용랑은 100KB미만으로
현재 대부분의 핸드폰이 swf파일의 용량을 100KB까지 지원하고 있다.
그리고 모바일의 CPU는 일반PC의 CPU보다 처리 속도가 낮기 때문에 FPS를 10~12정도로 잡아주는 것이 좋다.
여기서 잠깐 참고 (FlashLite에서 용량을 줄이는 몇가지 팁을 소개하고 있다.)
- ケータイFlashコンテンツの容量を激減させ
るチェックリスト
▶ 무비클립 접근방법
//AS2.0의 경우
_root.my_mc.sub_mc.gotoAndPlay("Start");
//FlashLite1.1의 경우
tellTarget("/my_mc/sub_mc"){
gotoAndPlay("Start");
}
▶ 속성 접근방법
//AS2.0의 경우
_root.my_mc.sub_mc._x = 100;
//FlashLite1.1의 경우
/my_mc/sub_mc/:_x = 100;
//또는
tellTarget("/my_mc/sub_mc"){
_x = 100;
}
▶ 변수 접근방법
//AS2.0의 경우
_root.my_mc.sub_mc.myVar = 100;
//FlashLite1.1의 경우
/my_mc/sub_mc/:myVar = 100;
//또는
tellTarget("/my_mc/sub_mc"){
myVar = 100;
}
▶ function() 은 call(frame) 으로
FlashLite1.1 에서는 function을 사용할 수 없다. 그 대신 call()함수를 사용하면 OK
먼저 함수를 적어놓을 타임라인의 프레임에 라벨을 적어준다.
예를들어, callFunc 라는 라벨이 적힌 프레임에 아래와 같은 함수를 적어놓는다.
trace("[call Function]");
j = 0;
for(i = 1; i <= 10; i++){
j = j + i;
trace(j);
}
그리고 위의 함수를 호출하고 싶은 곳에서
call("callFunc");
결과는
[call Function] 1 3 6 10 15 21 28 36 45 55
▶ 디바이스 폰트의 사이즈
FlashLite1.1 에서 지원되는 디바이스 폰트의 사이즈는 12px, 16px, 20px, 24px이다.
▶ eval() 함수를 많이 써먹자
FlashLite1.1 에는 배열이 없다.
하지만, eval()을 이용하면 배열 에뮬레이션이 가능하다.
좀 더 자세한 내용은 아래링크를...
eval() 함수 사용 - http://livedocs.adobe.com/flash/9.0_kr/main/00005695.html
배열 에뮬레이션 - http://livedocs.adobe.com/flash/9.0_kr/main/00005690.html
▶ 이미지가 빨간색으로 보일 때
이미지를 사용했을 경우 Flash나 Device Central에서는 정상으로 보이는데, 핸드폰으로 직접 확인하면 이미지가 빨간색으로 보일 때가 있다.
주요 원인과 해결 방법은 다음과 같다.
- PNG파일을 사용했을 경우
→ 라이브러리에서 해당 PNG파일의 압축을 lossless (PNG/GIF) 로 한다.
- SWF의 용량이 100KB를 넘거나 간당간당 할 경우.
→ 용량을 줄여준다.
- 메모리를 점유율이 높을 때
→ 비트맵 이미지 사용을 줄인다.
→ trace()를 삭제한다.
→ 선의 사용을 줄인다.
→ 변수가 필요없게 되었을 경우 null을 대입한다.
- 그라데이션이 있는 투명PNG파일을 사용했을 경우
→ 그라데이션을 없애준다.

폰 배경화면을 만들고 있었는데 많은 도움이 되었습니다.
감사합니다^^
Siaa Reply:
February 10th, 2010 at 12:11 pm
도움이 되었다니 다행이네요^^
앞으로도 자주 들려주세요~~