2012-02-07 4 views
0

스코어 카운터에 대한 많은 게시물이 있으며 작동하는 모든 프레임 (Enter_frame 함수)을 업데이트하는 카운터가 있습니다. 점수 변수는 모든 프레임마다 증가하므로 텍스트 필드가 변경되어 점수가 표시됩니다.Flash AS3 - 점수 카운터

내 문제는 iOS에서 앱에 심각한 프레임 속도 문제가 있다는 것입니다. 스코어 티커가 사용 설정되면 5-10fps로 떨어지는 것이므로 매우 불안정합니다. 이 방법을 사용하면 프레임마다 텍스트 필드를 업데이트하고 다시 그려야하기 때문에 그럴 것이라고 생각합니다. 그러나 그 방법을 볼 수는 없습니다.

의견을 환영합니다.

고마워요!

답변

0

시간의 함수로 점수를 재정의해야합니다.

score = t/100; //where t is in milliseconds 

게임 시작시 타이머 변수를 초기화하십시오.

score = (getTimer() - s)/100; 

이 시간에 점수를 기반으로하는 성능 독립적 인 방법은 다음과 같습니다

var start:Number = getTimer(); 

는 그런 다음 ENTER_FRAME 리스너에서 실제 시간에서 점수가 아닌 프레임의 수를 계산한다.

+0

, 감사를 피하기 위해 사용하고 무엇을 그! 그러나 이것을 구현하여 여전히 fps 문제를 해결하지는 못합니다. – Artharos

+0

@Artharos 모바일 용 응용 프로그램을 최적화하기 위해 여러 단계를 수행해야합니다. 일반적으로 대상 장치에 대한 리소스가 적기 때문에 모바일 용 개발은 항상 어려워집니다. 최대 최적화를 보장해야합니다. '모바일 용/iOS 용 플래시 최적화'에 대한 정보를 찾고 나와있는 우수 사례를 따르고 있는지 확인하시기 바랍니다. – joncys

+0

@joncys 나는 모바일을 염두에두고 최적화하고있다. 다른 모든 것은 잘 작동합니다 (즉, 객체를 생성하고 관리하는 것). 그것은 조금 이상한이 기능입니다. 그래도 좀 더 사냥을하면서 뭔가를 찾을 수있을 것입니다. – Artharos

1

불투명 한 배경의 TextField를 사용하거나 비트 맵 글꼴로 변경하면 성능을 향상시킬 수 있습니다.

예를 들어 미리 별도의 비트 맵 이미지를 만들거나 런타임에 bitmapData.draw를 사용하여 필요한 각 숫자에 대해 별도의 BitmapData 인스턴스를 생성 할 수 있습니다. 그런 다음 비트 맵을 바꿔 올바른 점수를 표시 할 수 있습니다.

나중에 Flash와 매우 유사하지만 모바일 플랫폼 용 Adobe AIR보다 3 ~ 9 배 빠른 NME 사용을 고려할 수도 있습니다. 예를 들어 Iain Lobb의 BunnyMark 벤치 마크는 iPhone 4에서 Adobe AIR를 사용하여 16 FPS에서 회전 및 알파를 사용하여 500 개의 토끼를 렌더링 할 수 있습니다. NME는 같은 장치에서 30 FPS로 4750 토끼를 렌더링합니다.

I 성능 문제

좋은 생각

http://www.haxenme.org

+0

답장을 보내 주셔서 감사합니다! 비트 맵 숫자를 사용하고 새로운 숫자를 표시하기 위해 비트 맵 숫자를 변경한다는 생각은 좋은 생각입니다. 생각하지 않았습니다. NME에 대해 알려 줘서 고마워, 난 그냥 빨리 살펴 봤는데 정말 좋아 보이는데, 그 증가 fps 실제로 참으로 멋지 네요! 내가 집에 돌아와보고 할 때 나는 그것을 설치하고 놀 것이다. – Artharos