WEB开发网
开发学院图形图像Flash Flash AS3.0教程:基本的PV3D程序结构 阅读

Flash AS3.0教程:基本的PV3D程序结构

 2009-12-01 00:00:00 来源:WEB开发网   
核心提示: 运行起来你应该会看到一个球, 现在要让球动起来,Flash AS3.0教程:基本的PV3D程序结构(4),PV3D主要是以帧为单位来控制变化,所以还需要一个方法可以控制到每一帧,需要根据你的需要设置,记得这个路径是url格式,AS3中我们只要注册一个 Event.ENTER_FRAME事件的监听

运行起来你应该会看到一个球。

现在要让球动起来,PV3D主要是以帧为单位来控制变化,所以还需要一个方法可以控制到每一帧。AS3中我们只要注册一个 Event.ENTER_FRAME事件的监听程序就可以监听到每一帧开始的时刻。然后,我们可以在我们的监听函数里,做我们需要做的,比如计算,或者让显示对象移动旋转等。

而PV3D要求每次舞台发生变化时都要显式的调用舞台对象的renderCamera,重新绘制,否则内容始终是不重绘的。

下面是新的代码,注意:加了一句调用addEventListener的代码,和一个OnEnterFrame函数。

package {
    import flash.display.Sprite;

    import org.papervision3d.scenes.MovieScene3D;
    import org.papervision3d.cameras.Camera3D;

    import org.papervision3d.core.proto.MaterialObject3D;
    import org.papervision3d.objects.DisplayObject3D;

    import org.papervision3d.materials.WireframeMaterial;
    import org.papervision3d.objects.Sphere;
    import flash.events.Event;

    public class Main extends Sprite
    {
        private var _container :Sprite;
        private var _scene :MovieScene3D;
        private var _camera :Camera3D;

        private var _material:MaterialObject3D;
        private var _displayObj:DisplayObject3D;

        public function Main()
        {
            // 创建3D舞台的容器
            _container = new Sprite();
            _container.x = 100;
            _container.y = 100;

            //将它显示出来
            addChild( _container );

            // 创建3D舞台
            _scene = new MovieScene3D( _container );

            // 创建摄像头
            _camera = new Camera3D();
            _camera.z = -500;
            _camera.zoom = 5;

            //黑色的线框材质
            _material = new WireframeMaterial(0x000000);

            //球
            _displayObj = new Sphere(_material,  80, 10, 10);

            //把显示对象添加到舞台
            _scene.addChild(_displayObj);

            //把摄像头看到的显示出来
            _scene.renderCamera(_camera);

            this.addEventListener(Event.ENTER_FRAME, OnEnterFrame);
        }

        private function OnEnterFrame(event:Event):void{
            //以Y轴为轴旋转
            _displayObj.rotationY += 5;

            _scene.renderCamera(_camera);
        }
    }
}

现在运行程序就能看到旋转球了。

现在可以开始基本的材质贴图了。其实上面的程序就已用到了线框材质贴图。除了线框材质外,PV3D还支持颜色材质,位图材质等,所有这些材质贴图的类都在org.papervision3d.materials包里。

我们给上面的程序换上一个蓝色的材质贴图看看会是什么样。只要把new WireframeMaterial(0×000000);改成new ColorMaterial(0x0000FF);记得导入 org.papervision3d.materials.ColorMaterial;

再试试位图文件材质,把new ColorMaterial(0x0000FF);改成new BitmapFileMaterial(”texture.jpg”);这里的”texture.jpg”是贴图文件路径,需要根据你的需要设置,记得这个路径是url格式,不是文件系统路径。

效果演示:

上一页  1 2 3 4 

Tags:Flash AS 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接