2011-04-18 3 views
1

내 프로그램의 성능을 최적화하려고합니다.AS3 Papervision3D 평면상의 재료에 액세스

박쥐 끄기 나는 무대 품질을 중간으로 설정했다 (낮은 반으로 설정하면 동영상 클립이 렌더링되지 않음). 이것은 도움이되었지만, 나는 더 원합니다 !!!

P3D Essentials 책에서 읽은 힌트는 필요하지 않을 때 애니메이션 자료를 사용하는 것입니다. 환상적인 아이디어지만, 어떻게 설명하지 않습니다.

재료를 만들 때 material.animated = false을 설정하면 효과가 있지만 다른 기능에서는 내 프리미티브의 재질에 액세스 할 수 없습니다. plane.material.animated = false과 같은 간단한 것은 널 예외를 리턴합니다. 그렇다면 내 프리미티브에서 동적으로 움직이는 재료를 어떻게 켜고 끌 수 있습니까?

+0

PV3D 프로젝트가 종료되었습니다. Away3D를 사용하십시오. –

+0

몇 가지 증거 : http://unitzeroone.com/blog/2009/09/28/goodbye-papervision/. –

+0

증거가 거의 없습니다. 핵심 팀 중 하나가 떠났습니다. 그러나 [블로그] (http://blog.papervision3d.org/)는 2010 년 7 월 이후에 업데이트되지 않았으며 [dev 사이트] (http://dev.papervision3d.org/)는 2009 년 6 월에 사인합니다. [코드 Google ] (http://code.google.com/p/papervision3d/)은 2011 년 3 월에 업데이트되었지만 ... 다음 프로젝트에서 Away3D를 살펴 보겠습니다.이 프로젝트는 95 % 완료되었습니다. –

답변

0

API를 살펴보면 이는 불가능한 것으로 보입니다. 성능 개선을 위해 할 수있는 일은 표시되지 않는 개체를 제거하는 것입니다 (예 : 비행기가 다른 비행기 뒤에 완전히 숨겨져 있으면 표시 (렌더링)하지 마십시오. 이것은 내가 원래의 질문으로 달성하려고 시도한 것입니다 ...

나는 모든 평면을 배열로 가지고 있습니다. 내가 때 현재 그것이 내가 면 볼 수 있도록하는 경우에는 다음 비행기로 전환 될 때까지 단 하나 개의 평면 (한 번에 볼 수 그을 알고, 때문에

//make all the planes invisible. Don't want to render them for(var i = 0; i< planes.length(); i++) { planes[i].visible = false; } //show the first plane so we have **something** to see planes[0].visible = true; 

은 나를 위해 작동 비행기가 전환 완료, 나는 그것을 숨 깁니다).