메리테크 M35Touch API 추가 공개
by 세계의끝 on 12.11, 2008, under M35T Flash UI
메리테크 펌웨어 개발자분이 제게 보내온 기술 문서를 정리해서 포스팅 합니다.
이 내용은 11월 20일자 V1.0.3.6 펌웨어에 이미 적용되었지만 외부로 공개되지 않은 API 입니다.
플래시 UI가 로드된 상황에서 함수를 호출하여 M35T의 내부의 다른 swf 파일을 로드하고 메인 플래시 UI는 언로드 되도록 하는 내용 입니다.
언뜻 보기에 최상단에 loadMovie() 하는게 더 낫지 않냐? 하시겠지만,
실제 휴대용 디바이스의 플래시를 제작하다보면 가장 먼저 느끼는 점이 “퍼포먼스가 정말 안나온다” 라는 점입니다.
약간만 복잡한 모션이거나 움직임이있는 무비클립의 면적이 약간만 넓어져도 속도저하가 확 느껴질 정도 입니다.
그래서 onEnterFrame 같은건 너무나 당연히 delete 시켜줘야 하고, 데스크탑(윈도우) 상에서는 전혀 신경쓰지 않아도 되는, 심지어는 사용하지 않는 변수를 삭제시키는 등의 메모리 확보에 신경을 써야 합니다.
이런 환경이니 swf를 하나이상 loadMovie 하는것은 굉장한 부담이 되는 일입니다.
혼자만 사용하는거라면 뭐 상관 없을수도 있지만, 공개되어 배포되는 애플리케이션인 경우에는 이야기가 달라지죠.
뭐 그렇다는 이야기고…
사용 방법은 다음과 같습니다.
1. 메인 UI에서 다른 플래시 파일 호출
ext_fscommand2(arg1, arg2, arg3)
arg1: API의 종류( 무조건 “PLATFORM”)
arg2: 함수명( “excuteFlash”)
arg3: 플래시의 경로
1 2 | //메인 UI 상태에서 다른 swf을 호출하고 메인 UI는 메모리에서 삭제. ext_fscommand2("PLATFORM", "excuteFlash", "C:\\Config\\test.swf"); |
위의 코드에서 주의할 점이 경로 인데,
M35T의 기본 메모리 영역은 C 드라이브이고, sd카드는 D 드라이브 입니다.
그리고 디렉토리 구분 표시는 이스케이프 문자를 “\\” 이렇게 두개 겹쳐 써야합니다.(한글폰트에서는 “\\” 가 되겠죠.)
M35T 운영체제의 특성인듯 한데, 이것을 메리테크 개발진에서는 버그로 인식하고 다음번 펌웨어 패치때 수정할 계획인 모양입니다.
2. 다른 플래시가 화면에 표시된 상태에서 메인 UI로 복귀
ext_fscommand2(arg1, arg2)
arg1: API의 종류( 무조건 “PLATFORM”)
arg2: 함수명(“runMainMenu”)
1 2 | //다른 swf 가 불러와 있는 상태에서 메인 UI로 돌아간다 ext_fscommand2("PLATFORM", "runMainMenu"); |
그렇다면 이걸로 무엇을 할 수 있냐…
별도의 플래시 애플리케이션을 메인 UI에서 불러 사용할 수 있는 강력한 기능의 확장이라고 할 수 있습니다.
현재의 M35T의 메뉴는 setting 까지 포함해서 10가지 인데 이것이 무한대수로 증가할 수 있는 가능성이 열린 것이죠.
예컨대, 메모장 이라던가, 달력 이라던가(이건 메인 UI 위젯 형태로 개발되는것이 더 맞긴하겠지만), 플래시 갤러리 라던가, 간단한 그림판 같은 기능이 추가될 수 있다는 것입니다.
Blog under the Creative Commons Attribution-NoDerivs 3.0 License
12월 11th, 2008 on am 10:41
메모장도 가능합니까?
플래시는 파일 기록은 불가능하다고 하던데요ㅡㅡ?
12월 11th, 2008 on am 10:45
제한된 바이트 수 내에서(1024K) 메모장과 유사한 형태로 구현이 가능합니다.
물론 플래시에 기록하는것이 아니라 외부 파일을 이용한 것입니다.
SharedObject (공유객체)를 플래시 도움말에서 찾아보세요.
12월 11th, 2008 on am 10:59
저 개발자 아니예요 ㅜㅠ
공유객체… 어렵당ㅡㅡ;;;
플래시로 파일 오픈 시 로딩만 가능하다고 어제 네이버 지식인(?)에서 배웠는데, 방법이 있긴 하군요.ㅋ
아무튼 찾아보겠습니다.
감사합니다.ㅋㅋ
12월 11th, 2008 on am 11:22
지식즐 보다는…
플래시의 F1을 보시는게 가장 이해가 빠를거예요.