2011-08-12 3 views
0

저는 한 달 동안 플래시 게임에서 일해 왔으며 브라우저에서 관리하기 쉬워야합니다 (약한 계산). 즉, 일부 브라우저에서는 게임이 15fps (게임은 80fps로 실행되어야합니다)로 실행되는 것으로 나타났습니다. (Actionscript3/flash cs4 : 브라우저에서 실행될 때 지연을 해결하는 방법

<meta http-equiv="X-UA-Compatible" value="IE=9"> 

이 호환성 모드로 IE를 강제로 빠른 수정했고 크게 FPS 향상이는 IE9에서 발생하는 것으로 알려져, 그리고 빠른 수정은 HTML의 상단에이 줄을 추가했다되었습니다 ~에 대해 ... 60).

여전히 나는 모든 브라우저에서 게임이 느리게 실행되고 있다고 믿습니다. html 버전이 swf와 비교 될 때 분명합니다.

게임에서의 움직임 (html)이 "lurches"라는 것이 상당히 눈에니다 :이 미녀는 게임의 미학을 해칠 수 있습니다.

이 모든 것은 브라우저가 컴퓨터의 그래픽 카드에 대한 액세스를 제한한다고 생각하게합니다.

1)은 SWF

2)에서 HTML에서 천천히, 그리고 빨리 정상 속도로 재생 소리, 아직 그래픽 지연

편집

3) 게임의 모든 그래픽은 상당히 낮은 해상도 (예 : width1xheight1로 표시되는 그래픽은 width1xheight1png의 동영상입니다.) +

4) 매우 간단한 (계산적으로) 간단한 플래시 프로젝트 동일한 그래픽 동작 문제를 보았습니다.

브라우저에서 내 게임의 부드러움을 어떻게 높일 수 있는지 조언 해 줄 사람이 있습니까?

+1

초고 프레임 속도 (50fps 이상)로 인해 일부 브라우저에서는 실제로 플레이어가 느려질 수 있다고 생각합니다. 50 미만으로 낮춰보십시오. 또한 압축 된 그래픽으로 인해 압축을 풀 필요가 있기 때문에 더듬이가 발생할 수 있습니다. 아직 메모리 풀에서 많은 객체를 해제 한 경우 가비지 수집기로 인해 이러한 순환이 발생할 수 있으므로 객체 풀링을 살펴볼 수도 있습니다. –

+0

"... 높은 프레임 속도 (50fps 이상) ..."나는 지금 당장 게임을 <50fps로 감속시키고 게임의 모든 증분을 80fps의 움직임과 일치 시키려고했습니다. 번역. 눈에 띄는 차이는 없습니다 :(. 그래픽에 대한 두 번째 부분에 : 나는 놓칠 생각이 들었습니다! 압축 된 그래픽을 사용하는 것은 나쁜 생각이었을 것입니다 !!!! 나는 말하고 싶었습니다 : 그래픽 오브젝트에 사용되는 PNG는 동일한 해상도입니다. 가비지 컬렉터 (GC)에 대해 : 나는 이것이 문제가되는 것에 회의적입니다 .gc가 swf 및 html 버전 모두에서 동일하게 작동해야합니까? –

+0

http : // www. kaourantin.net/2006/05/frame-rates-in-flash-player.html –

답변

1

이것은 SWF가 HTML 페이지에 포함되는 방식의 증상 일 수 있습니다. Flash는 내용을 브라우저 윈도우에 렌더링하는 방법을 결정하는 여러 "윈도우 모드"를 지원합니다. 이 값은 SWF가 HTML 페이지에 포함되어있을 때 wmode 매개 변수를 통해 설정됩니다.

Adobe's documentation에 따르면, 이것은 최적의 성능을 위해에 "직접"설정해야합니다

직접 -를 사용하여 직접 경로 렌더링에. 이렇게하면 의 화면 버퍼에서 합성되지 않고 SWF 내용이 화면에 직접 렌더링됩니다. 이 wmode 값은 콘텐츠 재생에 최상의 성능을 제공하고 Stage 비디오 또는 Stage 3D를 사용하는 SWF 콘텐츠의 하드웨어 가속 프레젠테이션을 사용하도록 권장합니다.

실제로는 wmode이 불규칙하게 작동 할 수 있으므로 documentation에서 언급 한 대안을 시도하는 것이 좋습니다. 성능을 향상시키는 데 도움이 될 수 있습니다

다른 옵션은 다음과 같습니다

  • 사용 stage.scaleMode = StageScaleMode.NO_SCALE. 이렇게하면 포함 된 크기가 원래 크기와 일치하지 않으면 내용의 크기가 조정되지 않습니다.스케일링은 CPU 사용량에 영향을 미치므로이를 비활성화하면 프레임 속도가 높아집니다 (StageScaleMode#NO_SCALE 참조).
  • 투명하지 않은 MovieClips (예 : 루트 MovieClip)에 opaqueBackground을 설정합니다. 투명도에는 전경색에 배경색을 곱하는 추가 계산이 필요합니다. 불투명 한 배경을 설정하면 이러한 추가 계산이 생략되어 성능이 향상 될 수 있습니다. (DisplayObject#opaqueBackground 참조)
관련 문제