2017-09-25 1 views
0
slowsdown 용기에 마우스 오버를 추가

링크 1-http://horebmultimedia.com/Sam3/ 링크 2 - 위의 링크에서 http://horebmultimedia.com/Sam5/는 Createjs : FPS

, 나는 각 파일에 별도의 용기에 추가 숫자 세트를 추가하고 u는에 FPS를 찾을 수 있습니다 오른쪽 상단. 문제는 FPS가 느려지고 &의 속도가 느려지고 왼쪽이 더 느리게 회전하도록 만드는 것처럼이 링크 1에 마우스를 올려 놓고 숫자를 클릭하면 문제가 발생합니다.

링크 2에서는 마우스를 한 번에 5 마우스를 올렸지 만 FPS에는 큰 차이가 없으므로 37 개의 컨테이너가있을 때 왜 그렇게 느슨한 지 알 수 있습니다. 해결해야 할 경우 내 코드를 제공 할 수 있습니다.

답변

2

코드를 자세히 살펴 보았지만 전체 프로젝트를 파고 들기는 최적화 문제를 디버그하는 환상적인 방법이 아닙니다.

우선 무대에서 mouseOver을 사용하도록 설정하면 대화 형 요소에 mouseChildren=false을 자유롭게 사용하고 대화 형 요소에는 mouseEnabled=mouseChildren=false을 자유롭게 사용하는 것이 좋습니다. 롤오버는 모든 것을 초당 20 회 (사용자의 용도로) 그려야하기 때문에 큰 원인이 될 수 있습니다. 텍스트와 벡터는 다시 그리는 데 비용이 많이 듭니다.

// Non-interactive elements (block all mouse interactions) 
element.mouseEnabled = element.mouseChildren = false; 

// Interactive elements (reduce mouse-checking children individually) 
element.mouseChildren = false; 

변경되지 않으면 텍스트 요소 또는 버튼 그래픽을 캐싱하는 것이 좋습니다. 나는 소스에서 캐싱을 보았다고 생각하지만 일반적으로 고려해야 할 좋은 점이다.

- 상기 디버깅, 최적화와

모든 버튼을 제거하는 성능 업을 제공하는 경우, 귀하의 버튼이 구성되는 방법을 고려하고 무엇을 자신의 비용입니다 .. 힘들 수 있습니다. * 마우스 오버 비쌉니다 * 벡터 및 텍스트는 비싸다 수 있습니다 * 캐싱은 올바르게 사용하면 도움이되지만 너무 자주 발생하면 비용이 많이들 수 있습니다. * tick()에서 어떤 일이 일어나고 있는지 검토하십시오. 때로는 코드가 끊임없이 실행되기 때문에 필요하지 않습니다.

-

다른 몇 가지주의 사항 :

  • 이 당신이 생각하지 않습니다 _oButton.off("mousedown"); - 당신은 on() 호출의 결과를 전달해야합니다. 청소 만하는 경우 _oButton.removeAllEventListeners()으로 전화하십시오.
  • mouseover에 커서를 설정할 필요가 없습니다. 커서가 뒤집어 질 때만 커서가 바뀌므로 한 번 설정하고 buttonover 항목을 제거하십시오.

  • data 매개 변수를 지원하는 on() 메서드를 제공하는 사용자 지정 클래스에 대해 EventDispatcher를 확장하는 것이 좋습니다. addEventListener 대신 CTextButton

  • 을 권장합니다. RAF는 프레임 속도 속성 (일반적으로 60fps 인 브라우저의 RAF 속도 만 사용)을 지원하지 않습니다. 더 이상 사용되지 않는 useRAF 대신 createjs.Ticker.timingMode을 사용하십시오.

조금 도움이 되길 바랍니다.

+0

Bro.Lanny. u가 대답하는 모든 것들이 나를 더 잘 향상 시키는데 도움이되었습니다. 또한 컨테이너에 액세스하는 루프를 사용합니다. 너무 느려 프레임 속도가 느려 집니까? 아니면 버튼을 생성하는 클래스를 호출하는 것이 좋습니다. 이렇게하면 루프를 피할 수 있습니다. 제안을 해주십시오. –