2012-09-29 6 views
1

저는 빙고 카드를 만들고 카드의 숫자에 starling button 클래스를 사용하고 있습니다.글꼴 또는 비트 맵 글꼴을 사용할 때 성능이 크게 저하됩니다.

fps가 40에서 10으로 떨어지는 bitmapfont 또는 일반 글꼴을 사용하는 경우글꼴없이 텍스처 만 사용하는 경우 fps는 동일하게 유지됩니다.

내가 뭘 잘못하고 있니?

for(var i:int = 0; i < rows * cols ; i++) 
     { 
      var btn:Button = new Button(Assets.getTexture("btn"),String(i+1)); 
      btn.fontName="dig" 
      btn.x = (i % cols) * (btn.width + spacerX) + btnXoffset; 
      btn.y = Math.floor(i/cols) * (btn.height + spacerY) + btnYoffset; 
      addChild(btn); 
     } 
+0

텍스트 필드를 비트 맵 캐싱 해보십시오. 일반 텍스트에서 발생할 수있는 벡터 렌더링은 성능 저하 요인이 될 수 있습니다. – user1103976

+0

방금 ​​내 텍스트 (숫자 만 사용)로 스프라이트 시트를 만들고 텍스처로 사용했습니다. –

답변

1

그리기 통화 수가 많을 것으로 생각됩니다. 통계 모니터를 사용하도록 설정해보세요.

많은 버튼을 한 곳에서 사용할 수 있습니다. 각각에는 단추의 텍스쳐와 레이블의 별도 텍스트 필드가 포함됩니다. 텍스트 필드는 컨텍스트를 전환하기 때문에 추가 드로 콜이 발생합니다. 당신은 많은 수 (빙고를 위해 25)가 있기 때문에, 문맥이 심상과 원본 사이에서 앞뒤로 전환하는 때 당신은 50의 끌기 외침의 순서에 무언가로 끝날 것이다. 비트 맵 글꼴이 텍스처 목록에있는 경우에도 이 발생합니다.

버튼을 건너 뛰고 하나 이상의 숫자 이미지를 표시하고 자체적으로 터치 이벤트를 관리하는 이미지의 하위 클래스를 만드는 것이 더 효과적입니다.

관련 문제