반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
요즘 만드는 앱에 다양한 애니메이션 효과를 사용하고 있습니다.
스피드 콘트롤 할 일이 많아서 찾아봤는데요.

mivieclip은 frame base라 근본적으로 frame 속도를 바꾸지 않는한 speed control 이 힘듭니다. (Sprites는 time base랍니다.)

http://blog.anscamobile.com/2010/06/improved-movieclip-library/ 에 있는 speed control 관련 내용을 볼께요.

하찮은 내용일 수도 있겠지만 코로나로 앱을 개발하면서 꼭 알아두어야 할, 그러지 않으면 반드시 한번은 에너지 낭비를 해야 될 그런 내용이더라구요.
한번쯤 정리해 두는것도 좋을 것 같습니다.

Richard HakinJune 8th, 2010 at 2:59 pm

We desperately need a speed control as the animation just play crazy

앱을 쌈박하게 만들기 위해서는 애니메이션 스피드 조절 기능이 완전 필요합니다.

PaulAugust 3rd, 2010 at 4:41 am

What is the best way to control the speed of the animation?

Would it be a case of using a timer and calling something like

myAnim:nextFrame()

애니메이션의 스피드 조절하는 가장 좋은 방법이 뭐지요?

myAnim:nextFrame() 함수를 타이머를 이용해서 부르는 것이 방법이 될까요?

EvanAugust 3rd, 2010 at 11:21 am

@Paul – your suggestion would probably work well in some cases, although if you had more than a few clips onscreen, you’d want to test it on target devices to see the performance. I don’t think timers are necessarily that expensive, but they might add up if you had a lot of functions constantly polling the system time.

The movieclip library is primarily designed for a Flash-like model, in which there’s a global framerate for everything. For greater timing control, or for complex animation cases, we’d recommend using Game Edition and the sprite-sheet feature.

In addition to using texture memory much more efficiently (one big image rather than lots of little ones), that feature includes an animated-sprite API that lets you set different animation speeds for different sprites, or even for different sequences within the same sprite. Also, it’s a time-based API rather than frame-based, so the total animation time will remain the same even on slower devices that need to drop frames — the engine automatically handles all this under the hood.

@Paul - 당신의 방법이 잘 적용되는 케이스도 있을 거예요. 아마 무비크립이 적거나 특정한 디바이스에서만 테스트를 원한다면 더 그럴거예요. 하지만 내 생각엔 타이머는 앱을 좀 헤비하게 만들것 같네요.

무비클립은 플래쉬를 모델로 디자인 된 겁니다. 기본적으로 전체 frame rate가 있고 이것이 모든 무비클립에 동일하게 적용됩니다. 좀 더 타이밍 콘트롤을 하고 싶거나 복잡한 애니메이션을 원한다면 Game Edition과 Sprite sheet를 사용하기를 권장합니다.

더군다나 sprite API는 메모리도 효율적으로 운용할 수 있어요. 그리고 각 애니메이션 마다 다른 스피드를 줄 수도 있구요. 스프라이트 애니메이션은 time base 입니다. movieclip은 프레임 베이스이구요. 그래서 사양이 낮은 기계에서도 각 애니메이션별 스피드 차이는 동일하게 나타날 겁니다.

TomAugust 16th, 2011 at 8:27 am

@Chan, You should use the Sprite library instead of the Movieclip library because it gives you better control over the animations. You do have a onComplete listener with Sprites.

@Chan, 무비클립 라이브러리 보다는 스프라이트 라이브러리를 이용해야 애니메이션의 속도 컨트롤이 더 수월합니다. 그리고 스프라이트에는 onComplete리스너도 있습니다.

=======  o ===== o ===== o ====== o ====== o ====== o ======

자 이렇게 애니메이션 기능의 스피드 조절을 위해서는 MovieClip보다는 스프라이트를 사용하라는 것이 코로나SDK의 기본 입장입니다.

그런데 Michael Hartlef 라는 개발자가 movieclip.lua를 수정해서 animation speed를 control 할 수 있는 방법을 개발해서 공유하고 있습니다.

 http://developer.anscamobile.com/code/modified-moviecliplua

위 싸이트에 가면 그 소스 코드가 있습니다.

따로 lua파일을 올리니까 이걸 다운 받으셔도 됩니다.

이 파일의 91번째 줄 에 있는 animSpeed =1.0 의 값을 바꾸시면 애니메이션의 속도를 조절 할 수 있습니다.

이것도 movieClip이기 때문에 framebase이고 이 스피드는 모든 애니메이션에 동일하게 적용됩니다.

애니메이션마다 각각 다른 스피드 컨트롤을 해야 된다면 여전히 movieClip보다는 Sprite를 사용하는 것이 좋습니다.

하지만 Michael Hartlef 이 발견한 방법도 아주 유용하네요.
저도 지금 개발하고 있는 앱에 Michael Hartlef이 개발한 방법을 사용하려고 합니다.

위 소스파일 중에 -- added by M.Hartlef June 12th, 2010 이렇게 주석이 달린 부분이 Hartlef가 추가한 부분입니다.

필요하신분은 이 코드 사용하면서 무료로 자기 노력의 결과물을 공유한 Hartlef에게 감사하는 마음을 가지셔야겠죠?

In everything, Give thanks.

그럼
반응형