最近对Flash3D方面感兴趣,于是找了点资料学习。 我从下面这篇文章入手的 Scripting 3D in Flash (by senocular) 看完之后刚好够我画这个PowerCrystal(早就想做出立体的来了,还记得宇宙骑士吗) 刚接触感觉Flash3D有点复杂,特别是senocular这个教程最后关于Depth的描述,这个PowerCrystal不需要用到辅助Points来更新Depths,所以还算简单。 在我看来,Flash中三维描述就是两个步骤: 1、三维坐标位置确定 2、二维透视 如果是运动的,那么就重复上面两个步骤,只是Depth修正在复杂的图形中显得不太靠谱。
之前是用AS2.0写的,最近把它改成AS3.0版了,没有感觉到传说的中性能提升,反而降低了执行效率,占用了更大的体积(1.5KB->2.2KB)和更多内存,可能是因为depth重新映射的缘故,其它代码大同小异。 解释一下depth映射: 三维空间中的depth就是z轴方向上的前后关系,数值越大显示在越前面(靠近你的眼睛),之前的depth是根据每个面的所有点Z轴上的值之和的负值来当depth的,现在AS3.0中限制了depth(childIndex)范围,所以要作映射,把先前的depth按顺序映射到这个范围内,相当于给数组排名。 |