在《4 如何显示PV3D中的3D物体》的代码1中,我们看到了如下运行效果。
注意代码清单1中的语句:
[SWF(width="640",height="480",backgroundColor="#FFFFFF")]
这条语句的意思是设置SWF(舞台大小)的大小和背景颜色。我们把这句去掉后运行,将会看到如下界面。
可以看到小球在舞台的中心偏上,为什么不是在舞台中央呢?我们已经知道Flash和PV3D的坐标如下图所示。
其中Flash的坐标在舞台左上角,PV3D坐标在窗口中心(注意是窗口的中心)。同时注意Viewport3D类的构造方法,如下图所示。
从中得知,窗口可以自己设置大小,默认时为640*480。
选择FlashDevelop中的【Project】→【Properties】,将会看到如下界面。
从上图可以知道,输出的swf大小为800*600(即舞台大小)。
当我们打开swf时,舞台为800*600,当执行到:
//由于PV3D中的物体都被映射到窗口,因此只需要将窗口加载进文档类即可
addChild(viewport);
的时候,其加载窗口的过程如下。
从上图可以看到窗口被加载进舞台后,由于舞台的大小和窗口的大小不一致,因此会看到小球在舞台中心偏上的效果。
要解决这种情况,可以设置在文档类前设置SWF,或打开【Project】→【Properties】设置swf大小。
对于x、y轴我们是很容易理解的,现在来看看PV3D中的z轴。修改代码清单1,修改球体z轴属性:
sphere.z = 1000;
和
sphere.z = -100;
运行将会看到如下效果。
可以看到,z轴指向窗口里面。当z增大时,球体远离摄像机,因此会变小。同理,z轴减小时,球体变大。