2011-04-18 56 views
1

我期待优化我的程序的性能。AS3 Papervision3D飞机上的接入材料

关闭蝙蝠我已经设置阶段质量中(如果我把它设置为低一半我的movieclips不呈现)。这有帮助,但我想要更多!

我在P3D Essentials书中读到的提示是在不需要的时候转动动画材质。神奇的想法,但不解释如何。

当我创建一个材质时,我可以设置material.animated = false并且工作正常,但在另一个函数中,我无法访问我的原始材质。像plane.material.animated = false这样简单的事情返回一个空例外。那么如何在我的基元上动态地打开/关闭动画材质呢?

+0

PV3D项目已经死亡。使用Away3D。 – 2011-04-18 20:49:32

+0

一些证明:http://unitzeroone.com/blog/2009/09/28/goodbye-papervision/。 – 2011-04-18 20:59:45

+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%。 – 2011-04-19 09:04:14

回答

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; 

这对我的作品,因为我知道,只有一个平面会显示在一个时间(除非它转变到下一个平面,在这种情况下,我做面可见,当电流飞机已经完成过渡,我隐藏了)。